Przygotowanie i instalacja OpenWrt na ruterze Linksys WRT160NL
Ostatnia zmiana: 2013-11-26 18:43
Changelog- 2010-11-13 opis gotowych obrazów został przeniesiony do tego dokumentu
- nowy obraz na podstawie oficjalnej wersji stabilnej Backfire 10.03.1-rc3 (r23873) -zmiany w sterownikach wifi
- nowy obraz z LuCI
- nowy obraz z Gargoyle (
szczegóły- nowy obraz na podstawie oficjalnej wersji stabilnej Backfire 10.03.1-rc3
- nowy obraz na podstawie oficjalnej wersji stabilnej Backfire 10.03.1-rc3
- nowy obraz na podstawie oficjalnej wersji stabilnej Backfire 10.03.1-rc3
Linksys WRT160NL jest stosunkowo nowym ruterem dostępnym na rynku. Jego krótka specyfikacja:
- architektura: Atheros AP81
- bootloader: U-boot 1.1.5
- procesor Atheros 9130-BC1E 400 MHz
- Flash: cFeon EN25P64 8 MiB
- RAM: Samsung K4H561638J-LCCC 32 MiB
- WLAN: Atheros 9102 802.11 b/g/n (zintegrowany)
- chipset Ethernet: RTL8306SD 10/100
- USB: 1x 2.0
- rs232c (TTL)
- JTAG
- przyciski reset, WPS (Wi-Fi Protected Setup).
Stan projektu
Ruter obecnie obsługiwany jest przez OpenWrt Kamikaze w wersji rozwojowej - trunk. Działa wszystko, łączenie z trybem
failsafe. Sterownik radiowy jest cały czas rozwijany i oferuję coraz lepszą wydajność z wersji na wersję.
Gotowe obrazy
Generalnie należy skorzystać z trunka lub wersji 10.03.x. Jeżeli ktoś nie może/nie umie/nie wie jak to zrobić może użyć gotowego obrazu przygotowanego przeze mnie.
Plik dla tego routera to:
- openwrt-ar71xx-wrt160nl-squashfs-factory.bin. Przeznaczony jest do instalacji przez oryginalne firmware lub mtd.
- openwrt-ar71xx-wrt160nl-squashfs-sysupgrade.bin. Przeznaczony jest do instalacji przez sysupgrade lub mtd.
OpenWrt
Zawartość i funkcjonowanie opisane jest w
osobnym dokumencie.
Obraz przeznaczony jest do instalacji na ruterze na którym jest już OpenWrt! Jeżeli jest na nim jeszcze oryginale oprogramowanie, należy najpierw zainstalować
ten plik a następnie wykonać upgrade moim obrazem.
Naciśnięcie przycisku WPS do 2s powoduje przełączenie Wifi (on/off). Naciśnięcie przycisku Reset (5s - 10s) powoduje restart urządzenia. Powyżej 30s - usunięcie konfiguracji i powrót do ustawień domyślnych (firstboot).
Po starcie systemu dioda WPS sygnalizuje stan rutera - jeżeli miga, ruter nadal jest w stanie uruchamiania, jeżeli świeci na stałe - ruter jest gotowy do pracy.
Gargoyle PL
Opis polskiej wersji Gargoyle wraz ze wsparciem dla USB znajduje się
tutaj: Gargoyle PL.
Instalacja przez bootloader
- wyłączyć zasilanie rutera
- podłączyć kabel szeregowy do rutera i komputera (oczywiście wyposażony w konwerter napięć!)
- podłączyć kabel ethernet do rutera i komputera
- ustawić adres IP karty sieciowej w komputerze na stałe na 192.168.1.166
- uruchomić terminal (może być putty) - ustawić parametry 115200 8n1
- włączyć zasilanie rutera
- kiedy wyświetli się napis "Hit any key to stop autoboot" naciskamy dowolny klawisz - proces startu zostanie przerwany
- powinien się wyświetlić znak zachęty:
Teraz trzeba uruchomić przyjęcie pliku:
ar7100> upgrade code.bin
check link duplex:Full/speed:100
dup 1 speed 100
Tftpd start listening on port[69]!
Load address: 0×80060000
Na komputerze wysyłamy więc plik firmware (zmieniając mu wcześniej nazwę na code.bin) przy pomocy tftp
Windows:
C:\tmp> tftp -i 192.168.1.1 put code.bin
Linux
# atftp -p -l code.bin 192.168.1.1
Na konsoli szeregowej powinno pojawić się coś w postaci
Receiving firmware [code.bin] from [192.168.1.166]
Write File : CODE.BIN
Gdy proces zapisu dobiegnie do końca można normalnie uruchomić system wydając w u-boot polecenie
Po starcie systemu dioda WPS sygnalizuje stan rutera - jeżeli miga, ruter nadal jest w stanie uruchamiania, jeżeli świeci na stałe - ruter jest gotowy do pracy.
Instalacja przez WWW (oryginalny firmware)
Podany firmware można normalnie zainstalować posługując się opcją
Administration/Firmware Upgrade. Po instalacji należy normalnie zalogować się przez telnet i zmienić hasło.
Instalacja przez WWW (OpenWrt/LuCI)
Podany firmware można normalnie zainstalować posługując się opcją
System/Flash firmware. Po instalacji należy normalnie zalogować się przez telnet i zmienić hasło.
Instalacja przez MTD (OpenWrt/konsola)
Należy przesłać obraz do rutera (np. przy pomocy scp lub winscp) do katalogu /tmp a następnie wydać polecenie
# cd /tmp
# mtd -r write openwrt-ar71xx-wrt160nl-squashfs.bin firmware
W ten sposób można także wgrać oryginalny firmware.
Instalacja przez sysupgrade (OpenWrt/konsola)
Należy przesłać obraz do rutera (np. przy pomocy scp lub winscp) do katalogu /tmp a następnie wydać polecenie
# sysupgrade -n /tmp/openwrt-ar71xx-wrt160nl-squashfs.bin
Pominięcie opcji
-n spowoduje zachowanie plików konfiguracyjnych. Ale uwaga - może się okazać, że w nowej wersji zmienił się format niektórych plików i po upgrade coś może nie działać z tego powodu. Więc należy o tym pamiętać.
Dodatkowa konfiguracja
Do uzupełnienia w odpowiednich plikach. Inne aspekty konfiguracyjne opisane są na
http://eko.one.pl#openwrt .
Interfejsy
- eth0: 4 portowy przełącznik LAN
- wlan0: interfejs radiowy WiFi
WLAN
Po zainstalowaniu interfejs radiowy zostanie wykryty i skonfigurowany domyślnie. Żeby go włączyć wystarczy wydać polecenia
# uci set wireless.@wifi-device[0].disabled=0
# uci set wireless.@wifi-iface[0].ssid=moja_siec
# uci set wireless.@wifi-iface[0].encryption=psk2
# uci set wireless.@wifi-iface[0].key=super_tajne_haslo
# uci commit wireless
# wifi
Wszystkie działające tryby pracy radia opisano w
tym dokumencie.
Pełna konfiguracja radia:
# uci set wireless.radio0.country=PL
# uci set wireless.radio0.hwmode=11ng
# uci set wireless.radio0.htmode=HT20
# uci add_list wireless.radio0.ht_capab="SHORT-GI-40 DSSS_CCK-40 HT40+ HT40-"
# uci commit wireless
Jeżeli nie chcemy używać trybu IEEE802.11n to opcję
option hwmode 11ng zamieniamy na
option hwmode 11g.
Obsługa LED
Opis dostępny w
osobnym dokumencie.
Obsługa przycisków
Opis dostępny w
osobnym dokumencie.
Tryb failsafe
Najczęściej na forum wątki wyglądają następująco: "Zrobiłem coś w luci i teraz nie działa. Co robić". Więc po w ogóle grzebiecie w LuCI?Wyjściem jest uruchomienie rutera w
trybie failsafe. Dla tego linksysa wskaźnikiem trybu jest szybkomigająca dioda WPS.
External root
Istnieje możliwość "zwiększenia" ilości pamięci flash przez przeniesienie części systemu na zewnętrzny nośnik, np podłączony pendrive. Opisane jest to w
osobnym dokumencie.
RS232C
pin sygnał
1 3.3V
2 TX
3 RX
4 NC
5 GND
Ustawienia interfejsu to 115200 8N1. Ruter posiada w środku złącze szeregowe (odpowiednie piny są już wlutowane), ale niezależnie od tego można także bez rozbierania rutera dostać się do konsoli - odpowiednie wyprowadzenia interfejsu szeregowego dostępne są w gniazdach RJ45 Internet (WAN) oraz Ethernet 4 (LAN4).
Przed własnoręczną kompilacją i zabawą należy posiadać odpowiedni kabel szeregowy (z konwerterem napięć!), gdyż może to być jedyna możliwość odratowania rutera po wgraniu złego obrazu.
Kompilacja
Należy użyć i skompilować aktualną wersję OpenWrt Kamikaze pobraną z svn. Jako platformę należy wybrać
Atheros AR71xx/AT7240/AR913x, target profile -
Linksys WRT160NL, target image -
squashfs. W
Kernel modules -> Wireless drivers powinna zaznaczyć się opcja
kmod-ath9k. Z kolei w
Kernel modules -> USB Support należy zaznaczyć
kmod-usb-core oraz
kmod-usb2. Należy upewnić się, że w
Network jest zaznaczony pakiet
wpad-mini. Przydatne będzie także zaznaczenia pakietów
crda oraz niezbędnego
iw. Inne pakiety można zaznaczyć wg potrzeb.
Firmware należy skompilować w standardowy sposób (make). Plik wynikowy dla WRT160NL to
openwrt-ar71xx-wrt160nl-squashfs-factory.bin oraz
openwrt-ar71xx-wrt160nl-squashfs-sysupgrade.bin.
EEPROM checksum error
Podczas zabawy z ruterem i flashowaniem zdarza się awaria m.im. partycji
art zawierającej ustawienia wireless Atherosa. Może to spowodować problem ze startem radia
ath9k ath9k: failed to initialize device
ath9k: probe of ath9k failed with error -22
Rozwiązanie problemu znajduje się na
forum OpenWrt wymaga jednakże dostępu do innego działającego urządzenia. W moim obrazie domyślnie nałożony jest w/w patch.