Zmodyfikowany firmware OpenWrt
Ostatnia zmiana: 2022-04-23 12:55
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 -
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.
Czym się różni 19.07-SNAPSHOT od wydania 19.07.x? Źródła OpenWrt podzielone są na tzw. branche, czyli różne gałęzie rozwojowe. Jedna z nich o nazwie openwrt-19.07 zawiera źródła wydania stabilnego linii 19.07 i ma ona określenie wersji właśnie jako 19.07-SNAPSHOT. Wydanie 19.07.x to nic innego jak źródła wersji stabilnej pobrane określonego dnia z gałęzi openwrt-19.07 i oznaczone jako 19.07.x. Gałąź 19.07-SNAPSHOT zawiera się nowsze aktualizacje i poprawki niż wydanie 19.07.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.
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.
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
- 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.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:
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.