Zmodyfikowany firmware OpenWrt
Ostatnia zmiana: 2020-05-03 16:16
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 -
18.06-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 18.06-SNAPSHOT od wydania 18.06.x? Źródła OpenWrt podzielone są na tzw. branche, czyli różne gałęzie rozwojowe. Jedna z nich o nazwie openwrt-18.06 zawiera źródła wydania stabilnego linii 18.06 i ma ona określenie wersji właśnie jako 18.06-SNAPSHOT. Wydanie 18.06.x to nic innego jak źródła wersji stabilnej pobrane określonego dnia z gałęzi openwrt-18.06 i oznaczone jako 18.06.x. Gałąź 18.06-SNAPSHOT zawiera się nowsze aktualizacje i poprawki niż wydanie 18.06.x.
Parametry domyślne dla wszystkich obrazów:
- 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.
Niektóre obrazy oprócz nazwy modelu routera mają również oznaczenie 8M lub 16M. Przeznaczone są one dla tych modeli, które mają większą pamięć i nie mogą być używane na urządzeniach z normalną/fabryczną ilością flash.
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.
Historia zmian
- data wydania - numer/lista zmian w OpenWrt
- lista moich zmian
- dodanie
poprawki do obsługi NAND dla Netgear R6220 (ramips/mt7621)
- naprawa działania programu do
statystyk w LuCI
- dodanie sterownika tg3 dla kart sieciowych Broadcom do obrazów x86/64
- dodanie sterowników mt76/ath19k/ath10k do obrazów Unielec U7621-06 (ramips/mt7621)
- dodanie pakietu sunwait do repozytorium
-
poprawka do wykrywania interfejsu modemu USB
- poprawna detekcja nowych Mikrotików
łatka - poprawna obsługa pincode dla niektórych modemów qmi
łatka - n2n w starej wersji
- zmiana nazwy pakietu n2n - zaktualizowany do najnowszej wersji
- usunięcie łatki
FECD z oscam - nie kompiluje się z aktualną wersją
- oscam kompilowany z łatką
FECD - naprawa działania przycisku reset dla Kingston MLWG2 (ramips/mt7620) (
link)
- dodanie
poprawki zapobiegającej spamowaniu w logu przez
hostapd - wszystkie obrazy mają wyłączoną opcję
compile the kernel with symbol table information (mniejszy rozmiar kernala w obrazach)
- uzupełnienie obsługi
Mikrotik RouterBOARD wAP R-2nD (ar71xx/mikrotik)
- z obrazów dla routerów z 4MB i USB (ar71xx/tiny, ramips/rt305x) usunięty został pakiet
kmod-fs-ext4 (obsługa systemów plików ext2/ext3/ext4). Do obrazów został dołączony pakiet
kmod-fs-f2fs (obsługa systemu plików f2fs),
mkf2fs (tworzenie systemu plików f2fs) oraz
f2fsck (naprawa systemu plików f2fs), co umożliwia utworzenie
extroota oraz jego naprawę. Pakiet
kmod-fs-ext4 można doinstalować po zrobieniu extroota.
- uzupełnienie obsługi LED w ath10k:
1,
2 - dodanie obsługi modemów
Wistron NeWeb d18q1 oraz
BroadMobi BM806U 3G/4G występujących w D-LINK DWR-921 C1/C3 (ramips/mt7620)
- dodanie obsługi
Mikrotik RouterBOARD wAP R-2nD (ar71xx/mikrotik)
- dodanie odczytu temperatury dla x86 w
sysinfo - dodanie ładowania modułów
bcm-lib-phy przy starcie systemu
- dodanie modułu
kmod-fs-exfat do repozytorium
- dodanie obrazów dla D-LINK DWR-118-A2 (ramips/mt7620) - nie działa port gigabitowy
- pierwsza wersja obrazów oparta o OpenWrt 18.06-SNAPSHOT
- dodana
łatka do obsługi nowych typów pamięci w Mikrotikach
Zmiany przeniesione z wydania
LEDE 17.01:
- dodatkowe obrazy dla TP-LINK TL-MR3420 v3, TP-LINK TL-MR6400 v2, Nexx WT3020 16M, Proroute H685, Proroute H820
- 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-18.06/eko1.pub -O /tmp/eko1.pub
# opkg-key add /tmp/eko1.pub
Aktualnie budowane są następujące architektury:
ar71xx,
ipq40xx,
ipq806x,
mvebu,
ramips,
x86.
Zawartość obrazów
Wszystkie obrazy i odmiany budowane są z tego samego źródła. Jako podstawę wykorzystałem
branch OpenWrt 18.06-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 (iw/wpad-mini + odpowiedni sterownik dla danej platformy)
- 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 i pamięcią flash 4MB obrazy zawierają dodatkowo:
- obsługę systemów plików f2fs
- 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_storage/usb-storage-uas
- 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
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.seed.* 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-18.06/ścieżka do pliku config.seed.usb
# mv config.seed.usb .config
# make defconfig
Zmiany i dodatkowe poprawki wykorzystane w tych obrazach:
http://dl.eko.one.pl/openwrt-18.06/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!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.