Zmodyfikowany firmware OpenWrt
Ostatnia zmiana: 2025-04-15 19:36
Zmieniając oprogramowanie w routerze w większości przypadków tracisz gwarancję producenta. Robisz to na własną odpowiedzialność, mając świadomość że może to spowodować uszkodzenie routera. Nie biorę żadnej odpowiedzialności za to, co się stanie z routerem po wgraniu tego oprogramowania.
Moje obrazy budowane są z bieżącej gałęzi wydania stabilnego
OpenWrt 23.05, 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.
Czym się różni 23.05-SNAPSHOT od wydania 23.05.x? Źródła OpenWrt podzielone są na tzw. branche, czyli różne gałęzie rozwojowe. Jedna z nich o nazwie openwrt-23.05 zawiera źródła wydania stabilnego linii 23.05 i ma ona określenie wersji właśnie jako 23.05-SNAPSHOT. Wydanie 23.05.x to nic innego jak źródła wersji stabilnej pobrane określonego dnia z gałęzi openwrt-23.05 i oznaczone jako 23.05.x. Gałąź 23.05-SNAPSHOT zawiera się nowsze aktualizacje i poprawki niż wydanie 23.05.x.
Wydanie 23.05 nie posiada standardowo iptables. To wydanie posiada inny firewall bazujący na nftables i nie można używać w nim bezpośrednio "starych" reguł iptables.
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)
- 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.
OpenWrt 23.05 nie powinno być używane na routerach z 32MB lub mniej pamięci RAM.
To wersja pozbawiona GUI (środowiska graficznego) - czysta konsola. Potrzebujesz GUI to używaj obrazów z
LuCI.
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.
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.
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?id=22774Historia zmian
- data wydania - numer/lista zmian w OpenWrt
- lista moich zmian
-
aktualizacja mbedtls -
aktualizacja ca-certificates - usunięcie obrazów dla Xiaomi AX3000T. Obrazy 24.10 mają bieżące aktualizacje dla tego modelu
- dodanie poprawek i obrazów dla
TP-Link Archer C5 v4, TP-Link EC220-G5 v2, Mercusys AC12G v1 (8M) - usunięcie pakietów wpad* dla obrazów zbt cpe102
- wyłączenie komunikatów "illegal attempt to update using time..." dla pluginu sensors w programie collectd (to jest obejście, nie rozwiązanie problemu)
- zastąpienie pakietów ze sterownikami Realteka R8125/R8126/R8168 odpowiednimi pakietami z wersji rozwojowej OpenWrt
- zmiana nazwy pakietu kmod-realtek-r8152 na kmod-r8152
- dodanie
wsparcia dla nowego typu pamięci stosownego m.in w Xiaomi AX3000T
- dodanie
wsparcia dla Quectel EM060K w sterowniku qmi
- downgrade pakietu uqmi
- dla obrazów MiFi dla routerów z 8MB wymiana pakietu openvpn-openssl na rzecz openvpn-mbedtls (mniejszy rozmiar wynikowego obrazu)
- dodanie obrazów dla
Cudy AP3000 Outdoor - dodanie obrazów dla TP-Link TL-WR1043ND v2 16M
- aktualizacja pakietu uqmi
- dodanie do repozytorium sterownika qmi_wwan_q oraz programu quectel-CM:
link - zmiana identyfikatora urządzenia dla Netgear R6220 ze
zmodyfikowaną mapą flash - zmiana w skrypcie /root/resize-root.sh dla x86/64, powinien teraz także uwzględniać nośniki nvme
- obrazy dla mediatek/filogic (poprawione wsparcie dla
Xiaomi AX3000T)
- aktualizacja sterowników Realtek RTL8125/8152/8168
- dodanie obrazów dla
Xiaomi AX3000T - obrazy dla Netgear R6220 ze
zmodyfikowaną mapą flash - import wsparcia dla
Arcadyan AW1000 - import poprawki dla
ksmbd oraz podbicie wersji ksmbd-tools (rozwiązuje problem z widocznością katalogów w udostępnionych zasobach SMB)
- import
poprawki dla ASUS TUF AX6000
- dodanie modułu kmod-realtek-r8126 (Realtek PCIe 5G RTL8126) dla x86/64
-
przyśpieszenie budowy obrazów - obrazy MiFi dla wybranych routerów w architekturze ipq807x/generic, mediatek/filogic oraz x86/64
- wybrane obrazy dla TP-Link TL-WR1043ND v1 - mod z 16MB flash
- wybrane obrazy dla TP-Link TL-WDR3600 v1 - mod z 16MB flash
- wybrane obrazy dla TP-Link TL-WDR4300 v1 - mod z 16MB flash
- wybrane obrazy dla Nexx WT3020 - mod z 16MB flash
- import skryptu
SMP affinity dla ipq807x/generic
- import wsparcia dla TP-Link TL-WR902AC-v4
- testowe wsparcie dla
Netgear LBR20 - dodanie modułu kmod-nvme do obrazów Banana Pi BPI-R3
- aktualizacja sterownika Realtek RTL8125
- dodanie modułu do obsługi GPIO na platformie AMD (pinctrl-amd)
- dodanie sterownika kmod-sky2 do obrazów x86/64
- dodatkowe pakiety w obrazach LuCI
- włączenie w cronie domyślnego logowania komunikatów jako
INFO - dodanie architektury mvebu/cortexa52 do budowanych obrazów
- włączenie obsługi
trybu AP dla kart MT7601U
- przywrócenie pakietu luci-app-advanced-reboot w obrazach LuCI dla wybranych modeli routerów
- import poprawki do
obsługi Wi-Fi w modelu Telco Electronics X1 - aktualizacja sterownika Realtek RTL8168
- import wsparcia dla
akceleratora kryptograficznego w MT7621
- przywrócenie obrazów dla Meraki MR33/MR74
- dodanie do obrazów x86/64 pakietów do wsparcia kart sieciowych na usb: kmod-usb-net-rtl8152, kmod-usb-net-asix-ax88179 oraz kmod-usb-net-asix
- dodanie
poprawki do poprawnego dekodowania plmn_description w pakiecie uqmi
- dodanie
skryptów backupandrestore umożliwiających zrobienie listy pakietów zainstalowanych przez użytkownika i ich późniejszą instalację po wykonaniu aktualizacji z zachowaniem konfiguracji
- usunięcie obrazów dla Meraki MR33/MR74
- aktualizacja
openvpn-easy-rsa w celu zapewnienia zgodności z libopenssl 3.0
- dodanie pakietu luci-app-advanced-reboot do niektórych modeli routerów
- poprawka umożliwiające
używane nośników nvme jako extroot
- aktualizacja sterownika Realtek RTL8152
- zmieniony sposób budowania obrazów z wykorzystaniem profili
- poprawka dodająca
watchdog dla ZBT WD323 - pierwsza wersja obrazów oparta o OpenWrt 23.05-SNAPSHOT
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-23.05/eko1.pub -O /tmp/eko1.pub
# opkg-key add /tmp/eko1.pub
Aktualnie budowane są następujące wybrane architektury:
ath79,
ipq40xx,
ipq806x,
ipq807x,
kirkwood,
mediatek,
mvebu,
ramips,
x86.
Linki do repozytorium:
src/gz eko1_base https://dl.eko.one.pl/openwrt-23.05/packages/architektura/base
src/gz eko1_luci https://dl.eko.one.pl/openwrt-23.05/packages/architektura/luci
src/gz eko1_packages https://dl.eko.one.pl/openwrt-23.05/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 23.05-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
- 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 skrypt do obsługi statystyk (domyślnie wyłączony w cronie)
Dla urządzeń ze złączem USB obrazy zawierają dodatkowo:
- obsługę usb_storage/usb-storage-uas
- 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-23.05/ś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-23.05/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:
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.