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

Alternatywny firmware do programatora USBasp

Po co alternatywny firmware do programatora usbasp? Otóż posiada on jedną, użyteczną przewagę nad oryginalnym…

2 dni temu

Linux na routerze z obsługą kamerki internetowej

Dziś lekki, wakacyjny wpis. Od dawna, na używanych przeze mnie routerach, instalowałem linuksa. Było o…

2 miesiące temu

Słuchanie stacji radiowych DAB+ w Linuksie

Radio nieodłącznie kojarzy się z nieśmiertelnym FM lub transmisją intermetową. Standard DAB+ wydaje się być…

6 miesięcy temu

Tani odpowiednik baterii 9V 6F22

Poniżej opiszę odpowiednik drogiej (w stosunku do pojemności) baterii 9V o oznaczeniu 6F22. Ze względu…

6 miesięcy temu

Drogowa / budowlana lampa ostrzegawcza – budowa i działanie

Widząc migającą na pomarańczowo lampę ostrzegawczą, zastanawiałem się (ciekawe czy tylko ja) jak jest zbudowana,…

6 miesięcy temu

ConsolePi – genialny serwer szeregowej konsoli

W tym wpisie przedstawię bardzo ciekawe narzędzie na RaspberryPi, przydatne każdemu administratorowi urządzeń sieciowych. W…

7 miesięcy temu