Zmodyfikowany firmware OpenWrt
Ostatnia zmiana: 2026-04-01 17:51

Moje obrazy budowane są z bieżącej gałęzi wydania stabilnego OpenWrt 24.10, 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 włą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. Poza nielicznymi zmianami w systemie (np. dodającymi moje własne repozytoria), obrazy standardowo zawierają moje następujące pakiety:


  • backupandrestore-opkg: pakiet służący do archiwizowania listy zainstalowanych pakietów i ich ponownej instalacji
  • ekooneplconfigs: pliki i ustawienia specyficzne dla moich obrazów (np. prompt, historia poleceń, strefa czasowa)
  • sysinfo: wyświetlanie informacji o systemie po zalogowaniu się użytkownika przez ssh
Obrazy zawierają także inne pakiety, w zależności od modelu urządzenia i jego przeznaczenia.

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).

Moduły kernela muszą być instalowane z tego samego źródła skąd pochodzą obrazy, czyli wymienionego poniżej repozytorium. Z innych źródeł mogą nie działać. Muszą być także w takiej samej wersji co zainstalowany kernel.

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 z sysupgrade-v7 nazwie przeznaczone są dla routerów firmy MikroTik które mają bootloader z wersji 7.x.
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.
Dla niektórych modeli routerów nie będzie można wykonać aktualizacji przez sysupgrade z powodu zmiany podziału flash; w takich przypadkach trzeba będzie wykonać instalację obrazu factory wykorzystując metodę dostępną dla danego modelu (np. przez tftp czy tryb awaryjny bootloadera). W takim przypadku nie będzie można też odtworzyć backupu z poprzedniej wersji.
Dla niektórych modeli routerów nie będzie można wykonać aktualizacji przez sysupgrade z zachowaniem konfiguracji z powodu przejścia na inny sposób konfiguracji switcha; w takich przypadkach trzeba będzie aktualizację z opcją "-n" (bez zachowania konfiguracji) lib/i z opcją "-F" (wymuszenie aktualizacji). W takim przypadku nie będzie można też odtworzyć backupu z poprzedniej wersji.

Narzędzie owut działa zaś z serwerem aktualizacji sysupgrade.eko.one.pl, więcej informacji o tym projekcie w tym linku.
Adres serwera aktualizacji: https://sysupgrade.eko.one.pl

Link do wyszukiwarki obrazów: https://dl.eko.one.pl/firmware/
Link do dyskusji na forum o tym wydaniu: https://eko.one.pl/forum/viewtopic.php?pid=306640

Historia zmian

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

    

    - ustawienie https://sysupgrade.eko.one.pl jako domyślnego serwera ASU
    

    - dodanie obsługi Kebidumei AX3000-U22
    - poprawka w konfiguracji dla pptp
    - aktualizacja firmware-utils w celu natywnego wspracia RouterBOOTv7 dla MikroTików
    - dodanie do repozytorium pakietów xmm-modem oraz luci-proto-xmm do obsługi modemów Fibocom L850/L860/FM350
    - dodanie kmod-usb-xhci-mtk do obrazów Cudy WR3000P v1
    

    - dodanie Cudy WR3000P v1
    - eksperymentalne wsparcie dla Cudy C200P
    - dodanie pakietu APController do repozytorium
    

    - aktualizacja obrazów dla mediateka/filogic


    - nowy pakiet modemdata - jest opcjonalną zależnością do pakietu easyconfig oraz wymaganą zależnością 3ginfo-text/3ginfo
    

    - dodanie poprawki dla x86/64


    - dodanie wsparcia dla RM520N-GL wariant 0x5201 (PCI)
    - uzupełnienie skryptów dla mbim
    - dodanie pakietu usteer-ng do repozytorium


    - uzupełnienie wsparcia dla D-Link Aquila M30/CP
    - włączenie kompresji LZO dla pakietu openvpn-mbedtls
    - zmiana zależności adb na mbedtls
    - zwiększenie timeoutu przy odczycie SIM dla QMI


    - zmiana sposobu odczytu modemów ncm
    

    - uzupełnienie wsparcia dla Zyxel EX5601/T-56: zwiększenie szybkości odczytu pamięci flash, sterowanie diodami portów 2.5G, sterowanie jasnością LED 2.5G
    - wsparcie dla Mikrotik Chateau LTE12 (1, 2, 3, 4 oraz częściowo DTS od MiG25) - możliwe że obraz zadziała także na innych routerach Mikrotika z serii Chateau opartych o platformę ipq40xx

    (build zawiera standardowo poprawkę do właściwego uruchamiania ASUS RT-AX59U / ASUS TUF-AX4200 / ASUS TUF-AX6000 oraz wsparcie dla Mercusys MR1800X)


    - aktualizacja i przeniesienie do nonshared pakietu ekooneplconfigs
    - usunięcie pakietów: ekoonepl-luci-mbedtls, ekooneplmonitoring-luci-mbedtls, ekooneplnas-luci-mbedtls, ekooneplusb-luci-mbedtls, zostały zastąpione przez odpowiednio: ekoonepl-luci, ekooneplmonitoring-luci, ekooneplnas-luci, ekooneplusb-luci
    - ekoonepl-luci jest zbędny i może być bezpiecznie odinstalowany. Należy upewnić się w że obrazie zostały pakiety luci-app-openvpn oraz openvpn-mbedtls
    - nowy pakiet repo-4iceg dodający repozytorium https://github.com/4IceG/Modem-extras/tree/main/myrepo


    - zaktualizowana obsługa switcha AN8855: mediatek: add Airoha AN8855 gigabit switch driver
    - wsparcie dla Mercusys AC12G v1 (+ usprawnienia dla rt2x00)
    - obsługa USB 3.0 w NanoPC T6
    

    - ponowne dodanie skryptu do zmiany zmiennych środowiskowych bootloadera dla Xiaomi


    - dodanie pakietu kmod-nvme do obrazów BananaPi BPI-R4 oraz BPI-R3 mini
    - zaktualizowana obsługa switcha AN8855: mediatek: add Airoha AN8855 gigabit switch driver
    - uzupełniona obsługa pamięci Winbond
    

    - pierwsza wersja obrazów oparta o OpenWrt 24.10-SNAPSHOT
    - przeniesione zmiany dodatkowe z wydania OpenWrt 23.05-SNAPSHOT (wsparcie dla niektórych modeli z mod 16MB flash)
    - obsługa pamięci Foresee: generic: mtd: add Foresee F35SQA001G/F35SQA002G support
    - obsługa switcha AN8855: mediatek: add Airoha AN8855 gigabit switch driver
    - zmiana zmiennych środowiskowych bootloadera dla Xiaomi

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 https://dl.eko.one.pl/openwrt-24.10/eko1.pub -O /tmp/eko1.pub
    # opkg-key add /tmp/eko1.pub

Aktualnie budowane są następujące wybrane architektury (w nawiasie podano sposób obsługi switcha):

  • ramips (MT7620 - swconfig, MT7621 - DSA, MT76x8 - swconfig)
Linki do repozytorium:


    src/gz eko1_base https://dl.eko.one.pl/openwrt-24.10/packages/architektura/base
    src/gz eko1_luci https://dl.eko.one.pl/openwrt-24.10/packages/architektura/luci
    src/gz eko1_packages https://dl.eko.one.pl/openwrt-24.10/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 24.10-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 obrazy zawierają dodatkowo:

  • obsługę USB
  • obsługę usb_storage/usb-storage-uas
  • pakiet block-mount
  • obsługę systemów plików f2fs
  • pakiety mkf2fs i f2fsck (tworzenie i naprawa systemów plików f2fs)
  • obsługę systemów plików vfat/ext2/ext3/ext4
  • 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

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 https://dl.eko.one.pl/openwrt-24.10/ścieżka do pliku config.buildinfo.usb
    # mv config.buildinfo.usb .config
    # make defconfig

Zmiany i dodatkowe poprawki wykorzystane w tych obrazach: https://dl.eko.one.pl/openwrt-24.10/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!42'
    # 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.