After the death of an unsupported Belkin router I had used for the last 4 years, I purchased a D-Link DIR-601/re (referbished) because of the extremely low price and the likelihood of being able to flash OpenWrt onto it. I was indeed lucky enough to receive the A1 hardware revision and attempted to flash it. However, according to the wiki page, flashing this router using the D-Link flash tool requires Internet Explorer 6, and says that other browsers including later IE versions may not work. Being a Linux user who rarely even has access to a Windows box, I tried to flash it using Firefox, and of course, as expected, nothing happened. The power light, which had been flashing, stopped flashing, staying either on or off, depending on whether it was on or off before clicking the "Send" button, and it just sat there for as long as I let it sit there, booting back into the stock firmware when I had enough of letting it sit there and pulled the plug. Because I needed my wifi network back as quickly as possible, and because the DIR-601 was at this point my only router, I went and found a box running Windows XP and Internet Explorer 6 and flashed the router using the Attitude Adjustment image I had downloaded onto a flash drive.
fastforward about a week, and I decided to purchase another DIR-601, because I wanted to try to extend my wifi range, and failing that, I wanted a spare router when this one dies in about 15 years . Because this second device is not being used for production, but was to be used experimentally or as a spare if it was ever needed, I was able to experiment with flashing the OpenWrt firmware using my computer that runs only Linux. The first thing I did was to use the normal web interface to upgrade the D-Link firmware to the latest version. After this, I tried using the D-Link flashing tool's web interface the same way I did with the first router, setting my computer's network card to 192.168.0.2 and holding in the reset button while powering up the router until the power light began flashing. I tried every browser I could find, from Firefox to Google Chrome to even the lesser known browsers such as Epiphany, Midori, Links, Elinks, Lynx, W3M, and even tried some command line magic with wget and curl. Some browsers caused the router to freeze the same way Firefox did, but most browsers appeared to do nothing at all, leaving the power light flashing. I then tried to send the firmware file via tftp, which the wiki page says may not work, but gives no information about the router's port configuration in case someone (like me) wanted to try it anyway. I tried tftp using both the recovery mode, which presumably is just loading the boot loader with a small web-based flash tool on top, and I also tried tftp after the router booted its own firmware. The recovery mode tftp transfer only timed out without receiving any acknowledgement of even the first data block, but the tftp server that came up after booting the stock firmware, although it would receive most of the file, refused to acknowledge the last 24 bytes of the file. Strangely, the sysupgrade image transferred without issue, but of course nothing happened after the transfer. I also tried sending a Backfire factory image I downloaded for the DIR-600, which is apparently supposed to work after changing the last byte of the file from 0 to 2, but again, nothing happened after the transfer, although the tftp server accepted the entire file. The wiki page also mentioned logging into the U-Boot console, but it gives no information about how to do that either. Reading the generic flashing instructions indicated that the wiki page for my specific router model should specify how to flash using the boot loader by other means than a web interface, but there is no information listed for this router, and a port scan quickly closed all ports that the boot loader may have had open, including eventually port 80. So I read on the DIR-600 and DIR-601's wiki page that DD-WRT images can be flashed using the normal web interface, but that OpenWrt images for some reason don't load. Something clicked in my brain and put that together with changing the last byte of the Backfire image from 0 to 2, and this sparked a working flash from stock firmware on the DIR-601 rev A1 to Attitude Adjustment without the use of Windows or Internet Explorer 6. Below I detail the flashing method that worked for me.
Download both the Backfire 10.03.1 factory image for the DIR-600 A1 and the Attitude Adjustment 12.09 sysupgrade image for the DIR-601 A1; I needed both files.
In your prefered text terminal app, use vim to edit the Backfire factory image, changing only the last character of the file from "0" to "2." Note: I specify vim here because it's the only text editor I know that maintains the integrity of the binary file while allowing you to change the last character. Other text editors may also work, especially Unix/Linux editors, but vim is tested and known to work.
Manually set the IP address of your computer's network card to anything in the 192.168.0.0/24 subnet, the netmask to 255.255.255.0 and the gateway to 192.168.0.1. You can do this using NetworkManager, ifconfig or whatever you like, as long as these parameters are set manually rather than trying to get them using dhcp.
Run an ethernet cable from the network card in your computer to any lan port on the router. The wan port will not do. Boot the router normally and wait for the power light to turn green and the wifi light and the lan light for the connected port to turn on. It's normal for the wifi and lan lights to flash periodically.
Point your browser to 192.168.0.1 and click tools and then firmware.
Upload the Backfire image you downloaded and modified. The router should reboot once the upload is complete.
Reconfigure the network card on your computer so that the IP address is now in the 192.168.1.0/24 subnet and the gateway is 192.168.1.1. DHCP on the router will likely work now, but this manual method is more failsafe.
Point your browser to 192.168.1.1, login with an empty password and click System, then Backup / Flash Firmware.
Untick "Keep Settings," browse to the Attitude Adjustment sysupgrade image you downloaded earlier and click Flash Image.
Follow any prompts and then wait for the magic to happen. The next time the router reboots, you will be running the latest OpenWrt Attitude Adjustment 12.09 firmware. Have fun!
Having posted what worked for me, has anyone else been able to flash an OpenWrt image onto a D-Link DIR-601 rev A1 by any other means using Linux? It would also be of interest to me to know what makes the Backfire image with the last byte changed acceptable to the stock firmware's web interface, but makes Attitude Adjustment unacceptable.
(Last edited by Kyle on 10 May 2013, 03:16)