Flashing Instruction for the Airlink 101 AR430W This is a corrected and edited version of the flashing.txt file available at dd-wrt for v24 SP1 on Airlink 101 AR430W devices. I have flashed several routers with this script. (-John Bindel) Configure your computer's local IP address to 192.168.20.80. (On Ubuntu GNU Linux first disable networking; then type `sudo ifconfig eth0 192.168.20.80`.) Connect your computer LAN cable to the router's WAN port. In a separate terminal window, start pinging the router at 192.168.20.81 to see when its ethernet port becomes active. Unplug the router's power cord and replug it. As soon as successful ping replies are seen enter the Redboot using Putty to telnet to IP address 192.168.20.81 on port 9000. (On Ubuntu use `putty -telnet -P 9000 192.168.20.81`.) Press Ctrl-C and then Enter in the Putty window to get the RedBoot prompt. You might need several tries since the RedBoot server is only available for 1 second after aproximately 5 seconds of booting. Regular telnet will not work from unix or linux because it does not pass the Ctrl-C signal. Putty is available for Windows and Linux. Stop the ping command to avoid seeing error messages in the Redboot console. Now start a local TFTP server on your computer and place ap61.ram, ap61.rom, and linux.bin in the root directory of this server. Back at the RedBoot prompty enter this: RedBoot> load ap61.ram Using default protocol (TFTP) Entry point: 0x800410bc, address range: 0x80041000-0x800680d8 RedBoot> go After about a minute the router should start a new temporary bootloader with IP address 192.168.1.1 on port 9000. Reconfigure your computer's IP address to 192.168.1.23 and telnet to the bootloader. (On Ubuntu GNU Linux disable networking, and type `sudo ifconfig eth0 192.168.1.23`.) IMPORTANT. While doing the following steps never unplug the LAN cable or the power cord. Now use `fconfig -i` and use all default settings and save the config: DD-WRT> fconfig -i Initialize non-volatile configuration - continue (y/n)? y Run script at boot: false Use BOOTP for network configuration: true Default server IP address: Console baud rate: 9600 GDB connection port: 9000 Force console for special debug messages: false Network debug at boot time: false Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Set the bootp flag to false: DD-WRT> fconfig bootp false bootp: Setting to false Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Initialize the flash file system: DD-WRT> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Configure the IP address of your TFTP server: DD-WRT> ip_address -l 192.168.1.1 -h 192.168.1.23 IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.1.23 Get the ROM image: DD-WRT> load -r -b %{FREEMEMLO} ap61.rom Using default protocol (TFTP) Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000 Create the bootloader's file system: DD-WRT> fis create -l 0x30000 -e 0xbfc00000 RedBoot An image named 'RedBoot' exists - continue (y/n)? y ... Erase from 0xbfc00000-0xbfc30000: ... ... Program from 0x80080000-0x800a8718 at 0xbfc00000: ... ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x807f0000-0x80800000 at 0xbffe0000: . Reboot the router: DD-WRT> reset The router will reboot and the new bootloader will be executed and is waiting for your connection. Again telnet to the bootloader at IP adress 192.168.1.1 on port 9000. Set the IP address of the TFTP server: DD-WRT> ip_address -l 192.168.1.1 -h 192.168.1.23 IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.1.23 Load the Linux image: DD-WRT> load -r -b 0x80041000 linux.bin Using default protocol (TFTP) Raw file loaded 0x80041000-0x803bafff, assumed entry at 0x80041000 Now do the following, which may take several minutes: DD-WRT> fis create linux ... Erase from 0xbfc30000-0xbffaa000: ........................................................ ... Program from 0x80041000-0x803bb000 at 0xbfc30000: ........................................................ ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Change the boot_script flag: DD-WRT> fconfig boot_script true boot_script: Setting to true Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Set the boot_script_timeout: DD-WRT> fconfig boot_script_timeout 3 boot_script_timeout: Setting to 3 Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Now type fconfig again and configure the bootscript to be this: fis load -l linux exec DD-WRT> fconfig Run script at boot: true Boot script: Enter script, terminate with empty line >> fis load -l linux >> exec >> Boot script timeout (1000ms resolution): 3 Use BOOTP for network configuration: false Gateway IP address: Local IP address: Local IP address mask: Default server IP address: Console baud rate: 9600 GDB connection port: 9000 Force console for special debug messages: false Network debug at boot time: false Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . Type reset again: DD-WRT> reset It may take more than a minute to reboot. The unit should now boot dd-wrt and work as known from other Atheros based platforms. Connect the computer's ethernet port to a LAN port on the router and turn on networking on the computer using DHCP to get an address from the router. In a web browser go to http://192.168.1.1/ to configure the router.