TP-Link WR741ND újraélesztése

Avagy hogyan kell a különböző firmware-ek csereberéjével téglásított routert visszahozni az életbe? – írta: cigam, 6 éve

A programozás

A terminálon látottak igazolták, hogy az eszköz boot loop-ba került.

U-Boot 1.1.4 (Sep 3 2010 - 12:28:13)

AP91 (ar7240) U-boot
DRAM:
sri
#### TAP VALUE 1 = a, 2 = a
32 MB
id read 0x100000ff
flash size 4194304, sector count = 64
Flash: 4 MB
Using default environment

In: serial
Out: serial
Err: serial
Net: ag7240_enet_initialize...
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7014
eth0: 00:03:7f:09:0b:ad
eth0 up
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
ATHRS26: resetting s26
ATHRS26: s26 reset done
eth1 up
eth0, eth1
Autobooting in 1 seconds
## Booting image at 9f020000 ...
Uncompressing Kernel Image ... Error: Bad gzipped data
GUNZIP ERROR - must RESET board to recover

Resetting...

Ez ismétlődött a végtelenségig. Szóval van remény, hiszen életjelet ad magáról, valamilyen szinten működik. Jöhetnek az előkészületek. Szükség lesz egy tftp szerverre, amiről letöltheti majd a jó firmware-t. Linux alatt a tftpd-hpa-t telepítettem (sudo apt install tftpd-hpa), Windows-osok pedig a tftpd32-t használhatják erre a célra.
Szükség lesz magára a firmware-re. A cikk írásakor innen lehet letölteni az aktuális stabil verziójú OpenWRT-t. Nagyon fontos hogy az elektronika verziójához illeszkedő programot töltsd le! Ez rajta van a hátlapon, és belül a LAN portra ragasztva.


Egy nagyon fontos adat belül és kívül

Vagyis a 2.4-es verzióhoz a tl-wr741nd-v2-squashfs-sysupgrade.bin-t kell letölteni. Másoljuk a szerver könyvtárába (sudo cp lede-17.01.4-ar71xx-generic-tl-wr741nd-v2-squashfs-sysupgrade.bin /srv/tftp/), vagy tallózzuk be a tftp32-vel azt a könyvtárat, ahova letöltöttük ezt a fájlt.

Most lesz igazán nehéz, ugyanis amikor a boot loop elér ahhoz a részhez, amikor vár 1 másodpercet,

...
eth1 up
eth0, eth1
Autobooting in 1 seconds
## Booting image at 9f020000 ...
Uncompressing Kernel Image ... Error: Bad gzipped data
...

akkor le kell nyomni gyorsan egymás után a tpl gombokat. Sajnos nincs igazán ötletem, hogy miért csak 1 másodpercet vár, ugyanis ez így inkább türelem/ügyességi játék, mint titkos billentyűkombináció. Azok a szerencsések, akiknek sikerült bejutni a rendszerbe, kapnak egy promptot, ahova begépelhetik a parancsaikat.
Beállítjuk, hogy a tftp szervert milyen címen éri el (a példámban ez 192.168.0.3), és megadjuk, hogy magának a routernek mi legyen az IP címe (192.168.0.100).

ar7240> setenv serverip 192.168.0.3
ar7240> setenv ipaddr 192.168.0.100

Probléma esetén, vagy csak ellenőrzésképpen a printenv paranccsal kilistázhatod többek közt a fenti két paramétert is. Letöltöm a firmware-t, törlöm a régit, és a helyére másolom a rendszert.

ar7240> tftpboot 0x80000000 lede-17.01.4-ar71xx-generic-tl-wr741nd-v2-squashfs-sysupgrade.bin
Using eth1 device
TFTP from server 192.168.0.3; our IP address is 192.168.0.100
Filename 'lede-17.01.4-ar71xx-generic-tl-wr741nd-v2-squashfs-sysupgrade.bin'.
Load address: 0x80000000
Loading: *##################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##########################################
done
Bytes transferred = 3538948 (360004 hex)

ar7240> erase 0x9f020000 +0x360004
First 0x2 last 0x38 sector size 0x10000
Erased 55 sectors

ar7240> cp.b 0x80000000 0x9f020000 0x360004
Copy to Flash... write addr: 9f020000
done

A félkövérrel megjelelölt szám (0x360004) a firmware méretét jelöli. Ha a tftboot a letöltés végén más méretet ad, pl. Bytes transferred = 3670020 (380004 hex), akkor értelemszerűen az általa megadott méretet kell megadni.

Már csak egy nagy levegőt kell venni, és indíthatjuk az új rendszert.

ar7240> bootm 0x9f020000

## Booting image at 9f020000 ...
Uncompressing Kernel Image ... OK

Starting kernel ...

OpenWrt kernel loader for AR7XXX/AR9XXX

Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>

Looking for OpenWrt image... found at 0xbf022000

Decompressing kernel... done!

Starting kernel at 80060000...

[ 0.000000] Linux version 4.4.92 (buildbot@builds-02.infra.lede-project.org) (gcc version 5.4.0 (LEDE GCC 5.4.0 r3101-bce140e) ) #0 Tue Oct 17 14:59:45 2017
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[ 0.000000] SoC: Atheros AR7240 rev 2
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 02000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] No valid device tree found, continuing without
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000001ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
...

Ha rendben elindult a rendszer, már elérjuk a 192.168.1.1 címen az életre keltett routerünket, amin az OpenWRT fut.

Azóta történt

  • Mercusys MW325R router

    A könnyű használhatóság és a szerény költségvetés miatt esett a választásom erre a filléres Wi-Fi routerre.

Előzmények