TFTP install/recovery via serial

Beware that this installation method needs a TTL level serial console usb to TTL like DKU-5 data cable or RS232-TTL level shifter like this:

and a working TFTP server and should not be attempted unless you have experience with this sort of thing or are eager to learn.

This is taken more or less verbatim from https://forum.openwrt.org/viewtopic.php?id=24203, thanks to dl3daz.

  • 1) Download an appropriate image to serve from your TFTP server (for example, openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin for v8).
  • 2) Hook your routers WAN ethernet port up to your network (for v8.2 it's LAN1 ethernet port)
  • 3) Hook up the serial console as explained in the section “serial console”. At the prompt “Autobooting in 1 seconds” type “tpl” quickly to start a uboot console.
  • 4) Now we need to set router and server IP addresses (here named ROUTERIP and SERVERIP, substitute these with the real IP addresses).

Type in the console:

setenv ipaddr ROUTERIP
setenv serverip SERVERIP
printenv

For example: Configure this static ip for your LAN card 192.168.1.100. If your computer containing other LAN or Wifi card, disable it!

Type in the console

setenv ipaddr 192.168.1.111
setenv serverip 192.168.1.100

192.168.1.111 is the router ip, 192.168.1.100 is the TFTP server ip.

Double check that the output of printenv lists the IP addresses you just set.

Uboot needs the tftp server to be listening on port 69. Make sure your server is configured to listen to that port. Now we can load the firmware over TFTP with “tftpboot 0x80000000 openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin”:

ar7240> tftpboot 0x80000000 openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin
Using eth0 device
TFTP from server 192.168.1.100; our IP address is 192.168.1.111
Filename 'openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin'.
Load address: 0x80000000
Loading: checksum bad
#################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################################################
done
Bytes transferred = 3932160 (3c0000 hex)

Note the “3c0000” in the last line (your number may differ). Now execute the following commands, if necessary replacing 3c0000 with the number you got from tftpboot Type:

printenv bootcmd

Take note of the address and use it as flash erase start address.

1. Erase the flash:

ar7100> erase 0xbf020000 +0x3c0000

First 0x2 last 0x3d sector size 0x10000
61
Erased 60 sectors

2.Copy RAM content to flash:

ar7100> cp.b 0x80000000 0xbf020000 0x3c0000
Copy to Flash... write addr: bf020000
done

3.Reset

ar7100> reset

Resetting...

4. Done.

1. Erase the flash:

wasp> erase 0x9f020000 +0x3c0000

2. Copy RAM content to flash:

wasp> cp.b 0x80000000 0x9f020000 0x3c0000

3. Set up the boot

wasp> bootm 0x9f020000
## Booting image at 9f020000 ...
Uncompressing Kernel Image ... OK

Starting kernel ...

4. Done.

  • doc/tec/net/router/openwrt/wr841n/owrt_tftp.txt
  • Última modificación: 2021/12/25 03:00
  • por 127.0.0.1