Cudy na kiju

Jakiś czas temu w Polsce operatorzy wyłączyli transmisję danych 3G, więc mój modem przestał działać. Przestał więc też działać router GSM na Linuksie zbudowany w oparciu o niego i Raspberry Pi. Na dokładkę chwilę wcześniej padł hub USB zasilający RPi lub zasilacz od niego. Znaczy: trzeba coś zmienić.

Zasadniczo opcje były dwie. Pierwsza, to kupno jakiegoś modemu z obsługą 4G, może używanego i reanimacja istniejącego setupu. No i coś z zasilaniem by trzeba pomyśleć, bo wersja, gdzie modem jest wpięty bezpośrednio w port USB RPi działa, ale nie mieści się w pudełku.

Inna sprawa, że dotychczasowy setup składał się z routera WiFi, switcha niezarządzalnego, i RPi robiącego za router. Kwestia zaszłości historycznych i ewolucji moich routerów, a właściwie systemów robiących przy okazji za router. Bo wiadomo, że miło jest mieć system z Linuksem, jednak w praktyce dawno przestałem z niego korzystać, a cały setup choć niekrytyczny i w zasadzie mało używany, ma wiele elementów ruchomych, które potrafiły sprawiać problemy w najmniej odpowiednich momentach. Oczywiście bohatersko rozwiązywałem wszystkie problemy i nawet była z tego jakaś frajda, ale… po co?

I tu pojawia się opcja druga, czyli kupno routera WiFi, do którego można zapakować kartę SIM. Takie rozwiązanie pozwala wyeliminować stary router WiFi oraz switch. Raspberry Pi staje się opcjonalne, tzn. mógłbym je podłączyć jeśli zechcę używać tego systemu, ale dostęp do internetu jest od niego niezależny. Dodatkowo mógłbym zasilać tylko router – switch i RPi nie są potrzebne. Niby tylko parę W[1], ale switch jest stary, z ciężkim, transformatorowym(?) zasilaczem.

Postanowiłem rozpoznać dostępne opcje i okazało się, że cenowo też nie wychodzi najgorzej, biorąc pod uwagę, że musiałbym kupić modem 4G i jakiś hub USB. W ten sposób, po zapłaceniu 126 zł na Allegro stałem się posiadaczem nowego, tytułowego routera Cudy LT400.

Opakowanie jest dość spore – zdjęcia paczki można zobaczyć w jednym z poprzednich wpisów o opakowaniach. Router wygląda dość typowo, posiada aż cztery, przymocowane na stałe, anteny.

Wady:

  • nietypowe zasilanie 12 V, 1 A
  • brak osobnego portu WAN – łącznie są 4 porty w tym jeden „podwójnego zastosowania”
  • brak możliwości instalacji OpenWrt
  • brak wsparcia dla WiFi 5GHz
  • anteny przymocowane na stałe
  • porty 10/100 Mbps

Jak widać wad całkiem sporo, ale… nie mają większego znaczenia. WiFi 2,4 GHz było poprzednio i wystarczało. Porty 100 Mbps niczego nie zmieniają – stary switch miał tak samo. Zresztą nie kopiuję pomiędzy komputerami większych ilości danych, a wąskim gardłem pozostaje dostęp do internetu przez sieć LTE.

Sprawdziłem, co jest w środku i okazuje się, że:

Linux version 4.4.140 (jenkins@release_server) (gcc version 5.4.0 (LEDE GCC 5.4.0 2.4.15) ) #0 Tue Dec 9 13:06:22 2025

HW: LT400 V2.1  |  FW: 2.4.23-20251209-211127

Czyli mimo braku wsparcia dla OpenWrt, właśnie na nim jest oparty firmware routera. Mam nadzieję, że będzie aktualizowany. A może i pojawi się wsparcie OpenWrt? Choć nie liczę zbytnio na to – zapewne będzie problem z niewolnym firmware modemu LTE.

Jeśli chodzi o zalety, sam sprzęt posiada całkiem sporo funkcji:

  • klient i serwer VPN (wiele protokołów, m.in. openvpn, wireguard)
  • klient DDNS, wsparcie wielu providerów
  • filtrowanie IP i domen (statyczne)
  • wsparcie dla IPv6
  • prosta konfiguracja – w zasadzie wystarczy włożyć kartę SIM i skonfigurować hasła

Są dla mnie równie wirtualne, jak wady. Liczy się tylko stabilność i bezawaryjność, a jak z tym będzie, okaże się za jakiś czas… Niemniej, klient i serwer VPN mnie zaskoczyły – zupełnie się nie spodziewałem. Interfejs przejrzysty, opcje proste. Pewnie zasługa LuCI.

UPDATE: Router jest po krótkim, kilkudniowym chrzcie bojowym. W takim okresie mogę stwierdzić, że jest stabilnie – po prostu działa. Dość mocno świecą niebieskie LEDy. Może być to zaleta. Gdyby komuś przeszkadzało to marker lub taśma klejąca załatwią sprawę.

[1] 2,2 W sam poprzedni router, switch pewnie podobnie, lub więcej. RPi na pewno ponad 3W.

Raspberry Pi niemal read only

W końcu padła kolejna karta microSD. Tym razem jakaś chińszczyzna, kupiona wieki temu na Aliexpress. Działała długo. Nie pamiętam od kiedy, ale chyba parę lat. Znaczy się, problemy miała wcześniej, ale nie miałem czasu się tym zająć i jakoś działało. Chodzi oczywiście o Raspberry Pi robiące za router GSM.

O tym, że nie jest z nią dobrze wiedziałem. Przy instalacji nowych pakietów miała narowy i leciały jakieś błędy. Za pierwszym razem ograniczyłem zapisy na kartę – wyłączyłem bieda statystyki w postaci logowania ilości przesłanych danych. Mogłem wyłączyć więcej logów oraz swap, ale nie wpadłem na to. Zresztą, działało.

A teraz pewnego dnia zniknął internet, akurat gdy pracowałem. Oczywiście udostępniłem sobie net z komórki, ale zrobiłem szybką diagnostykę. W logach czysto, w dmesg czysto, uptime 240 dni. Reboot i… nadal nie działało. Za to chwilę po reboocie przy zwykłym działaniu pojawiły się błędy odczytu. Uznałem, że wina karty.

Chyba niesłusznie i była to po prostu awaria a2mobile, bo po przełożeniu modemu do innego komputera netu także nie było.

Tu mała dygresja odnośnie operatorów. Zmigrowałem z Aero2 na a2mobile i tak to sobie działa. Przy okazji – można odzyskać kaucję za kartę, którą pobierało Aero2. Nie trzeba odsyłać karty, nie trzeba podawać numeru ani wypełniać druku – wystarczy napisać email, tak jak to opisano na Pepper. W mniej niż tydzień pieniądze z depozytu miałem na koncie.

Tak w ogóle to widzę, że w Aero2 mają nowe pakiety i może niepotrzebnie rezygnowałem. Bo teraz w Aero2 dają 10 GB za 10 zł bez limitu prędkości. Z kolei obecne a2mobile nadal daje za 12,9 zł 5 GB bez limitu prędkości, kolejne 5 GB z limitem 3 Mbps (modem 3G, więc nie robi to dramatycznej różnicy i spokojnie da się działać), kolejne 5 z limitem 1 Mbps (no tu jest wolno już), a potem 512 kbps. W praktyce pewnie zwykle mieściłbym się w 10 GB, a lepiej dopłacić 10 zł za kolejny pakiet przy tych rzadkich okazjach, kiedy potrzeba będzie więcej transferu. Hmm…

No ale skoro karta ewidentnie pada, to pora na wymianę. Czasu mało, więc zamawiać nie będę, szybka wizyta w sklepie, kupiłem jakiś dziwny wynalazek 32GB za 20 zł. Karta microSD z napisem full HD na opakowaniu. Przy okazji zauważyłem, że bardzo stary Raspbian się tam ostał – jeszcze oparty na bullseye. Zastanawiałem się przez chwilę, czy nie instalować nowego Raspbiana (oparty na bookworm), ale o ile backup obrazu karty miałem, o tyle plików nie. Oczywiście mogłem podmontować i zgrać pliki, ale stwierdziłem, że więcej będzie roboty z szukaniem ich wszystkich, niż z aktualizacją Raspbiana.

No i w sumie miałem rację – aktualizacja była bezproblemowa. Przy okazji wyłączyłem logi, wyłączyłem swap, zrobiłem lekki tuning pamięci, ustawiając minimalną możliwą dla karty graficznej (16 MB zamiast domyślnych 64 MB). No i zobaczymy, ile podziała teraz. Oczywiście mam świeży backup, znowu w postaci obrazu karty.

Przy okazji, trafiłem na ciekawy opis, jak zrobić w Raspberry Pi kartę w trybie read only przy pomocy overlayFS. Spróbowałem i… niestety nie działa, choć raspi-config twierdzi, że przełączył. Nie tylko u mnie, widziałem podobne opisy na forach – na 64bit niby działa, na 32bit – nie. A moje RPi to 1B, więc nie mogę 64bit użyć. Na dokładniejszy debug nie starczyło już czasu, może następnym razem się uda…

Udostępnianie internetu z telefonu

Niedawno usłyszałem pytanie o setup dla abcc, które zawierało ciekawy element – jedno z dostępnych połączeń było przez USB[1]. Zaintrygowało mnie to, bo tak się złożyło, że zupełnie nie znałem tematu. Zawsze udostępniałem internet z Androida wykorzystując WiFi i tworząc access point. Nie byłem pewien jak takie połączenie w ogóle jest widoczne pod Linuksem.

Poczytałem, sprawdziłem i sprawa jest prosta. Aby udostępnić internet z telefonu z Androidem należy najpierw podłączyć kabel USB. Dopiero wtedy aktywna staje się opcja USB tethering. Po jej aktywacji na telefonie, w systemie powinno pojawić się urządzenie usb0. Traktujemy jak zwykłą przewodową kartę sieciową.

Takie proste, a nigdy nie korzystałem. Czy warto udostępniać połączenie z Androida po USB, zamiast po WiFi? Jedna zaleta jest oczywista – podczas udostępniania połączenia telefon zużywa więcej prądu. Podłączenie kablem do komputera zapewnia od razu ładowanie. Z kolei oczywista wada to mniejsza swoboda ruchów – kabel jest zawsze jakimś ograniczeniem.

Pora sprawdzić wydajność. Szybki zgrubny test, po prostu fast.com, w dodatku pojedynczy pomiar dla każdej konfiguracji.

Operator nr 1
42 Mbps download 10 Mbps upload, latency 32 ms unloaded, 462 ms loaded na WiFi 2,4 GHz
42 Mbps download 15 Mbps upload latency 30 ms unloaded, 420 ms loaded na USB

Operator nr 2 (IPv6)
78 Mbps download 11 Mbps upload, latency 30 ms unloaded 321 ms loaded na WiFi 5 GHz
71 Mbps download 14 Mbps upload, latency 28 ms unloaded 446 ms loaded na USB

Wielkich różnic jak widać nie ma. Wariancie optymistycznym, czyli nieobciążonym łączu na kablu zyskamy nieco na opóźnieniach sieciowych. Lepsze powinien też być upload. Czyli domyślnie warto podłączyć kabel USB. Nie są to jednak wielkie różnice, więc jeśli nie gramy w gry online albo nie zależy nam na prędkości uploadu, wygląda, że może decydować wygoda.

UPDATE I jeszcze dla porównania wyniki z mojej kablówki, nominalnie 60/10:
62 Mbps download 7 Mbps upload, latency 6 ms unloaded 50 ms loaded na WiFi 5 GHz

Oczywiście inny serwer, pomiar dzień później itd. Ale i tak widać, jak bardzo LTE dogoniło, albo wręcz przegoniło kablówkę opartą o miedź. Światłowód zapowiadany był dwa lata temu, ale nadal nic nie wskazuje, by miał się pojawić.

[1] Sprawa w toku, może zasłuży na osobny wpis jak skończę.