Router TL-MR3420, modem MF823 LTE i firmware LEDE
Jakiś czas temu pisałem na stronie o wykorzystaniu internetu mobilnego w domu – Internet mobilny w domu. Bazowym sprzętem był dość stary router tp-link mr3420 v1 i pare modemów. Pracował on na dośc starym (2014) oprogramowaniu Gargoyle w wersji 1.6.2 ze strony eko.one.pl. Router, mimo wieku jest nadal całkiem funkcjonalnym pudełkiem. Pamięć flash o pojemności tylko 4MB spowodowała praktycznie brak nowego firmware’u z graficznym interfejsem do tego sprzętu. Ale nadal są wydawane obrazy, gdzie konfigurację przeprowadza się w konsoli, w trybie tekstowym.
Linux na routerze, czyli LEDE
Po szale, jaki spowodował rewolucyjny OpenWRT, nastał czas na LEDE. Jest to nowy projekt, tworzony przez część deweloperów z openwrt. Strona projektu to lede-project.org. Lista wspieranego sprzętu, na którym można zainstalować lede jest naprawdę ogromna. Projekt jest cały czas rozwijany, pojawiają się nowe wersje z nowszymi kernelami itd. Firmware ten jest również modyfikowany przez Cezarego ze strony eko.one.pl i przez to jeszcze bardziej użyteczny. Prócz możliwości pobrania obrazu, można tam również znaleźć dużą bazę opisów typu how-to jak i wsparcie na forum. W routerach z większym flashem można pobrać nowe LEDE ze środowiskiem graficznym LuCI. Do wspomnianego wyżej TP-Linka MR3420 pozostaje okrojona wersja bez gui, chociaż nie do końca, o czym napiszę na końcu.
Poniższy opis będzie dotyczył routera TP-LInk MR3420 w wersji v1, modemu ZTE MF823 i oprogramowania LEDE reboot 17.01 r3371. Pokażę jak (mam nadzieję) fajnie działa linux na takim małym pudełku, o czym można się przekonać konfigurując wszystko z poziomu konsoli. Na początek należy pobrać stąd obraz do swojego routera http://dl.eko.one.pl/lede/17.01-SNAPSHOT/targets/ar71xx/generic/. Plik z nazwą factory na końcu służy do flashowania routera z fabrycznym oprogramowaniem, a ten z sysupgrade, do wgrania w pudełku, w którym już jest jakiś linux. U mnie był to Gargoyle 1.6.2, więc z poziomu Linuksa Mint na komputerze wysłałem obraz (lede-17.01-snapshot-r3371-79cd141-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade.bin) do katalogu tmp routera za pomocą scp:
W Windows robi się to za pomocą WinSCP z GUI. Druga możliwość, to pobranie do tmp obrazu z poziomu routera (ssh), za pomocą wget.
Upgrade sprowadza się do wydania polecenia:
sysupgrade -v /tmp/nazwa_pliku_obrazu.bin
Zacznie się instalacja softu z wypisaniem kolejnych etapów, na koniec nastąpi reboot routera.
Z poziomu linuksa wystarczy wklepać:
ssh [email protected]
W windowsach można użyć Putty by dostać się do konsoli:
Jak widać flash nie jest pełny, mamy (aż!) 216kB wolnego miejsca na dodatkowe pakiety :).
Skonfigurowanie LEDE do obsługi modemu MF823
W starym Gargoyle 1.6.2 od Cezarego, modem MF823 działał po wyklikaniu w GUI połączenia kablowego DHCP i wybraniu interfejsu WAN usb0. Tak było, bo obraz został do tego przygotowany, tj. uzupełniony o odpowiednie pakiety. Wgrana wersja LEDE, z uwagi na mały flash, została okrojona do minimum i trochę trzeba powalczyć, zdobywając doświadczenie. Zobaczmy więc, czy mamy dostępny interfejs usb0:
ifconfig -a
No i są jakieś br-lan, eth0, eth1, lo, wlan0, ale usb0 nie ma, lipa. To zobaczmy jak router widzi modem:
cat /sys/kernel/debug/usb/devices
Patrząc na 6,7 i 9 linijkę od dołu, widzimy że coś tam zostało wykryte, ale Driver=(none). Chwila poszukiwań na forum eko.one.pl i mam info, żeby doinstalować paczkę kmod-usb-net-rndis. Firmware pochodzi z eko.one.pl, więc jest też dodane repo tej strony, wystarczy więc opkg update i opkg install kmod-usb-net-rndis. No jednak nie, bo na routerze nie ma netu, jak i w całym domu ;). Na szczęście tetering w telefonie ratuje sytuację. Paczki są do pobrania tu: http://dl.eko.one.pl/lede/17.01-SNAPSHOT/targets/ar71xx/generic/kmods-4.4.61/. Okazuje się, że do instalacji wyżej wspomnianej są też potrzebne inne pakiety, w sumie trzeba pobrać:
- kmod-mii_4.4.61-1_mips_24kc.ipk
- kmod-usb-net_4.4.61-1_mips_24kc.ipk
- kmod-usb-net-cdc-ether_4.4.61-1_mips_24kc.ipk
- kmod-usb-net-rndis_4.4.61-1_mips_24kc.ipk
Pobrałem to sobie na komputer i wysłałem za pomocą scp do routera:
Teraz z konsoli routera trzeba to zainstalować, czyli opkg install + ścieżki do pakietów, używanie tabulatora wskazane, chyba że ktoś uwielbia przeklepywać takie nazwy ;):
No to teraz reboot i zobaczmy jak to wygląda w /sys/kernel/debug/usb/devices:
No i sterownik cdc_ether już jest :). To teraz:
ifconfig -a
Zgodnie z założeniem (bo to linux), mamy interfejs usb0, który zaraz skonfigurujemy jako nasz wan. Otwieramy sobie plik /etc/config/network:
vim /etc/config/network
Najeżdzamy w sekcji wan kursorem na linijki do zmiany, wciskamy i (tryb insert), zmieniamy co trzeba (jak niżej):
Wciskamy Escape (wyjście z trybu insert), wpisujemy :wq (zapisanie zmian i wyjście) i wciskamy Enter. A tak straszyli tym vim’em… a to proste jak nano ;). Teraz restart routera lub przeładowanie network. No i na kompie podłączonym kablem ping na o2.pl nie działa… ale pingowanie choćby 8.8.8.8 jest ok. Walczymy dalej :).
ZTE MF823 i DNSy
Jesteśmy na etapie prawie działającego netu po kablu. Dodajmy więc dnsy, tak by dhcp przydzielał je podpiętym komputerom:
uci add_list dhcp.lan.dhcp_option="6,8.8.8.8,8.8.4.4" uci commit dhcp /etc/init.d/dnsmasq restart
I super, internet na podpiętym komputerze działa, ale co by się nie spingowało z konsoli routera, odpowiada tylko modem, czyli 192.168.0.1. Tutaj pomógł mi Cezary na forum, więc znowu edycja pliku /etc/config/network by wyglądał tak:
Teraz wszystko działa jak należy.
Konfiguracja sieci WiFi w LEDE
Sieć WiFi jest domyślnie wyłączona, ze względów bezpieczeństwa. Kilka magicznych komend:
uci set wireless.@wifi-device[0].disabled=0 uci set wireless.@wifi-iface[0].ssid=jakas_nazwa_sieci uci set wireless.@wifi-iface[0].encryption=psk2 uci set wireless.@wifi-iface[0].key='trudny_klucz' uci commit wireless wifi
i można podpinać się bezprzewodowo do routera.
Podsumowanie
Powyższy opis pokazuje, jaka moc drzemie w firmware, które zajmuje mniej niż 4MB flash. Idąc dalej, konfiguracja to nic innego jak modyfikacja plików, w których są zapisane ustawienia. Wszystko jest przejrzyste i tworzy spójną, logiczną całość. Dla wielu, mniej obeznanych z linuksem użytkowników, opisany sposób może być jednak zbyt skomplikowany i czasochłonny. Jeśli komuś zależy na świeżym firmware w tak leciwym routerze jak opisywany tu MR3420 v1, to polecam obraz MiFi od Cezarego ze strony eko.one.pl. Tam po flashowaniu, modem MF823 zadziałał od razu, wystarczyło tylko z graficznego środowiska, zmienić ssid sieci i klucz.
No właśnie tak miałem “No jednak nie, bo na routerze nie ma netu, jak i w całym domu” po w graniu LuCI do TL-MR3220, zawiodłem się właśnie na domyślnym braku obsługi modemów LTE, i to nawet w wersji HiLink i szybko wróciłem do fabrycznego który chociaż obsługuje 3G, jednak trzeba pamiętać o przywracaniu firmware z poziomu GUI LuCI tp-linka ale bez bootloadera bo można go bezpowrotnie uceglić.
Fabryczne oprogramowanie nie działa prawidłowo z modemem LTE, może jest to wina brakującego prądu na złączu USB routera, a może w oprogramowaniu, niedowiedziałem się i odpuściłem.
Mimo iż jestem fanem linuxa to zdecydowanie jego możliwości w routerze nie zostaną w pełni wykorzystane bo przecież to ma działać tylko do rozsiewania internetu wiec nie ma potrzeby aż takich kombinacji.
Jednak twój opis jest bardzo przejrzysty i szacunek za poświęcenie czasu i dzielenie się zdobytą wiedzą na którą trzeba poświęcić sporo czasu.
A ja mam problem, bo po zainstalowaniu pakietów
A ja mam problem, bo po zainstalowaniu tych pakietow (bezposrednio z routera – mozna go ustawic jako klient access pointa :-)) mam nadal driver=(none). Jakies sugestie?
A jaki modem?
Taki, jak z Twojego artykułu – MF823
No to dziwne, bo według tego opisu rodziłem tak samo z BananaPi i w jednym i drugim przypadku działało bez zarzutu. Paczki instalują się bez błędu?
Czesc Wojtku,
Mam TP MR3420 v2.0 i e3372h-320. Wgralem na router tego LEDE’i frimware’a co Ty, dodalem z sukcesem brakujace paczki. Jednak po tym w ifconfig -a nie pojawil mi sie usb0.
Mecze ten temat juz od paru godzin z roznymi firmware’ami i bez sukcesu. Wiesz moze co mozna by jeszcze zrobic?
Pozdrawiam
Wojtek
Pewnie brakuje jeszcze jakiejś paczki lub drivera, popytaj na forum eko.one.pl