Zmodyfikowany firmware OpenWrt
Ostatnia zmiana: 2022-04-23 12:55

Moje obrazy budowane są z bieżącej gałęzi wydania stabilnego OpenWrt - 19.07-SNAPSHOT, zawierają modyfikacje które uważam za niezbędne lub wartościowe i powinny być domyślnie włączone do budowanych obrazów a z różnych powodów nie zostały dołączone do oficjalnych wydań. Moje obrazy różnią się od oryginalnych wydawanych przez zespół OpenWrt innym doborem pakietów i opcjami kompilacji, choć są w pełni kompatybilne jeżeli chodzi o ustawienia i pakiety z programami.

Parametry domyślne dla wszystkich obrazów:

  • adres IP: 192.168.1.1 (oprócz urządzeń typu NAS dla architektury kirkwood - tam jest klient dhcp i należy podłączyć je do sieci lokalnej żeby dostały adres IP)
  • użytkownik: root
  • hasło: puste (do ustawienia poleceniem passwd)
  • Wi-Fi domyślnie wyłączone
czyli tak samo jak w standardowym OpenWrt. Dostęp do systemu możliwy jest przez ssh (brak jest telnetu jak w dawnych wydaniach OpenWrt).

W nazwie pliku jest oznaczenie modelu routera do którego jest on przeznaczony.


Obrazy z factory w nazwie służy do instalacji z oryginalnego oprogramowania.
Obrazy z sysupgrade w nazwie służy do aktualizacji z poziomu OpenWrt, LEDE lub Gargoyle.
Obrazy -us służą do aktualizacji routerów sprzedawanych na terenie USA.
Obrazy -eu służą do aktualizacji routerów sprzedawanych na terenie Unii Europejskiej (czyli np. zakupionych w dystrybucji w Polsce).
Obrazy -il- przeznaczone są dla routerów sprzedawanych w Izraelu.

Inne obrazy które mają w nazwie -initramfs-, tftp, kernel itp. przeznaczone są dla niektórych routerów do przejścia z oryginalnego oprogramowania producenta na OpenWrt i nie stosuje się ich później do aktualizacji działającego OpenWrt.

Historia zmian

  • data wydania - numer/lista zmian w OpenWrt
    - lista moich zmian


    - dodanie obrazów ar71xx dla TP-LINK WDR3600 oraz WDR4300 (co umożliwia zastosowanie ich dla urządzeń ze zwiększoną ilością pamięci flash)


    - włączenie triggera led disk-activity dla architektury ipq806x


    - dodanie pakietu kmod-r8152 do obsługi kart sieciowych USB bazujących na chipach Realtek RTL8152/RTL8153/RTL8254/RTL8156


    - dodanie obsługi 32bitowego transferu w NCM 1, 2 - umożliwia to obsługę niektórych modemów Huawei E57xx


    - dodanie wsparcia dla Check Point L-50 (kirkwood): 1, 2, 3


    - wymiana pakietu samba36/samba4 na ksmbd w obrazach LuCI


    - dodanie obrazów dla architektury kirkwood


    - włączenie obsługi kart OEM w sterowniku ath9k dla architektury x86/64
    - dodanie sterownika dla kart Broadcom BNX2X


    - zdjęcie flagi read-only z partycji reserved dla Netgeara R6220


    - dodanie do repozytorium luci-app-diskman
    - dodanie wsparcia dla /dev/mem do obrazów x86/64 (możliwość aktualizacji biosu PCEngines APU z poziomu OpenWrt)


    - modyfikacja wyświetlania temperatur dla platformy mvebu
    - wydzielenie obrazów bez usb dla ipq40x/generic


    - dodanie brakujących pakietów dla ar71xx/tiny, ath79/tiny
    - dodana poprawka dla zewnętrznego wzmacniacza dla DIR-810L (ramips/mt7620)


    - dodanie wyświetlania temperatur przez sysinfo dla architektur ipq40xx, mvebu
    - uzupełnienie brakujących obrazów dla architektur ar71xx/tiny oraz ath79/tiny
    - włączona obsługa swap dla ar71xx/tiny, ath79/tiny oraz ramips/rt305x
    - aktualizacja pakietu n2n


    - pierwsza wersja obrazów oparta o OpenWrt 19.07-SNAPSHOT
    - dodana poprawka do obsługi portu gigabit w D-Link DWR-118 A2 (ramips/mt7620)
    - dodana poprawka dla chipu MT7610e
    - dodana poprawka do obsługi NAND dla Netgear R6220 (ramips/mt7621)
    - dodana poprawka dla domyślnego regionu EU sterownika mwlwifi
    Zmiany przeniesione z wydania OpenWrt 18.06:
    - dodatkowe obrazy dla TP-LINK TL-MR3420 v3, TP-LINK TL-MR6400 v2, Nexx WT3020 16M, Proroute H685, Proroute H820, Svive Cirrus Router
    - obsługa przycisku reset i zasilania USB dla Mikrotik RB95x (ar71xx/mikrotik)
    - obsługa historii poleceń ash
    - zmiany w obsłudze trybu pracy modemów w comgt

Architektury

Dostępny jest klucz publiczny którym podpisane są repozytoria. Jeżeli ktoś chce używać repozytorium eko.one.pl, a nie używa moich obrazów:


    # wget http://dl.eko.one.pl/openwrt-19.07/eko1.pub -O /tmp/eko1.pub
    # opkg-key add /tmp/eko1.pub

Aktualnie budowane są następujące wybrane architektury: ar71xx, ath79, ipq40xx, ipq806x, kirkwood, mvebu, ramips, x86.
Linki do repozytorium:


    src/gz eko1_base http://dl.eko.one.pl/openwrt-19.07/packages/architektura/base
    src/gz eko1_packages http://dl.eko.one.pl/openwrt-19.07/packages/architektura/packages

Słowo architektura należy zamienić na posiadaną architekturę, np. mipsel_24kc itp.

Zawartość obrazów

Wszystkie obrazy i odmiany budowane są z tego samego źródła. Jako podstawę wykorzystano branch OpenWrt 19.07-SNAPSHOT z niektórymi poprawkami stworzonymi przeze mnie, udostępnionymi w internecie lub zaimportowanymi z gałęzi rozwojowej.

Główna charakterystyka obrazów (dla wszystkich urządzeń):

  • lista pakietów dla danego urządzenia zgodna z domyślną listą zawartą w OpenWrt
  • brak środowiska graficznego (GUI), czysta konsola
  • obsługa wifi
  • ustawiona strefa czasowa Europe/Warsaw
  • odblokowana możliwość użycia kanałów 12/13 (o ile sterownik to wspiera) - domyślnie włączone opcje REGD/DFS, region ustawiony na PL
  • dodany skrypt wyświetlający stan systemu po zalogowaniu się przez ssh
  • kolorowanie zgłoszenia shella w konsoli
  • zapis historii poleceń konsoli w bieżącej sesji
  • dodany program ftpput
  • dodany skrypt do obsługi statystyk (domyślnie wyłączony w cronie)
Dla urządzeń ze złączem USB i pamięcią flash 4MB obrazy zawierają dodatkowo:

  • obsługę USB
  • obsługę usb_storage
  • obsługę systemów plików f2fs
  • pakiet block-mount
  • pakiety mkf2fs i f2fsck (tworzenie i naprawa systemów plików f2fs)
  • brak pakietów związanych z obsługą IPv6
  • brak pakietów związanych z ppp/pppoe
Dla urządzeń ze złączem USB i pamięcią flash 8MB (lub więcej) obrazy zawierają dodatkowo:

  • obsługę USB
  • obsługę usb_storage/usb-storage-uas
  • obsługę systemów plików vfat/ext2/ext3/ext4
  • pakiet block-mount
  • pakiet e2fsprogs (tworzenie i naprawa systemów plików ext2/3/4)
Konfiguracja przycisków obejmuje (o ile router posiada przycisk o określonej nazwie wg OpenWrt):
- rfkill: wyłączenie/włączenie interfejsu radiowego
- reset: naciśnięcie do 1s powoduje restart urządzenia, powyżej 5s - przywrócenie ustawień domyślnych
- power: wyłączenie urządzenia

Zmiany

- Netgear WNDR4300: wersja z powiększonym obszarem rootfs
- obrazy dla TP-LINK WDR4300 IL nie są budowane

Własna kompilacja

W katalogu z obrazami można znaleźć pliki config.buildinfo.* które zawierają opcje z których zostały zbudowane dane obrazy. Aby uzyskać pełen plik konfiguracyjny, należy w katalogu ze źródłami OpenWrt wykonać np.:


    # wget http://dl.eko.one.pl/openwrt-19.07/ścieżka do pliku config.buildinfo.usb
    # mv config.buildinfo.usb .config
    # make defconfig

Zmiany i dodatkowe poprawki wykorzystane w tych obrazach: http://dl.eko.one.pl/openwrt-19.07/patches/

Extroot

W wersji dla urządzeń z USB znajduje się już pakiet block-mount odpowiadający za możliwość zrobienia extroota. Konfiguracja extroot opisana jest w w/w dokumencie.

Dalsza konfiguracja

Konfigurację można wykonać po zalogowaniu się przez ssh. W pierwszej kolejności po zalogowaniu należy ustawić hasło:


    # passwd

Interfejs Wi-Fi po instalacji jest domyślnie wyłączony. Włączenie Wi-Fi:


    # 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='superTajnehaSlo!14'
    # uci commit wireless
    # wifi

Inne pakiety można zainstalować z repozytorium, najczęściej dostępne są także odpowiednie konfiguratory graficzne do LuCI dla danego pakietu. Poradniki można znaleźć na stronie głównej. Zobacz także poradnik "Podstawowa konfiguracja OpenWrt".

Instalacja LuCI (interfejsu graficznego - GUI)


    # opkg update
    # opkg install luci
    # /etc/init.d/uhttpd enable
    # /etc/init.d/uhttpd start

Choć, jeżeli jest dostępne, lepiej od razu zainstalować wersję firmware z LuCI.

LuCI

Dostępna jest wersja OpenWrt z wbudowanym interfejsem graficznym o nazwie LuCI. Obrazy te mają też wsparcie dla modemów USB.

Problemy

W razie problemów z działaniem obrazów po własnych modyfikacjach/konfiguracjach można posłużyć się trybem failsafe.