Program do ustawiania pasm LTE/5G NSA/5G SA dla wybranych modemów komórkowych
Ostatnia zmiana: 2024-04-21 06:27

Program modemband.sh służy do wyświetlenia oraz ustawienia obsługiwanych pasm LTE/5G NSA/5G SA. Aktualnie wspieranie są modemy:

- BroadMobi BM806U
- Dell DW5821e Snapdragon X20 LTE (Foxconn T77W968)
- Fibocom FM350-GL
- Fibocom L850-GL
- Fibocom L850-GL in mbim mode
- Fibocom L860-GL
- Fibocom L860-GL-16
- HP lt4112 (Huawei ME906E)
- HP lt4132 LTE/HSPA+ 4G Module (Huawei ME906s-158)
- HP lt4220 (Foxconn T77W676)
- HP lt4220 (Foxconn T77W676) in mbim mode
- Huawei (różne modele)
- Sierra Wireless EM7455/MC7455/DW5811e
- SIMCOM SIM8200EA-M2
- Quectel EC20
- Quectel EC25
- Quectel EG06-E
- Quectel EG18-EA
- Quectel EM12-G
- Quectel EM160R-GL
- Quectel EP06-E
- Quectel RG500Q-EA
- Quectel RG502Q-EA
- Quectel RM500Q-GL
- Quectel RM500U-CNV
- Quectel RM502Q-AE
- Quectel RM502Q-GL
- Quectel RM505Q-AE
- Quectel RM520N-GL
- Telit LM940
- Telit LN940 (Foxconn T77W676)
- Telit LN940 (Foxconn T77W676) in mbim mode
- Telit LN960 (Foxconn T77W968)
- Telit LN960
- ZTE MF286 (router)
- ZTE MF286A (router)
- ZTE MF286D (router)
- ZTE MF286R (router)
- ZTE MF289F (router)

Historia zmian

  • Wersja 20240421
- dodanie Fibocom FM350-GL

  • Wersja 20240330
- dodanie Quectel RM502Q-GL

  • Wersja 20240307
- dodanie Fibocom L860-GL-16

  • Wersja 20240204
- dodanie Quectel RM505Q-AE

  • Wersja 20240130
- dodanie Quectel RM500U-CNV

  • Wersja 20240102
- dodanie Quectel RG500Q-EA

  • Wersja 20231216
- dodanie Sierra Wireless EM7455/MC7455/DW5811e

  • Wersja 20231108
- zmiana poleceń od odczytu/zapisu pasm dla SIMCOM SIM8200EA-M2

  • Wersja 20231031
- dodanie SIMCOM SIM8200EA-M2

  • Wersja 20231016
- dodanie Quectel EG18-EA

  • Wersja 20230914
- dodanie Quectel RM502Q-AE

  • Wersja 20230913
- dodanie obsługi pasm 5G NSA i SA dla wybranych modemów Quectel

  • Wersja 20230905
- dodanie obsługi pasm 5G dla wybranych modemów Quectel

  • Wersja 20230904
- dodanie Quectel RM500Q-GL

  • Wersja 20230302
- dodanie Telit LM940

  • Wersja 20221025
- dodanie Quectel RM520N-GL

  • Wersja 20221109
- dodanie HP lt4132 LTE/HSPA+ 4G Module

  • Wersja 20220808
- dodanie ZTE MF289F

  • Wersja 20220703
- dodanie HP lt4112/Huawei ME906E

  • Wersja 20220630
- dodanie pasma B32 dla MF286D

  • Wersja 20220404
- poprawki projektu

  • Wersja 20220403
- poprawki dla HP lt4220 oraz Telit LN940

  • Wersja 20220401
- Dodanie HP lt4220 oraz Telit LN940

  • Wersja 20220313
- aktualizacja obsługi różnych modeli Huawei

  • Wersja 20220311
- aktualizacja obsługi różnych modeli Huawei
- dodanie Dell DW5821e oraz Telit LN960

  • Wersja 20220309
- dodanie Fibocom L850-GL/L860-GL

  • Wersja 20220220
- dodanie ZTE MF286R
- dodanie Quectel EM12-G

  • Wersja 20220212
- dodanie ZTE MF286A

  • Wersja 20220121
- dodanie wyniku w formacie JSON
- dodanie obsługi Quectel EM160R-GL

  • Wersja 20220130
- dodanie rozszerzonego wyniku dla niektórych poleceń

  • Wersja 20220129
- naprawa odczytu pasma dla MF286D

  • Wersja 20220118
- optymalizacja projektu - wspólne funkcje kodujących pasma

  • Wersja 20220117
- dodanie obsługi ZTE MF286/MF286D
- dodanie obsługi Quectel EG06-E
- zmiana EP06 na EP06-E

  • Wersja 20220115
- dodanie obsługi BroadMobi BM806U
- zmiany w obsłudze Huawei E3272/E3276/E3372

  • Wersja 20220114
- pierwsza wersja programu

Opis programu

Wywołanie programu bez podania parametrów powoduje wyświetlenie wszystkich możliwych informacji. Podanie odpowiedniego polecenia umożliwia wyświetlenie tylko określonej informacji.

- pomoc


    # modemband.sh help
    Available commands:
        /usr/bin/modemband.sh getinfo
        /usr/bin/modemband.sh json
        /usr/bin/modemband.sh help

    for LTE modem
        /usr/bin/modemband.sh getsupportedbands
        /usr/bin/modemband.sh getsupportedbandsext
        /usr/bin/modemband.sh getbands
        /usr/bin/modemband.sh getbandsext
        /usr/bin/modemband.sh setbands "<band list>"

    for 5G NSA modem
        /usr/bin/modemband.sh getsupportedbands5gnsa
        /usr/bin/modemband.sh getsupportedbandsext5gnsa
        /usr/bin/modemband.sh getbands5gnsa
        /usr/bin/modemband.sh getbandsext5gnsa
        /usr/bin/modemband.sh setbands5gnsa "<band list>"

    for 5G NSA modem
        /usr/bin/modemband.sh getsupportedbands5gsa
        /usr/bin/modemband.sh getsupportedbandsext5gsa
        /usr/bin/modemband.sh getbands5gsa
        /usr/bin/modemband.sh getbandsext5gsa
        /usr/bin/modemband.sh setbands5gsa "<band list>"


- wyświetlenie wszystkich dostępnych informacji o modemie


    # modemband.sh
    Modem: Quectel EC25
    Supported LTE bands: 1 3 5 7 8 20 38 40 41
    Enabled LTE bands: 1 3 7 8 20
    
    1: FDD 2100 MHz
    3: FDD 1800 MHz
    5: FDD 850 MHz
    7: FDD 2600 MHz
    8: FDD 900 MHz
    20: FDD 800 MHz
    38: TDD 2600 MHz
    40: TDD 2300 MHz
    41: TDD 2500 MHz

- wyświetlenie wszystkich dostępnych informacji w formacie json


    # modemband.sh json
    { "modem": "Quectel EC25", "supported": [ { "band": 1, "txt": "FDD 2100 MHz" }, { "band": 3, "txt": "FDD 1800 MHz" }, { "band": 5, "txt": "FDD 850 MHz" }, { "band": 7, "txt": "FDD 2600 MHz" }, { "band": 8, "txt": "FDD 900 MHz" }, { "band": 20, "txt": "FDD 800 MHz" }, { "band": 38, "txt": "TDD 2600 MHz" }, { "band": 40, "txt": "TDD 2300 MHz" }, { "band": 41, "txt": "TDD 2500 MHz" } ], "enabled": [ 1, 3, 7, 8, 20 ] }

- pobranie informacji o modemie


    # modemband.sh getinfo
    Quectel EC25

- pobranie informacji o pasmach LTE możliwych do ustawienia


    # modemband.sh getsupportedbands
    1 3 5 7 8 20 38 40 41

- pobranie informacji o pasmach LTE możliwych do ustawienia wraz informacją o częstotliwości pasma


    # modemband.sh getsupportedbandsext
    1: FDD 2100 MHz
    3: FDD 1800 MHz
    5: FDD 850 MHz
    7: FDD 2600 MHz
    8: FDD 900 MHz
    20: FDD 800 MHz
    38: TDD 2600 MHz
    40: TDD 2300 MHz
    41: TDD 2500 MHz

- pobranie informacji o aktualnie ustawionych pasmach LTE


    # modemband.sh getbands
    1 3 7 8 20

- pobranie informacji o aktualnie ustawionych pasmach LTE wraz informacją o częstotliwości pasma


    # modemband.sh getbandsext
    1: FDD 2100 MHz
    3: FDD 1800 MHz
    7: FDD 2600 MHz
    8: FDD 900 MHz
    20: FDD 800 MHz

- ustawienie pasm LTE
Pasma należy podać w cudzysłowie oddzielone spacją:


    # modemband.sh setbands "1 3 5 40"

lub podać słowo "default", co powoduje ustawienie wszystkich możliwych pasm LTE dla danego typu modemu:


    # modemband.sh setbands default

Pakiet nie sprawdza poprawności pasm oraz czy zostało użyte pasmo z listy wpieranych.

W zależności od modemu zmiana pasma następuje natychmiast po wykonaniu polecenia lub wymagane jest ponowne uruchomienie modemu.

Analogiczne polecenia dostępne są dla modemów obsługujących 5G NSA oraz 5G SA.

Instalacja



    # opkg update
    # opkg install modemband

(jeżeli używane są moje obrazy OpenWrt z eko.one.pl - uwaga, w repozytorium może być starsza wersja pakietu). W pozostałych przypadkach należy ręcznie pobrać i zainstalować pakiet z mojego repozytorium. Do działania niezbędny jest pakiet sms-tool, który dostępny jest tylko moim repozytorium OpenWrt 21.02 lub OpenWrt 22.03 oraz w oficjalnym repozytorium OpenWrt w wersji 23.05 i wyższej.

Konfiguracja

Program nie wymaga dodatkowej konfiguracji. Jeżeli po uruchomieniu program zgłasza komunikat typu "Port not found" należy samodzielnie ustalić właściwy port diagnostyczny na którym modem odpowiada a następnie wpisać go do odpowiedniego pliku poleceniami:


    # touch /etc/config/3ginfo
    # uci set 3ginfo.@3ginfo[0].device="/dev/ttyUSB0"
    # uci commit 3ginfo

Gdzie za /dev/ttyUSB0 należy podać właściwy port diagnostyczny.

Kody źródłowe

Kody źródłowe dostępne są na moim githubie.

Zakończenie

Nie wszystkie polecenia są wspierane przez dany modem. W niektórych przypadkach może zostać wyświetlony komunikat "Unsupported" w przypadku braku obsługi danej opcji.

Obsługa nowych modemów

Masz modem innego typu? Chcesz dodać jego obsługę? Wyślij mejla z opisem:
- dokładna nazwa modemu i ew numer wersji
- wynik polecenia


    cat /sys/kernel/debug/usb/devices

- port szeregowy używany do komunikacji z modemem ("diagnostyczny")
- polecenie AT do odczytu ustawionych pasm wraz z przykładowym wynikiem
- polecenie AT do ustawienia określonych pasm
- listę wszystkich pasm możliwych do ustawienia w danym modemie