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
  • 2010-11-04
- 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

  • 2010-11-01
- nowy obraz na podstawie oficjalnej wersji stabilnej Backfire 10.03.1-rc3

  • 2010-10-17
- nowy obraz na podstawie oficjalnej wersji stabilnej Backfire 10.03.1-rc3

  • 2010-10-13
- 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.

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:


    ar7100>

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


    ar7100 > go

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
  • eth1: port WAN/Internet
  • 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.