2024. április 23., kedd

Gyorskeresés

ASUS WL-700gE OpenWRT project, a küzdelmes tanulókör

Írta: | Kulcsszavak: openwrt . asus . wl-700 . wl700 . flash . serial . custom build . tftp

[ ÚJ BEJEGYZÉS ]

A TP-Link flash upgrade 4MB -> 8MB blog bejegyzésem után keresett meg hege8888 fórumtárs, hogy van neki kettő darab ASUS WL-700gE routere amire szeretne OpenWRT-t vagy bármilyen más Custom FW-t. Mivel a router erősen nem mai darab (ha jók az információim 2007-ben került a boltok polcaira) a neten már semmilyen custom fw nem lelhető fel. A dolog mozgatta a fantáziámat illetve, kíváncsi voltam, hogy mire is vagyok képes.

ASUS WL-700gE

#1 Első próbálkozások

A routernek 2Megás flash-e van ami erős korlátozó tényező. Nem kevés utána olvasás után egy backfire-t (10.10) próbáltam buildelni. Itt jött be az első gubanc. 10.10-es openwrt-t ne akarjon az ember 16/18.04-en fordítani mert mindenféle hibával elszáll. A googli és a helyi openwrt topikban is felvilágosítottak, hogy a gcc verzió miatt nem megy és érdemesebb egy régebbi linux-ot fogni. Első körben egy 12.04 (32bit)-tel próbáltam volna, de oda meg nem sikerült felrakni az ImageBuilderhez szükséges dolgokat. 14.04-es ubuntuval (32bit) már sikerült buildelnem. Majd kezdődött a faragás.
make image PROFILE=WL700GE PACKAGES="base-files busybox dropbear kmod-diag kmod-fs-ext3 kmod-ide-aec62xx kmod-ide-core kmod-switch libgcc -kmod-ppp -kmod-pppoe -ppp -ppp-mod-pppoe -nvram -dnsmasq -iptables -kmod-ipt-nathelper -mtd -e2fsprogs -fdisk"
Végül egy 1.8MB-s file-t sikerült összehozni. fordítás - pastebin

Ezt próbáltam meg a web felületen keresztül betölteni, de nem akarta megenni. Hát mondom velem nem szórakozol. Fail safe mode-ba raktam és TFTP-n keresztül felküldtem a flash-t. És hát egy pillanatra elfogott az öröm bódogság mert telnet-en be tudtam lépni. :Y
Egy gyors ön váll veregetés után jött az agyalás, hogy akkor hogyan is tovább. A tervem az volt, hogy a winyón csinálok egy 1GB-s particiót és extroot-olok. Közben nézegettem a rendszert és ha elérhetetlen könyvtárat vagy eszközt próbáltam kilistázni, esetleg jelszót beállítani akkor az adott session kifagyott. Reboot-nál szembesültem vele, hogy bizony csak a boot loader él az openwrt meg nem. Nem igazán értettem a jelenséget. TFTP-vel újra rátoltam, de újfent csak idejutottam. Tehát a build nem jó.

Ezen a ponton szerettem volna visszaállni a gyári fw-re. Nos ehhez szükség lett volna egy Asus trx extract tool-ra. Amit nem sikerült elővarázsolni a google bugyraiból.
Ezen a ponton jöttek a karácsonyi ünnepek és egyéb privát dolgok, szóval a router meg a project 3-4 hétre parkolópályára került.

#2 Új lendület, Serial Console és gyári FW visszaállítása

Közben sikerült szert tenni az Asus trx extract tool-ra ami annyit csinál, hogy a gyári 20Megás fw pack-ból (NAS kiterjesztésű file) kiveszi a flash-be való ~1.6-1.7Megás tartalmat. (bejegyzés alján lesznek linkek ha valakinek kellene)
A procedúra végtelenül egyszerű, bekapcs után nyomni kell a EZSetup gombot nagyjából 20 mp-ig. Ekkor várni fogja a fail-over cimen, hogy valaki TFTP-n töltsön fel neki egy image-t.

Ha van serial konzolunk akkor ezt látjuk ismétlődni:
Reading :: TFTP Server.
Failed.: Timeout occured

Részletesebben a pastebin-en megtekinthetitek.

Egyik nap beforrasztottam a soros konzol portot ami nagyon jó ötletnek bizonyult, mivel rengeteg részletes infó volt ott látható. Ez is megér egy misét, hogy a kedves designerek a tápegység alá húzták a drótok végét.

Baud rate: 115200

A helyi OpenWRT fórumban vargalex hívta fel a figyelmem rá, hogy a max hely 1769472 byte lehet az alábbi flash kiosztás alapján

serial konsolon a boot során látható ez az információ

A lényeg:
0x00000000-0x00040000 : "cfe"
0x00040000-0x001f0000 : "linux"
0x00161360-0x001f0000 : "rootfs"
0x001f0000-0x00200000 : "nvram"

Az én buildem akárhogy faragtam nem igazán ment 1.8Mega alá.
Sok agyalás után arra jutottam, hogy még régebbi openwrt-vel kéne próbálkozni.
Így esett a választás a Kamikaze-ra (8.09), amivel a default build 1.5Mega lett. :Y
Majd gyorsan összepakoltam bele minden földi jót.
make image PROFILE=WL700GE PACKAGES="base-files busybox dropbear kmod-diag kmod-fs-ext3 kmod-ide-aec62xx kmod-ide-core kmod-switch libgcc -kmod-ppp -kmod-pppoe -ppp -ppp-mod-pppoe -nvram -dnsmasq -iptables -kmod-ipt-nathelper -mtd e2fsprogs fdisk uci luci kmod-usb-uhci kmod-usb-ohci block-mount"
Az eredmény: 1642496 bytes
Itt már fejben bontottam a pezsgőt meg a whiskey-t.
Rá is küldtem hamarjában és izgultam

TFTP feltöltés és a fw upgrade folyamat

.

A fenti kép tanulsága alapján sikeres volt a tervezett művelet. És hát izgatottan vártam, hogy a reboot után mi fog történni. Csodák csodájára bejött az OpenWRT promptja.
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (8.09.2, r18961) -------------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
root@OpenWrt:/#

kamikaze boot - pastebin

Gyors check, hogy mink is van.
root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 896.0K 896.0K 0 100% /rom
tmpfs 30.7M 36.0K 30.7M 0% /tmp
/dev/mtdblock/4 320.0K 320.0K 0 100% /tmp/overlay
root 896.0K 896.0K 0 100% /tmp/root
mini_fo:/tmp/root 896.0K 896.0K 0 100% /tmp/root
/dev/mtdblock/4 320.0K 320.0K 0 100% /overlay
mini_fo:/overlay 896.0K 896.0K 0 100% /

root@OpenWrt:/# mount
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro)
none on /dev type devfs (rw)
none on /proc type proc (rw)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw)
/dev/mtdblock/4 on /tmp/overlay type jffs2 (rw)
root on /tmp/root type tmpfs (rw)
mini_fo:/tmp/root on /tmp/root type mini_fo (rw)
/dev/mtdblock/4 on /overlay type jffs2 (rw)
mini_fo:/overlay on / type mini_fo (rw)

root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "cfe"
mtd1: 001b0000 00010000 "linux"
mtd2: 000e2c00 00010000 "rootfs"
mtd3: 00010000 00008000 "nvram"
mtd4: 00050000 00010000 "rootfs_data"

Viszont nem volt kerek a rendszer. LUCI nem volt elérhető, jelszót sem tudtam beállítani és a shell is néha kifagyott. A jelenség az volt, hogy ha olyan parancsot adtam ki amit nem komált akkor a session megállt és nem lehetett tovább semmit se csinálni.

Szerintem a build-del valami nem kerek és a csatolásoknál lenne valami problematika. De erre is csak az alábbi információból következtetek. (egyik másik google bejegyzés szerint ez normál első boot-nál)

mini_fo: using base directory: /
mini_fo: using storage directory: /jffs
mini_fo: build_sto_structure: failed to create storage dir [1].
mini_fo: get_neg_sto_dentry: ERROR building sto structure.

Szóval ennyi. Ment vissza a gyári fw.
File-ok:
ASUS WL700gE_1.0.7.8_flash.md5
WL700gE_1.0.7.8_flash.trx
AsusTrxExtract_1.0.0.1.zip

Pastebin linkek:
WL700_asus_stock_boot
WL700_kamikaze_update
WL700_kamikaze_boot
WL700 serial boot cfe prompt 001

Hozzászólások

(#1) Honkydoo


Honkydoo
őstag

Azta, ez a router tényleg nem mai darab. :D
Én középiskola végén berheltem egy Asus WL500G Premium routert. ~13 éve.. :Y

Köszi a nosztalgiát! "Régen minden jobb volt!" :D

"Légy olyan, mint bárki más, tégy olyat, mint senki más."

(#2) iday


iday
aktív tag

Nekem is nosztalgia ez az írás.
Nem kicsit meglepő hogy a jobbik router ilyen korlátozott.
Nekem Asus WL500GP V2, a kistesó volt/van.
Sikeresen cseréltem a ramot, 32Mb helyett 64Mb-al üzemel most is, Openwrt-vel, usb webkamerával.

3dfx & AMD & ATI forever! http://iday.hu

(#3) sonar válasza iday (#2) üzenetére


sonar
addikt

Nagy Tesó ide vagy oda a tiédben gyárilag 8 MiB-es flash szemben a WL-700gE 2 MiB-jével és ez a legnagyobb szívás az egész routerben.

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.