D-link Dir-842 flashing failure, what next?

Hello!

I was unaware about timeliness of installing snapshots and so I bricked my device. I followed the verified installation procedure from dir-842's OpenWrt page. Everything went well until I found out that opkg had to download Luci from the internet. It did, but then when trying to install Luci, opkg informed about kernel signature mismatch and stopped. (Maybe there should be a clear warning that Luci will be downloaded directly from the internet and if not done within hours, will not be possible due to kernel signature mismatch.) Now I'm unable to estabilish connection to the device.

I also learned that there's some kind of rescue function included in many TP-Link and D-Link devices.
It seems to function the same way as in the verified procedure and I can still manage to get the power led blinking the same way by doing so, but there's no connection. (Right after the failure my computer informed about some kind of partial/limited connection, but browser, ssh or telnet wasn't able to use it.)
I tried also with 192.168.0.101 as it was suggested somewhere to be used in this situation with similar devices, but it didn't help.

Is there some specific IP to be used with this device in this situation or something else I've missed this far? (Shouldn't it be not hard-bricked as it was only Luci that failed to install? Although there possibly isn't OpenWrt anymore as I've attempted to reset it several times now by using the procedure method.)

By buying a new unit I'd most probably get installation done successfully, but if I can rescue this unit somehow, I'd rather do so. Any ideas are appreciated now.

OpenWrt factory reset would be the simplest thing to try. Allow to boot normally (power or system LED flashes fast, then slow, then on steady). Press and hold reset button for more than 5 seconds then release. After a few seconds OpenWrt should reboot like a new install. SSH to 192.168.1.1

1 Like

But it isn't there or any other IP I know of. The best that I can do is to get the device into a state that was initially required to get the flashing done, but it has no IP address anymore or something like that.

The recovery mode (pressing reset during power-on) is available at http://192.168.0.1 but there is no DHCP server in the bootloader, so you'd have to set your computer's IP address to be in the same subnet, e.g. set your computer's address to be 192.168.0.101 as suggested, and connect to the router at 192.168.0.1.
Better try IE10 or similar older browsers for flashing, new browsers will use the wrong MIME type for upload the binary file.

Alternatively, you could press reset during the fast blinking sequence of the power LED to enter failsafe mode, if your image has the power LED fixed already (PR #3027 is included in snapshots since May 27th).

Then use PuTTY to connect to 192.168.1.1, type
mount_rootfs
and

sysupgrade https://downloads.openwrt.org/snapshots/targets/ath79/generic/openwrt-ath79-generic-dlink_dir-842-c3-squashfs-sysupgrade.bin

(or c1 depending on your version)

I already did everything through the static IP at the first place. After the failure there just wasn't any interface to use anymore. I use Linux with Firefox. Is it having MIME-type problems too?

I'll check that alternative option and propably the recovery mode for one last time too.

thx s_2. I'll update this thread after trying it.

Even Firefox on Linux does no longer work, since they changed the way binary files are uploaded via HTML forms.
On Linux, you can dig through your ~/.wine/drive_c folder and see if there is an iexplore.exe lying aroung in Program Files, I often use that for recovering routers :slightly_smiling_face:

Just install the current OpenWRT snapshot via the recovery at 192.168.0.1 (set computers ip address to 192.168.0.101), then you should be able to ssh to 192.168.1.1 and do opkg update && opkg install luci, assuming your device is connected to the internet (connect the WAN port to your LAN).

1 Like

It seems that this unit can not be recovered from the failure to install luci on snapshots that were downloaded some days earlier. ( If I'd known that luci isn't included in sysupgrade, I definitely wouldn't have tried it. ) Moreover, I'd prefer not to have any internet connection during installation when doing this kind of stuff.

I didn't find a sufficiently old IE, but I installed Firefox 1.5rc3 from 2005 to my old win laptop and tried with it without any luck. The device can not be found from 192.168.0.1 even when the computer is set to 192.168.0.101

OpenWRT does not write to the uboot partition, so it is quite improbable that a failed opkg command could cause any damage to the built-in recovery mode.

It was said in the wiki that when installing OpenWRT for the first time, the image should be flashed twice to make sure the checksum is fixed, however I could not reproduce that on my devices, and even if the checksum were bad, you would just end up in recovery mode automatically.

It can be quite difficult to verify that the recovery mode is actually entered (a USB TTL adapter could be helpful), otherwise I'm not sure what to try next. How long do you keep the reset button pressed after power on? For some devices it can take up to 10-15 seconds until they read the button state before executing the image. Another way would be to carefully scratch along the spi flash pins with a screwdriver after uboot has loaded, e.g. starting at 4-5 seconds after power on, so the kernel image will be corrupted when trying to read it from the flash, resulting in the device entering the recovery.

If the recovery is actually entered, it might still be an ip configuration issue which is hard to diagnose remotely, have you checked e.g. with Wireshark what happens when you try to access 192.168.0.1?

// Edit: checked again with my device, reset button is read about 5 seconds after power on, LED will start blinking once per second, which is quite distinguishable from the OpenWRT boot pattern.

However according to the serial output it seems that the gmac and switch phy are initialized just when entering the recovery mode. Sometimes this can result in the link not being negotiated this quickly, e.g. when media sensing is enabled in Windows.

You could try to put a network switch between DIR-842 and your laptop, so the Ethernet link would be stable before entering recovery.

I tried with wireshark using any connection mode and having only ethernet connection to dir-842 in use.

I don't know if this tells anybody anything more than to me: "Destination Unreachable", but here's some output for the router from wireshark:

This first one is with normal startup

Then here's what happens during bootup to rescue mode:

[Image removed because of the restriction for new users]

And then finally when trying to reach it with firefox:

[ -II- Both to be added separately below]

I also tried with IE6 & 8 downloaded trough PlayOnLinux to Wine. Unfortunately that wasn't done with this BackBox VM, but I expect that at least IE6 wasn't fully functional as it got stuck trying to load 192.168.0.1. However, IE8 told that it is unable to connect.


The second image.


The third image.

  • I'm confused...where is your flashing failure?
  • Are you saying this because LuCi didn't install?

:confused:

Why do you think your device needs rescuing?

This statement doesn't make much sense. It seems like you're creating an artificial problem. Moreover, you can install any packages you want on snapshot, as long as you perform them on the same day. This means you can upgrade your snapshot and install LuCI..

Well, that could be your problem. OpenWrt is not at that IP. It's at 192.168.1.1

  • I don't see anything from the router.
  • I'm not sure what you wanted us to see in these images
  • Why is there a 10.0.2.xxx network?

The device needs rescuing simply because I can't get any connection to it. And yes, it was a LuCI installation failure which led to this. The device isn't available at 192.168.1.1 either. I lost connection to it during LuCI installation after opkg informed about bad signatures or something like that. For me this problem is pretty real. If it's not, then you may tell me what I'm doing wrong. ( Before this, I've installed Openwrt only once from a custom installer which included LuCI. It was a TP-Link router with an insufficient flash memory and with it everything went well install-wise. )

Edit: About images: I thought that maybe they tell something to someone who knows better. And I don't know why there was that 10.0.2.xxx as I cut down the wireless connection.

Also be aware that you shouldn't try to use 2 network connections at once.

I don't remember which IP was in use, but I followed the installation instructions very closely and so I don't think it was a wrong one.

I disabled the wireless connection when I tried to diagnose the problem. Somehow it still tried to use the other connection too. However, this isn't the same machine that I used for installation. In that machine there's only wired connection but as there's another machine attached to the same system, it sometimes tends to choose wrong connection when booted.

None of those options on troubleshooting page seem to work. I can't manage to get this device to fast blinking state. I guess the blinking speed is close to one per second.

Regardless of blinking or stable led, trying with ssh always returns "connection refused" -message with 192.168.1.1. Other IPs give "no route to host", so I assume there's failed openwrt installation on the device. Somehow it can't handle any requests.

I don't think it was wrong either, that's why we need to know what it was.

You might need to fix this, it could have caused the problem.

Sorry, forgot about this thread, i.e. forgot to subscribe to it (Discourse only seems to notify when there is a direct reply to a post).

I'm confused about 10.0.2.15 in your screenshot, what device is behind that address, some vm running in the background? The netmask in the routers recovery is usually 255.255.255.0, so you definitely need to be in the 192.168.0. subnet as well; However it looks like your computer was using a different interface to connect to the router than the one you set the ip address for :thinking: