Personal tools

Debricking Linksys WRT54GL cu OpenWrt

From linux360

Revision as of 19:49, 27 April 2008 by Andrei Ristea (talk | contribs) (Metoda frustranta si migaloasa pentru cazuri de coruperi extreme)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Procedurile de mai jos trateaza readucerea la viata a unui router wireless Linksys Wrt54GL versiunea 1.1 cu firmware OpenWrt squashfs. Daca sunteti un posesor de Linksys WRT54G si/sau firmware DD-WRT, procedura de debricking ar trebui sa fie foarte asemanatoare.

Linksys WRT54GL v1.1

Eu am fost nevoit sa fac operatiunea dupa un upgrade nereusit de BusyBox pe router. Fapt pe care nici macar nu ar fi trebuit sa il incerc, dupa cum am aflat mai tarziu de la un developer OpenWrt. In urma tentativei nefericite, shell-ul a decedat iar router-ul nu mai putea porni. Solutia oferita de developer a fost rescrierea flash-ului prin TFTP dar, cum nevoia il invata pe om, am descoperit alta ce nu a mai necesitat reflashing.

Simptomele unui router "bricked" sunt de obicei refuzul acestuia de a boota sau incercari de boot nereusite si reboot-uri automate. (Re)Boot-ul este semnalizat prin clipirea deasa a LED-ului POWER. In aceasta faza intra in actiune bootloader-ul router-ului ce verifica integritatea software-ului si ii preda controlul mai departe sau, in cazuri de corupere, ofera utilizatorului posibilitatea de a incarca o noua imagine a firmware-ului prin tftp. Daca bootloader-ul incearca incarcarea software-ului, va semnaliza prin aprinderea continua a LED-ului DMZ.

Nici una din metodele de mai jos nu afecteaza garantia produsului. Daca ceva nu merge cum trebuie si va blocati de tot, puteti merge cu router-ul linistiti la garantie. Dar, iarasi, atentie la etichetele de sigiliu sa nu le rupeti din greseala cand manevrati "jucaria".

Metoda de 2 minute (plus reconfigurare)

Prima metoda de debricking se aplica in momentul in care partitia accesibila pentru scriere utilizatorului (jffs2) a fost corupta sau umpluta iar cea read-only (squashfs) este intacta. Acesta a fost si cazul meu. Solutia este reformatarea partitiei jffs2 cu datele default din cea squashfs si reconfigurarea router-ului.

Se deconecteaza router-ul de la retea si se conecteaza printr-un cablu UTP la PC-ul/laptop-ul pe care veti lucra. Conexiunea se va face printr-unul din porturile LAN (notate cu [3] in foto). Se deconecteaza router-ul de la alimentare, se reconecteaza si imediat ce se aprinde LED-ul DMZ, apasati butonul RESET (notat cu [1] cu foto) si mentineti pentru aproximativ 2 secunde. Acest lucru va provoca intrarea router-ului in modul fail-safe iar LED-ul DMZ va incepe sa clipeasca regulat.

Butonul de reset notat cu (1)

In acest moment, router-ul este initializat cu valorile default pentru conexiunea Ethernet (adresa IP 192.168.1.1). De pe calculatorul conectat la router, porniti un terminal/command prompt si rulati "telnet 192.168.1.1". Veti fi intampinat de un ecran ca cel de mai jos:

=== IMPORTANT ============================
 Use 'passwd' to set your login password
 this will disable telnet and enable SSH
------------------------------------------


BusyBox v1.00 (2006.03.27-00:00+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands.

 _______                     ________        __
|       |.-----.-----.-----.|  |  |  |.----.|  |_
|   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
|_______||   __|_____|__|__||________||__|  |____|
         |__| W I R E L E S S   F R E E D O M
WHITE RUSSIAN (RC5) -------------------------------
 * 2 oz Vodka   Mix the Vodka and Kahlua together
 * 1 oz Kahlua  over ice, then float the cream or
 * 1/2oz cream  milk on the top.
---------------------------------------------------

root@(none):/#

Pentru rescrierea partitiei jffs2, trebuie rulat utilitarul "firstboot":

root@(none):/# firstboot Unlocking OpenWrt ... Erasing OpenWrt ... creating directories... done setting up symlinks... done root@(none):/#

In acest moment, router-ul este reinitializat cu firmware-ul OpenWrt original si tot ce mai trebuie este un reboot.

root@(none):/# reboot

Dupa reboot, trebuie reconfigurate atat conexiunile (WAN, LAN, WiFi), precum si serviciile (iptables, SSH/SFTP, dnsmasq, cron etc). Pentru criptare WiFi WPA nu uitati sa reinstalati pachetul "nas".

Felicitari, in acest moment aveti din nou un router 100% functional.

Metoda frustranta si migaloasa pentru cazuri de coruperi extreme

A doua metoda de debricking se aplica in cazurile in care router-ul nu mai poate intra nici macar in mod fail-safe. Astfel de coruperi intervin in momentul in care este distrusa partitia squashfs (pentru imaginile WhiteRussian squashfs) sau cea jffs2 (WhiteRussian jffs2).

Singura solutie de resuscitare a router-ului fara afectarea garantiei (desfacerea carcasei si utilizarea hack-ului cu pini sau atasare de port serial) este rescrierea firmware-ului prin TFTP. Veti avea nevoie de o imagine a firmware-ului (i.e. openwrt-wrt54g-squashfs.bin) si un client TFTP (atat Linux cat si Windows au un astfel de utilitar in instalarile standard).

Deconectati router-ul de la retea si conectati-l printr-un cablu UTP la statia de lucru. Este foarte recomandat sa aveti ca intermediar intre statie si router un switch sau un hub! Acest lucru este esential deoarece fereastra de timp in care puteti incarca imaginea este foarte scurta (1-2 secunde). Prin utilizarea unui switch/hub, link-ul dintre statie si router se va restabili astfel foarte rapid dupa pornirea router-ului.

Pentru a pregati upload-ul imaginii, scrieti intr-un terminal/command prompt, fara a apasa inca ENTER:

tftp -i 192.168.1.1 PUT /calea/catre/fisierul.bin

(evident, inlocuiti "/calea/catre/fisierul.bin" cu calea locala corecta)

Deconectati router-ul de la reteaua electrica si reconectati-l. Imediat dupa aparitia link-ului catre router in switch/hub, executati comanda de mai sus. Repet, fereastra in care bootloader-ul asteapta o imagine noua a firmware-ului este foarte mica si trebuie sa va sincronizati perfect. Forumul openwrt.org mentioneaza o medie de 20-30 de incercari (fara nici un fel de gluma) pentru cei care aplica procedura pentru prima oara. Deci nu va lasati pagubasi la primele incercari nereusite!

Dupa upload-ul imaginii, clientul va raporta acest lucru iar router-ul va reboota automat. In acest moment, router-ul este gata de lucru si tot ce va mai ramane de facut este reconfigurarea acestuia.

Se mai pot gasi detalii pe Wiki-ul OpenWRT, care a documentat acesta problema si a detaliat partea de upload prin tftp. Metoda se poate aplica atat imaginilor din stoc, cat si celor oferite de proiectul X-wrt.


ATENTIE! linux360 nu isi asuma responsabilitatea si nu poate fi facuta vinovata pentru pagubele aparute in urma aplicarii defectuoase a acestui HOWTO sau in orice alt mod. Nu va incurajam sa umblati la hardware-ul dvs daca nu sunteti sigur pe bagajul propriu de cunostinte tehnice! Apelati cu incredere la service-urile autorizate.