Jak wymusić pasmo/częstotliwość LTE pod OpenWRT

Spis treści

Zainspirowany wątkiem na forum JDtech na temat testów transferów w konkretnych pasmach/częstotliwościach LTE, postanowiłem sprawdzić jak ta sprawa wygląda w mojej okolicy. Generalnie ja obecnie u siebie mam modem Huawei E3372s-153 w wersji NON-HiLink podpięty do routera TP-LINK Archer C2600. Oczywiście na tym routerze jest wgrany alternatywny firmware LEDE/OpenWRT, bo inaczej nie miałbym możliwości skorzystać z tego modemu. Standardowa konfiguracja LTE w LEDE/OpenWRT daje nam jedynie możliwość wyboru między ustawieniami auto , gsm , umts , lte , preferumts oraz preferlte . W przypadku internetu LTE, zwykle wybieramy tutaj tryb auto , ewentualnie też lte , by wymusić konkretny tryb pracy modemu, co może mieć kolosalne znaczenie przy darmowym internecie od RBM/Play. Niemniej jednak, nawet w przypadku wyboru lte , częstotliwość na jakiej będzie pracował modem w dalszym ciągu jest dobierana automatycznie w oparciu o parametry sygnału docierającego z dostępnych w okolicy BTS'ów. W przypadku modemu E3372 można jednak wymusić, by połączenie LTE było realizowane na konkretnej częstotliwości, np. 2100/1800/2600/900/800 MHz i by taki stan rzeczy osiągnąć, trzeba nieco przerobić konfigurację tego alternatywnego oprogramowania znajdującego się w naszym routerze WiFi.

Dostosowanie konfiguracji LEDE/OpenWRT na potrzeby LTE

Przede wszystkim, by móc operować na modemie LTE z poziomu routera WiFi z wgranym firmware LEDE/OpenWRT, musimy pierw zainstalować stosowne oprogramowanie. Nie będę tutaj opisywał tego zagadnienia, bo to zostało zrobione już w osobnym wątku. Zakładam też, że nasz modem LTE działa bez większego problemu na routerze i nie mamy problemów ze zmuszeniem go do pracy.

Nas tutaj bardziej interesować będzie konfiguracja modemu, a konkretnie plik /etc/gcom/ncm.json . To w tym pliku jest zawarta instrukcja, tj. poszczególne polecenia, które są przesyłane do modemu w celu jego konfiguracji. Jako, że my tutaj dysponujemy modemem LTE od Huawei, to interesuje nas sekcja "huawei": { } . Tam z kolei mamy podsekcję "modes": { } i tutaj właśnie są zlokalizowane konfiguracje trybów pracy modemu. Standardowo mamy tutaj te poniższe wpisy:

"modes": {
    "preferlte": "AT^SYSCFGEX=\\\"030201\\\",3fffffff,2,4,7fffffffffffffff,,",
    "preferumts": "AT^SYSCFGEX=\\\"0201\\\",3fffffff,2,4,7fffffffffffffff,,",
    "lte": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,7fffffffffffffff,,",
    "umts": "AT^SYSCFGEX=\\\"02\\\",3fffffff,2,4,7fffffffffffffff,,",
    "gsm": "AT^SYSCFGEX=\\\"01\\\",3fffffff,2,4,7fffffffffffffff,,",
    "auto": "AT^SYSCFGEX=\\\"00\\\",3fffffff,2,4,7fffffffffffffff,,"
},

Mając dostępne tylko te powyższe tryby, nie da rady wymusić konkretnego pasma LTE, bo każdy z tych trybów ma 7fffffffffffffff , co odpowiada za obsługę wszystkich pasm. Możemy jednak zmienić tę wartość na taką, którą odpowiada za konkretną częstotliwość. Najprościej jest po prostu dodać kilka dodatkowych wpisów i odpowiednio przerobić 7fffffffffffffff , poniżej przykład:

"lte-fdd-2100": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,1,1,,",
"lte-fdd-1800": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,4,,",
"lte-fdd-2600": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,40,,",
"lte-fdd-900": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,80,,",
"lte-fdd-800": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,80000,,"

Pierwsza wartość liczbowa w komendzie AT, czyli 03 , wymusza LTE, zatem modem ma pracować tylko w tym trybie. Ostatnia wartość liczbowa, tj. 1 , 4 , 40 , 80 oraz 80000 , odpowiada kolejno pasmom B1 (2100 MHz), B3 (1800 MHz), B7 (2600 MHz), B8 (900 MHz) i B20 (800 MHz) w technologi FDD.

Każdy taki wpis, za wyjątkiem ostatniego, ma być zakończony przecinkiem ( , ).

Jakie pasma/częstotliwości LTE są dostępne w mojej okolicy

Dostosowanie konfiguracji dla modemu LTE to jedna rzecz ale trzeba także zrobić lekkie rozeznanie na temat tego jakie częstotliwości LTE są dostępne w okolicy naszego miejsca zamieszkania/przebywania. Tutaj nie ma prostej metody, by takie informacje zdobyć. Niby można posłużyć się serwisami w stylu [BTSEARCH][4] ale zawarte w nich dane dotyczące konkretnych stacji bazowych czasami są błędne lub też w ogóle ich tam nie znajdziemy. Możemy jednak przełączyć modem w każdy ze zdefiniowanych wyżej trybów i sprawdzić czy uda się uzyskać połączenie w pasmach obsługiwanych przez modem. Edytujemy zatem plik /etc/config/network na routerze. Interesuje nas sekcja konfigurująca interfejs sieciowy przypisany modemowi LTE:

config interface 'lte'
...
    option mode 'lte-fdd-2600'
...

Teraz już wystarczy tylko dostosować opcję mode wpisując nazwy zdefiniowane w pliku /etc/gcom/ncm.json oraz przeprowadzić szereg pomiarów prędkości łącza internetowego, np. w serwisie speedtest. Ja dla wygody testy robiłem z poziomu aplikacji na smartfona. Uzyskałem wyniki dla 2100 MHz, 1800 MHz, 2600 MHz i 800 MHz. Niestety na 900 MHz modem nie był w stanie zrealizować połączenia.

czestotliwosc-pasmo-lte-test-openwrt-lede

Widać zatem, że największą prędkość udało się uzyskać w paśmie 2600 MHz i w zasadzie można tę częstotliwość wymusić. Niemniej jednak, jeśli zmieniamy dość często miejsce pobytu, to lepiej jest pozostać przy automatycznym doborze częstotliwości, bo nie zawsze będziemy w zasięgu, np. tego pasma 2600 MHz.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.