Komputer i internet

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 root@192.168.1.1

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.

Wojtek

Zobacz komentarze

  • 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 tych pakietow (bezposrednio z routera - mozna go ustawic jako klient access pointa :-)) mam nadal driver=(none). Jakies sugestie?

        • 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

Ostatnie posty

Nieudana naprawa i udany przeszczep – Boombox Philips

Mamy w domu dość wiekowy (2012) Boombox Philips, model AZ385/12 używany przez dzieci głównie jako…

16 godzin temu

Tani moduł IoT z kamerką ESP32 CAM – pierwsze uruchomienie

Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…

7 miesięcy temu

Aktualizacja oprogramowania w stacji lutowniczej AiXun T3A

Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…

8 miesięcy temu

Programator USB AVR ISP z Arduino Nano

Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…

8 miesięcy temu

Tester elementów elektronicznych na atmega – aktualizacja firmware’u

W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…

9 miesięcy temu

Wzmacniacz słuchawkowy Lovely Cube – popularny klon Lehmanna

Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…

9 miesięcy temu