Ratowanie routera

Kilkanaście dni temu stałem się właścicielem dość wiekowego modelu routera firmy Linksys WRTU-54G-TM. Urządzenie umożliwia pracę, jako most sieciowy i w tym właśnie celu miał być wykorzystywany. Ja jednak chciałem sprawdzić, do czego to urządzenie można było jeszcze zmusić. Zacząłem od zmiany softu…

I można powiedzieć, że na tym skończyła się oczekiwana kolej rzeczy. Podczas wgrywania OpenWRT do urządzenia „coś poszło nie tak”. W sumie, można było się tego spodziewać – wgrywanie nowego softu rozpocząłem w nocy z piątku na niedzielę (studenci wiedzą o co chodzi ;) ). Aktualizacja oczywiście nie powiodła się, a mój router mówił do mnie jedynie zieloną mrugającą diodą. Nie przejmując się tym jednak postanowiłem doprowadzić urządzenie do stanu używalności.

Po rozebraniu routera moją uwagę przykuły wyprowadzenia do programatora JTAG. Początkowo to z nich chciałem skorzystać. Później jednak zauważyłem piny umożliwiające wymianę danych przez łącze szeregowe. Do tego celu nie można jednak wykorzystywać zwykłego portu RS-232. Logiczna jedynka w tym standardzie definiowana jest przez napięcie -3V do -15V. „Zero” to natomiast napięcie z zakresu 3V do 15V.

Wyprowadzenia na piny JTAG
Wyprowadzenia na piny JTAG
Piny złącza szeregowego
Piny złącza szeregowego

Układ w WRTU-54G-TM pracuje w standardzie TTL (jak większość urządzeń tego typu). Do podłączenia do RS-232c niezbędne jest wykorzystanie układu scalonego MAX232 służącego do konwersji napięć na TTL. Dobrym pomysłem jest (ponoć) wykorzystanie kabli do telefonów Nokia (DKU-5 lub CA-42). Ja wykorzystałem układ kolegi zbudowany na podstawie schematu (sam, z lenistwa pewnie wykorzystałbym do tego kabel od Nokii):

schemat rs232 -> max232
schemat rs232 -> max232

Układ kolegi zbudowany jest miedzy innymi z… pudełka od zapałek. Zbudowany układ jest zaprezentowany na poniższych zdjęciach.

Wtyczka bez obudowy
Wtyczka bez obudowy
Wtyczka w obudowie
Wtyczka w obudowie
Układ MAX232
Układ MAX232
Układ z wyprowadzeniami
Układ z wyprowadzeniami

Układ jak widać banalnie prosty. Jeden scalak, 4 kondensatory i wtyk RS232, do tego kilka kabelków no i pudełko po zapałkach, jako obudowa wtyczki.

Nadszedł czas na podłączenie wszystkiego razem i skomunikowaniu się komputera z routerem. Wtyki co prawda nie były opisane, ale bez trudu udało mi się zlokalizować piny GND, TxD, RxD oraz zasilania (niewykorzystywany). Zasilanie układu MAX232 zaczerpnięte zostało z wtyczki 24 pinowej zasilacza ATX (kolor pomarańczowy to 3.3V – takiego właśnie potrzeba).

Do komunikacji potrzebujemy jeszcze programu umożliwiającego komunikacje przez port szeregowy. Użytkownicy Windows XP mogą wykorzystać HyperTerminal. Ja wykorzystywałem program putty.

Przed rozpoczęciem ratowania urządzenia warto zaopatrzyć się jeszcze w serwer tftp, wykorzystałem do tego celu program pumpkin. Do przeprowadzenia operacji jest niezbędne również posiadanie właściwego oprogramowania dla routera.

Zaczynamy część właściwą. Po podłączeniu wszystkiego uruchomiamy putty i wpisujemy niezbędne do skomunikowania dane przedstawione na kolejnym rysunku.

Wszystko podłączone
Wszystko podłączone
Ustawienia komunikacji
Ustawienia komunikacji

Po poprawnym podłączeniu i prawidłowo wpisanych danych uruchamiamy router. Dalej już z górki dla tych, którzy nie lubią grzebać w elektronice, a uwielbiają za to wszelkie terminale. Jeśli wszystko dobrze pójdzie w oknie terminala zaczną pojawiać się literki. Można poczekać i zobaczyć jaki błąd wyskakuje podczas ładowania systemu routera (u mnie był to Kernel Panic Error) lub wcisnąć dowolny przycisk gdy na ekranie pojawi się:
Hit any key to stop autoboot: 1

W zamian za to urządzenie przywita nas nazwą mikroprocesora, w który wyposażony jest router wraz ze znakiem zachęty
ADM8668 #

W terminal należy wpisać następujące polecenia:
set if_tftp 'ping $(serverip)' set do_tftp 'run tftp_boot' set bootcmd 'run if_tftp do_tftp; run flash_flash' save

Następnie wklepujemy kolejne komendy:
ADM8668 # set netretry no ADM8668 # run bootcmd

i wykonujemy restart urządzenia (poleceniem reset) i odczytujemy IP z jakim chciał połączyć się nasz router (fragment wyróżniony pogrubieniem):
TX error status2 = 0x04000008 Using adm8668_net device ping failed; host 192.168.0.250 is not alive <----- ## Booting image at b0040000 ... Check vendor string... Image Name: ADM8668 Linux Kernel(2.4.31) Created: 2011-01-20 5:11:38 UTC Image Type: MIPS Linux Kernel Image (uncompressed) Data Size: 917440 Bytes = 895.9 kB Load Address: 80400000 Entry Point: 80400000 Verifying Checksum ... OK OK

Odczytany adres ustawiamy jako stały adres IP naszej karty sieciowej (przewodowej oczywiście ;) ) i łączymy komputer z routerem kablem ethernetowym (koniecznie port WAN , w portach LAN niestety nie działało). Wydajemy jeszcze polecenia:
reset

I sprawdzamy czy router odnalazł nasz komputer. Jeśli się tak stanie w poprzednio zaznaczonym miejscu zauważymy:
TFTP from server 192.168.0.250; our IP address is 192.168.0.1

Już prawie dobrnęliśmy do końca – pozostało jedynie pobranie na router oprogramowania. W tym celu odpalamy pumpkina, a w jego folderze umieszczamy soft, który chcemy umieścić na routerze z nazwą zmienioną na vmlinuz-8668 (bez żadnego rozszerzenia!). Na koniec w terminalu wydajemy komendę:

run update_kernel

Podczas tego procesu pamięć flash zostanie wyczyszczona, chwilę później nowe oprogramowanie routera zostanie zainstalowane (pumpkin zapyta się czy zezwolić na udostępnienie obrazu systemu). Po kolejnym restarcie zobaczyć możemy nasze dzieło i sprawdzić jak uruchamia się nasz router. Nie zapomnijmy zmienić adresu karty sieciowej na poprzedni i przepięciu wtyczki sieciowej do gniazda LAN routera! Następnie zalogujmy się przez telnet lub www do routera. Skończone!

W większości (jeśli nie wszystkich routerach z serii WRT) przywracanie oprogramowania wygląda tak samo (najczęściej jednak w modelach WRT54xx dostępne jest 5 pinów łącza szeregowego – jeden nie jest podłączony do układu). Pewnie wielu z Was zastanawia się po czemu wróciłem do oprogramowania producenta, a nie skorzystałem z oprogramowania alternatywnego. Z bardzo prostego powodu – autorski soft wystarcza mi w 100%.

Jest to tylko jedna z możliwości uratowania tego routera. Zależnie od uszkodzenia nieraz niezbędne jest skorzystanie z programatora JTAG. W każdym bądź razie źle wgrany soft (czy to przez własne przeoczenie czy z przyczyn losowych) nie oznacza śmierci naszego urządzenia.

Już niedługo zamierzam dokonać „drobnej” modyfikacji urządzenia wykorzystując do tego celu układ przedstawiony na zdjęciu. Oczywiście po jego wykonaniu, instrukcję jego wykonania postaram się umieścić na blogu.

Obiekt do eksperymanetów
Obiekt do eksperymanetów

PS. Po wgraniu oprogramowania kolor diody Power może zmienić się z zielonego na czerwony. Sam się początkowo zdziwiłem co jest nie tak, jednak w jednym z nowych softów zostało to zmienione ;)
PS2. Oczywiście musiałem wgrać OpenWRT raz jeszcze... dzięki czemu otrzymałem przepis na drinka ;)
_______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M KAMIKAZE (bleeding edge, r24978) ------------------ * 10 oz Vodka Shake well with ice and strain * 10 oz Triple sec mixture into 10 shot glasses. * 10 oz lime juice Salute!  

sprzęt porady

Komentarze (12)

avatar | 21.02.2012 19:37
Hehe niezły wpis. W razie czego będę wiedział gdzie szukać :)

Ja w noce z piątku na niedziele trzymałem się z dala od kompa - taki firewall naturalny mi się robił :P
avatar
mmmmi (niezalogowany)
| 21.02.2012 20:54
"AC-42" chyba CA-42
avatar | 21.02.2012 21:13
Sam wpis niczego sobie. Trochę musiałeś się nakombinować, ale efekt jest. Trup ożył. Tylko... na początku chciałeś zrobić aktualizację, a na koniec piszesz, że oryginalny soft Ci wystarczy. Trochę niezdecydowany jesteś :)
avatar | 21.02.2012 21:17
@Shaki81 - nie masz czasem tak, że chcesz sprawdzić jak działa coś innego? :D Z czystej ciekawości wynikającej z opowiadań czy hobby? :)
avatar | 21.02.2012 21:33
Dokładnie :) Czysta ciekawość - to chyba najważniejsza cecha dobrego komputerowca - jak ulepszyć coś co dobrze działa :) Sam nie raz tak robiłem.
Jak pisałem szacun za pracę jaką w to włożyłeś. Pozdrawiam.
avatar | 21.02.2012 21:38
Fakt, osobiście poddałbym się i wysłał router w odpowiednie miejsce ;)
avatar | 21.02.2012 21:53
Powiedzmy, ze raz mialem podobna sytuacje z WRT-54GL, gdzie przy wgrywaniu Tomato router tez odmowil wspolpracy, ale po poszperaniu po kilku forach wystarczyl zwykly kabel sieciowy i oprogramowanie dalo sie wgrac normalnie bez koniecznosci rozbrajania urzadzenia i wspomagania sie pomocnymy narzedziami kolegow. Wpis zapewne sie przyda na przyszlosc jak najprostrze rozwiazania juz zawioda.
avatar | 21.02.2012 22:27
Ostatnio zrobiłem coś podobnego z moim linksysem. Ale krócej to trwało. Operacja trwała 10 sekund. Podłączyłem po prostu niewłaściwy zasilacz. Nie uwierzycie jak linksys fajnie świeci w ciemności. Ale to trwa tylko chwile bo potem się zaczyna palić. Przez pierwsze kilka sekund jest nawet zabawnie. Później już nie koniecznie. A smród wietrzyć trzeba 2 dni.
avatar
xm (niezalogowany)
| 21.02.2012 23:42
Miło wiedzieć, że są jeszcze na świecie inni tacy dziwacy :D
Mam Asus'a wl500gp, który jest 'klonem' WRT54G. Też padł podczas wgrywania OpenWRT i też wszystkie proste metody zawiodły. A Asus ma ich więcej, bo ma (teoretycznie) opcję przywracania oryginalnego firmwaru. Oczywiście nie zadziałało. Uziemianie odpowiedniego PINu, zalecane przez ludzi wtajemniczonych, również nie przynosiło rezultatu. Skończyło się na wlutowaniu RS-232.

BTW - Asus ma całkiem ciekawą możliwość na custom sofcie - jako, że posiada 2xUSB można podłączyć modem 3G na USB i rozdzielać go (mimo, że nie ma tego wiele :D).
avatar | 22.02.2012 9:48
Ja miałem do dyspozycje 3 routery Linksys WAG200EU. W efekcie eksperymentów ostał mi się tylko jeden. Strata żadna, bo i tak były przeznaczone do utylizacji, ale co się z nimi pobawiłem to moje. :D Ostatni z nich pracuje pod kontrolą softu OpenWAG200, ale coś krucho ze stabilnością i w zasadzie nie wiem czy to wina samego routera, softu, czy linii. Przyjdzie i czas na to, że to sprawdzę. Co do WRT to soft openWRT daje niesamowicie dużo nowych możliwości.

Przykład:
http://lifehacker.com/5631984/how-to-make-an-inexpensive-wi+fi-radio-with-an-asu...
avatar | 22.02.2012 20:48
@mmmmi (niezalogowany) - poprawione, zwykła literówka - dzięki za uwagę ;)
avatar
spinlock_rw (niezalogowany)
| 23.02.2012 22:05
Ja używam byłego kabla od noki z konwerterem usb - uart na 3.3v na układzie ark3116.
Bardziej popularne są układy konwerterów usb - uart firmy ftdi.
Dodaj komentarz