Zmodyfikowany firmware OpenWrt
Ostatnia zmiana: 2023-04-22 21:15
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 -
21.02-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.
Czym się różni 21.02-SNAPSHOT od wydania 21.02.x? Źródła OpenWrt podzielone są na tzw. branche, czyli różne gałęzie rozwojowe. Jedna z nich o nazwie openwrt-21.02 zawiera źródła wydania stabilnego linii 21.02 i ma ona określenie wersji właśnie jako 21.02-SNAPSHOT. Wydanie 21.02.x to nic innego jak źródła wersji stabilnej pobrane określonego dnia z gałęzi openwrt-21.02 i oznaczone jako 21.02.x. Gałąź 21.02-SNAPSHOT zawiera się nowsze aktualizacje i poprawki niż wydanie 21.02.x.
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 21.02 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.
Historia zmian
- data wydania - numer/lista zmian w OpenWrt
- lista moich zmian
- aktualizacja sterowników Realtek RTL8125
- aktualizacja sterowników Realtek RTL8125/8152/8168
- podbita wersja ksmbd-tools
- dodanie obrazów 16M dla modeli TP-LINK TL-WDR3600 v1 oraz TP-LINK TL-WDR4300 v1
Obrazy "16M" przeznaczone są wyłącznie do routerów ze zwiększoną ilością pamięci flash do 16MB, nie należy ich instalować na normalnych routerach. Zastosowanie tego obrazu może skończyć się uszkodzeniem partycji ART i tym samym brakiem interfejsów Wi-Fi
- aktualizacja sterowników dla kart RTL8125
- synchronizacja uqmi z wersją rozwojową
- obrazy initramfs dla LuCI nie są budowane z powodu ich wielkości co powoduje problem z ich uruchomieniem w pamięci
- synchronizacja uqmi z wersją rozwojową
- przeportowano wsparcie dla
ZTE MF286 - przeportowano wsparcie dla
ZTE MF286A/MF286R - przeportowano wsparcie dla
ZTE MF286D - dodanie pakietu kmod-usb-ideachip2 do obrazów GL.iNet 6416
- aktualizacja uqmi do wersji dostępnej w wersji rozwojowej
- aktualizacja sterowników dla kart RTL8125
Zmiana sposobu konfiguracji pasma sieci bezprzewodowej w /etc/config/wireless
- dodanie poprawki sterownika MT76:
correct VHT MCS 8/9 tx power eeprom offset - poprawki związane z budowaniem obrazów:
1,
2,
3 - dodanie
poprawki dla Zyxel NGB6716
- aktualizacja sterowników dla kart RTL8168
Zmiana sposobu konfiguracji bridge w konfiguracji sieci w /etc/config/network
- aktualizacja sterowników dla kart RTL8125
- obrazy dla ipq40xx/mikrotik
- dodatkowy pakiet ze sterownikami dla kart RTL8125
- poprawne listy repozytorium dla ath79/mikrotik
- włączenie opcji DEVMEM dla x86/64
- różne usprawnienia budowanych obrazów
- obrazy dla architektury ath79
- obrazy dla architektury ramips
- pierwsza wersja obrazów oparta o OpenWrt 21.02-SNAPSHOT
Zmiany przeniesione z wydania
OpenWrt 19.07:
- dodatkowe obrazy dla Nexx WT3020 16M
- obsługa historii poleceń ash
- zmiany w obsłudze trybu pracy modemów w comgt
- dodanie obsługi 32bitowego transferu w NCM - umożliwia to obsługę niektórych modemów Huawei E57xx
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-21.02/eko1.pub -O /tmp/eko1.pub
# opkg-key add /tmp/eko1.pub
Aktualnie budowane są następujące wybrane architektury:
ath79,
ipq40xx,
ipq806x,
kirkwood,
mvebu,
ramips,
x86.
Linki do repozytorium:
src/gz eko1_base https://dl.eko.one.pl/openwrt-21.02/packages/architektura/base
src/gz eko1_packages https://dl.eko.one.pl/openwrt-21.02/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 21.02-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-21.02/ś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-21.02/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.