Instalacja OpenWRT w Linksys WAG354g
21.07.2011 18:30
Zostałem poproszony o pomoc w instalacji OpenWRT na urządzeniu WAG354g. W końcu robiłem kiedyś to na swoim Asusie i nie było większych problemów także sądziłem, że tutaj będzie tak samo i w sumie niewiele się myliłem. Jednak przeszukując sieć nie zawsze wszystko jest opisane, albo czegoś brakuje to postanowiłem opisać tę operacje.
Przygotowania
Potrzebowałem odpowiedniego nowego firmware. Na stronie http://openwrt.org w sekcji download znajdziemy wszystko. Należy dowiedzieć się na jakiej platformie jest zbudowany router - ten akurat był na AR7. W tym przypadku firmware pasujący do routera to openwrt-WA31-jffs2-64k-code.bin w wersji Backfire 10.03. Kolejnym potrzebnym programem był klient tftp - pobrałem tftpd ze strony http://tftpd32.jounin.net/. Można skorzystać także z wbudowanego klienta w system. W przypadku Windows Vista i 7 należy go doinstalować w Programy i Funkcje > Włącz lub wyłącz funkcje systemu Windows. Kolejną czynnością było odłączenie wszystkiego od routera i podłączenie go bezpośrednio do komputera (za pomocą kabla sieciowego aby była jasność). Jako, że ten router miał już wyprowadzone złącze RS232 to podłączyłem także go pod port COM.
Konfiguracja wstępna
Na routerze warto zresetować ustawienia (i tak po wgraniu nowego firmware zostaną skasowane) i ustawić IP 192.168.1.1/24 (standardowy adres IP dla tego routera). W komputerze ustalamy adres IP 192.168.1.2/24 (ja akurat miałem 192.168.1.23 ale to nie ma wielkiego znaczenia), ważne by był w tej samej sieci.
Aby nie zrobić sobie z routera gustownej cegiełki, łączymy się do niego poprzez telnet. Z wiersza poleceń wpisujemy
telnet 192.168.1.1
jeżeli zapyta o użytkownika i hasło to podajemy takie, jakie mamy ustawione.
Teraz należy włączyć opcję boot_wait, tak aby można było wgrać nowy firmware (niefirmowy najczęściej, ale firmowy też możemy wrzucić) wpisujemy:
nvram set boot_wait=on nvram commit reboot
Po restarcie urządzenia ponownie łączymy się poprzez telnet i w celu sprawdzenia, czy funkcja jest poprawnie włączona wpisujemy:
nvram get boot_wait
powinno wyświetlić "on".
Wgrywanie nowego oprogramowania - przygotowania Oprogramowanie można wgrać na kilka sposobów, takich jak przez www, tftp, jtag i pewnie jeszcze inne. Jako, że przez www nie udało się wgrać tego oprogramowania pozostało tftp. Mogłem to zrobić na 2 sposoby, oba opisze ponieważ wypróbowałem i działają.
Teraz warto sobie przygotować albo aplikacje tftpd albo aplikacje tftp wbudowaną w system Windows do wrzucenia pliku. Należy pamiętać, że plik musi być przesłany z nazwą upgrade_code.bin. Akurat oba programy pozwalają wybrać pod jaką nazwą plik będzie wysyłany to nie jest konieczna fizyczna zmiana nazwy pliku. Jeżeli nie będzie miał takiej nazwy to router go nie rozpozna.
tftpd32
Ustawiamy "server interface" na 192.168.1.x, przechodzimy na zakładkę tftp client i wpisujemy:
Host: 192.168.1.1 Local file: "wskazujemy nasz pobrany plik" Remote file: upgrade_code.bin - "nie musimy wybierać jeżeli plik nazwaliśmy w ten sposób"
tftp wbudowane w system
Przemieszczamy się do katalogu gdzie trzymamy plik z oprogramowaniem. Wpisujemy polecenie:
tftp -i 192.168.1.1 put openwrt-WA31-jffs2-64k.bin upgrade_code.bin
gdzie nazwa "openwrt-WA31-jffs2-64k.bin" to nazwa pliku, którą chcemy wrzucić do routera, może być inna w zależności od wersji itp.
Metoda 1
Po ustawieniu boot_wait w trakcie startu router czeka 2 sekundy na załadowanie nowego firmware później rozpoczyna proces ładowania systemu. W tym celu zostało przygotowane wcześniej oprogramowanie tftp gotowe do wysłania pliku. Po podłączeniu zasilania musimy szybko uruchamiać nasze polecenie i jeżeli zdążyliśmy to zacznie się ładować nowy firmware - co będzie widoczne w kliencie tftp (pojawi się między innymi polecenie "sent Data"), jeżeli się nie udało to próbę należy ponowić.
Metoda 2
Z tej bardziej polecam skorzystać. Podłączyłem router pod port RS232 czyli popularny COM i podłączyłem się do routera przez terminal. Tą metodą można zdecydowanie szybciej wykonać takie operacje. Po włączeniu urządzenia pojawia się komunikat "Press ESC for monitor... 2" i odlicza. Tutaj naciskamy ESC i router czeka na nowy firmware. W ten sposób możemy spokojnie wpisać polecenie tftp lub ustawić co potrzeba w programie tftpd i wysłać plik z nowym oprogramowaniem. Wszystko widać na połączeniu z routerem poprzez COM. Tak jak na zrzucie ekranu widać wszystko od strony klienta tftp jak i od strony routera czy wszystko przebiega poprawnie.
Finał
Jak oprogramowanie zostanie poprawnie załadowane rozpocznie się proces ładowania systemu. Po takim uruchomieniu można spokojnie rozpocząć dalszą konfigurację. Należy pamiętać, że wgrywając oprogramowanie można uszkodzić urządzenie. Często jest możliwe naprawienie tego błędu jednak może to wymagać większej ingerencji w urządzenie, wymagać dodatkowego sprzętu (np. w przypadku naprawy poprzez jtag) lub innych zdolności. Także jeżeli ktoś nie czuje się na siłach niech lepiej nie wykonuje takich operacji aby później nie żalić się, że nie udało się i nie działa sprzęt.