LTE modely

Patron

Hledáte návod pro zprovoznění LTE v Mervis IDE? Navštivte prosím tento tutoriál. V opačném případě pokračujte ve čtení.

Z výroby jsou jednotky Patron dodávány s předinstalovaným Mervis OS. Pokud nechcete používat Mervis, musíte nejprve přehrát OS na jednotce.

Tento návod se týká jednotek Patron vybavených LTE modulem - v současnosti se jedná o modely S167, M267 a M567.

  1. Do odpovídajícího slotu vložte aktivovanou microSIM kartu s povoleným přístupem k LTE
  2. Připojte se k jednotce pomocí SSH
  3. Nainstalujte balíček unipi-lte:
    sudo su
    apt update
    apt install unipi-lte
    systemctl enable unipi-lte 
    reboot
  4. Kontrolu stavu služby unipi-lte lze provést příkazem:
    systemctl status unipi-lte
    * unipi-lte.service - LED indication of embedded GSM/3G/LTE module status
        Loaded: loaded (/lib/systemd/system/unipi-lte.service; enabled; vendor preset: enabled)
        Active: active (running) since Thu 2023-07-20 07:57:07 UTC; 9min ago
      Main PID: 393 (python3)
         Tasks: 1 (limit: 796)
        Memory: 16.6M
        CGroup: /system.slice/unipi-lte.service
                `-393 python3 /opt/unipi/tools/unipi-lte.py

    Pokud Váš operátor používá hodnotu APN internet a SIM karta není chráněna PIN kódem, není nutné nic nastavovat a můžete kroky 5 až 7 přeskočit.

  5. Zahajte úpravu souboru lte.conf, např. programem MidnightCommander:
    mc -e /etc/unipi/lte.conf
  6. Pokud je SIM karta chráněna PIN kódem, nastavte správný PIN a odkomentujte řádek:
    pin: 1234 ;
  7. Nastavení APN je povinné (pokud tento řádek chybí či je zakomentován, LTE služba se vypne). První parametr IPV4V6 je povinný, druhý parametr je APN a správnou hodnotu určuje operátor, výchozí hodnota je internet:
    apn: "IPV4V6","internet" ;
  8. Uložte a ukončete úpravy souboru a restartujte jednotku příkazem:
    reboot

Registrace kontroléru do mobilní sítě může zabrat i několik minut, buďte proto trpěliví. Dokončení registrace je indikováno rozsvícením diody NET.


  1. U správně nastaveného LTE kontroléru by při běžném provozu měly být rozsvíceny diody SIM, NET a INT, zatímco dioda SIG by měla blikáním indikovat kvalitu LTE signálu. Viz tabulka stavu indikačních diod.
  2. V případě jakéhokoliv problému doporučujeme zkontrolovat soubor logu, kde naleznete výpis služby unipi-lte. Detailně je výpis popsán v kapitole Logovací soubor.
LED Nesvítí Svítí Blikání
SIM LTE služba není aktivní (není nainstalována či je vypnuta)
SIM je v provozu Pomalé blikání - SIM není vložena či došlo k jejímu poškození
Rychlé blikání - nesprávný PIN
NET Neregistrováno do LTE sítě Registrováno do LTE sítě
SIG Žádný signál Vynikající signál Síla signálu - čím rychlejší blikání, tím lepší signál
INT Žádný přístup k WAN Jednotka je online, záložní rozhraní je aktivní
(případně pouze jedno WAN rozhraní aktivní)
Pomalé blikání - připojeno přes hlavní WAN rozhraní, záložní rozhraní je neaktivní
Rychlé blikání - připojeno přes záložní WAN rozhraní

Blikání všech LED - probíhá restart LTE modulu

  • Pro kvalitní signál je nutné využít externí anténu instalovanou v otevřeném prostoru (tj. mimo rozvaděč). Externí anténa je součástí balení každé jednotky LTE, při výběru produktu pak můžete volit mezi výchozí anténou s magnetickým úchytem a větší nástěnnou anténou. Oba druhy antény lze rovněž dokoupit samostatně.
  • Ve výchozím stavu je Ethernet nastaven jako hlavní síťové rozhraní a LTE jako rozhraní záložní. Změna hlavního rozhraní je možná v konfiguračním souboru v sekci PING.
  • Dostupnost spojení WAN je určována pingem na IP adresu 8.8.8.8. IP adresu i interval pingu lze nastavit v konfiguračním souboru v sekci PING.

Konfigurační soubor

Konfigurační soubor lte.conf je dostupný v adresáři /etc/unipi/. Úprava souboru je možná např. programem MidnightCommander:

mc -e /etc/unipi/lte.conf

Tento soubor je rozdělen do tří částí, některé nastavení (auto_keepon, autoswitch, logovací soubor) jsou podrobně rozebrány v samostatných kapitolách.

MAIN

pin: 1234 ; Uncomment and set it if SIM pin is active (ignored if SIM is not pin-protected).
apn: "IPV4V6","internet" ; APN (depends on your provider)
auth_method: 0 ; PPP Authentication: 0 - no auth.(default), 1 - PAP, 2 - CHAP (Axon only feature)
auth_user: ; Username for PAP/CHAP auth methods (Axon only feature)
auth_pass: ; Password for PAP/CHAP auth methods (Axon only feature)
usbmode: 2 ; 2(default) for CDC_ECM + 3x CDC_ACM, 3 for RNDIS + 1x CDC_ACM (Axon only feature)
oneshot: false ; LTE modem initialization only. Close ttyACM and exit the dameon. No LED handling! Default: FALSE.
reg_timeout: 120 ; In seconds
suspend_timeout: 43200 ; In seconds (e.g. 86400 = 24 hours),-1 = suspend forever (goes to HALT mode)
report_period: 86400 ; In seconds (e.g. 86400 = 24 hours)
auto_keepon: true ; Automatically up the LTE network interface if it goes down accidentally.
  • pin: pokud je SIM chráněna PIN kódem je nutné jej zde zadat, v případě, že SIM není chráněna PIN kódem stačí řádek zakomentovat (středníkem “;”)
  • apn: Access Point Name ; první parametr IPV4V6 určuje APN protokol, je povinný a nesmí být změněn, ani smazán ; druhý parametr je APN, kde je výchozí hodnotou internet, tato hodnota se může lišit a určuje ji operátor
  • auth_user: jméno uživatele v případě požadované autentikace
  • auth_pass: heslo uživatele v případě požadované autentikace
  • oneshot: provede pouze úvodní inicializaci a následně se ukončí
  • reg_timeout: čas v sekundách, po který se modem pokouší registrovat do sítě operátora
  • suspend_timeout: prodleva mezi reinicializacemi modemu v případě chyby (výchozí: 34200 sekund, tj. 12 hodin)
  • report_period: frekvence s jakou se zapisuje pravidelný report do logu (výchozí: 86400 sekund, tj. 24 hodin)
  • auto_keepon: v případě nechtěného vypnutí spojení se při nastavení na true automaticky obnoví, tento parametr je detailně rozepsán v kapitole auto_keepon.

Parametry auth_method a usbmode nejsou používány a jsou přítomny pouze pro zpětnou kompatibilitu.

LOG

Do logu se ukládájí záznamy pro ladění a případný troubleshooting. Samotný logovací soubor je podrobně popsán ve vlastní kapitole Logovací soubor.

path: /var/log/unipilte.log ; If not defined (commented), syslog is used instead of an user file
severity: info ; Severity threshold - debug, info, warning, error, cititical
logfile_size: 131072 ; Meaningless if syslog is used
  • path: lokace logovacího souboru; pokud není definováno budou se zprávy zapisovat do syslogu
  • severity: závažnost/úroveň zprávy, od které se má zapisovat do logu
  • logfile_size: velikost logovacího souboru

PING

active: True
primary_iface: eth0 ; Primary WAN interface. The LTE connection is always a backup one.
fail_threshold: 3 ; Default: 3
ip_eth: 8.8.8.8 ; Adress that the daemon pings to via eth0
ip_lte: 8.8.8.8 ; Adress that the daemon pings to via lte_interface
period: 4 ; Ping period given in 10 sec timesteps; 0 - every 10 sec
timeout: 2 ; Wait for pong in seconds
packetsize: 2 ; Payload size in ping packet
autoswitch: true ; MAIN/BACKUP iface switching - set false if LTE is the primary and the ONLY active interface

; Config file signature - do not modify it nor add any lines or whitespaces!
; c3c9959c716370b33d07652529503f6e
  • active: zapnutí pravidelného opakování funkce ping na nastavené adresy
  • primary_iface: hlavní síťové rozhraní
  • fail_threshold: počet opakování pokusu o spojení, než se zařízení přepne na záložní síťové rozhraní
  • ip_eth: adresa, se kterou se snaží služba zkontaktovat funkcí ping přes síťové rozhraní eth0
  • ip_lte: adresa, se kterou se snaží služba zkontaktovat funkcí ping přes síťové rozhraní lte
  • period: doba mezi pokusy o navázání kontaktu, 0 → 10s, 1 → 20s, 3 → 40s atd. v inkrementech 10s
  • timeout: doba čekání na odpověď v sekundách
  • packetsize: velikost zaslaného pingu v paketech
  • autoswitch: zapnutí/vypnutí funkce autoswitch, pro zapnutí nastavte True, pro vypnutí False ; podrobně vysvětleno v kapitole Funkce Autoswitch

Funkce Autoswitch

Pokud je funkce Autoswitch povolena (výchozí stav), služba unipi-lte automaticky určuje výchozí síťovou bránu dle dostupnosti WAN na hlavním/záložním síťovém rozhraní. Ve výchozím stavu se jako hlavní síťové rozhraní využívá pevný Ethernet (eth0), zatímco LTE rozhraní plní roli záložního spojení. Ve směrovací tabulce Linuxu musí být vždy zadáno výchozí směrování pro obě rozhraní. Pokud pak nastane potřeba přepnutí mezi hlavním a záložním rozhraním, služba unipi-lte automaticky zvýší/sníží metriku LTE rozhraní.

Aby bylo možné přepínat mezi hlavním a záložním rozhraním, je nutné, aby hodnoty metrik všech síťových rozhraní byly nenulové kladné hodnoty.

  • IP adresa z DHCP serveru: není nutné nic nastavovat, jelikož (nenulovou) metriku zvolí DHCP klient.
  • Statická IP adresa: vždy je nutné nastavit nenulovou hodnotu metriky manuálně, jelikož statické směrování má výchozí hodnotu metric 0. Metriku lze nastavit v konfiguračním souboru rozhraní v rámci /etc/network/interfaces.d vložením konstanty, například metric 5.

    Pro rozhraní eth0 bude v takovém případě obsah souboru /etc/network/interfaces.d/eth0 s konfigurací statické IP vypadat přibližně takto:
    # Vzorová konfigurace statické IP pro jednotku v LAN síti
    
    auto eth0
    iface eth0 inet static
      address 192.168.221.188
      gateway 192.168.221.1
      netmask 255.255.255.0
      dns-nameservers 192.168.221.1
      metric 5 # Kladná nenulová konstanta

Funkci Autoswitch lze vypnout v konfiguračním souboru v sekci PING služby unipi-lte. Zapnutí/vypnutí se provádí nastavením hodnot True/False

Funkce Autokeepon

Dostupná je rovněž funkce auto_keepon, která je zde pro případ, že dojde k nechtěnému vypnutí LTE síťového rozhraní (např. příkazem ifdown). Funkce v takovém případě rozhraní znovu povolí (ifup) a aktualizuje záznamy směrovacích tabulek. Funkce je ve výchozím stavu zapnuta a lze ji vypnout v konfiguračním souboru v sekci MAIN.

Logovací soubor

Logovací soubor je neocenitelný pro ladění. Všechny relevantní záznamy od služby unipi-lte jsou při výchozím nastavení ukládány do /var/log/unipilte.log. Lokaci a úroveň záznamů je možno nastavit v konfiguračním souboru v sekci LOG.

Ukázka logovacího souboru

2023-07-25 08:33:00,047 - INFO - unipi-lte version 0.36 from 2023-03-14 10:19:01 - Logging started..
2023-07-25 08:33:00,052 - INFO - Running on Patron series, model: S167
2023-07-25 08:33:01,067 - INFO - Created/corrected wwan0 iface file
2023-07-25 08:33:02,143 - ERROR - Incorrect or undefined password (PIN). Going to sleep...
2023-07-25 08:33:02,144 - WARNING - Daemon halted forever...must be restarted manually 3
2023-07-25 08:36:06,945 - INFO - Exiting after received signal 15
2023-07-25 08:36:18,065 - INFO - unipi-lte version 0.36 from 2023-03-14 10:19:01 - Logging started..
2023-07-25 08:36:18,071 - INFO - Running on Patron series, model: S167
2023-07-25 08:36:19,084 - INFO - Created/corrected wwan0 iface file
2023-07-25 08:36:20,597 - INFO - Pin resolved
2023-07-25 08:36:36,942 - INFO - Modem init complete
2023-07-25 08:36:37,546 - INFO - Registered to: O2.CZ Network type: 7 RSSI: 31 Sigqual: 99
2023-07-25 08:36:40,562 - INFO - WAN IP ADDRESS: 100.71.129.7 INTERFACE IP ADDRESS: 100.71.129.7
2023-07-26 08:36:18,370 - INFO - RSSI: (MIN 21, MAX 31, AVG 25), SIGQUAL: 99, NET-TYPES: ['7'], USED_MODES: {6} PING_COUNT: 1727 PING_SUCCESS_RATIO: 99.94
2023-07-26 21:55:06,956 - INFO - Ping failure threshold reached 3 on main eth0.Switching to backup wwan0...
2023-07-26 22:06:48,490 - WARNING - Routing table metric mismatch A (changed by other application?), re-setting... 203 202
2023-07-26 22:21:49,183 - WARNING - Routing table metric mismatch A (changed by other application?), re-setting... 203 202
2023-07-26 22:36:47,974 - WARNING - Routing table metric mismatch A (changed by other application?), re-setting... 203 202
2023-07-26 22:47:38,255 - INFO - Main interface eth0 becomes available, switching to it
2023-07-27 08:36:25,783 - INFO - RSSI: (MIN 17, MAX 31, AVG 23), SIGQUAL: 99, NET-TYPES: ['7'], USED_MODES: {4, 6} PING_COUNT: 1727 PING_SUCCESS_RATIO: 99.36
2023-07-28 08:36:33,574 - INFO - RSSI: (MIN 18, MAX 31, AVG 24), SIGQUAL: 99, NET-TYPES: ['7'], USED_MODES: {6} PING_COUNT: 1726 PING_SUCCESS_RATIO: 99.94
2023-07-29 08:36:41,673 - INFO - RSSI: (MIN 21, MAX 31, AVG 24), SIGQUAL: 99, NET-TYPES: ['7'], USED_MODES: {6} PING_COUNT: 1727 PING_SUCCESS_RATIO: 100.00
2023-07-30 08:36:49,334 - INFO - RSSI: (MIN 21, MAX 31, AVG 24), SIGQUAL: 99, NET-TYPES: ['7'], USED_MODES: {6} PING_COUNT: 1727 PING_SUCCESS_RATIO: 99.94
2023-07-31 08:36:57,165 - INFO - RSSI: (MIN 17, MAX 31, AVG 24), SIGQUAL: 99, NET-TYPES: ['7'], USED_MODES: {6} PING_COUNT: 1727 PING_SUCCESS_RATIO: 99.83

  • 2023-07-25 08:33:00: Inicializace a začátek připojování
  • 2023-07-25 08:33:02: Chyba způsobená špatným PIN kódem
  • 2023-07-25 08:36:20: Zadán správný PIN kód
  • 2023-07-25 08:36:40: Spojení s LTE sítí úspěšně navázáno
  • 2023-07-25 21:55:06: Selhání sítě eth0, zařízení Unipi přechází na záložní LTE připojení
  • 2023-07-25 22:47:38: Síť eth0 opět k dispozici
  • 2023-07-2x 08:36:xx: Pravidelný report, frekvenci záznamu lze nastavit parametrem report_period v konfiguračním souboru v sekci MAIN.

Vypnutí/zapnutí NAT pro LTE modem:

Ve výchozím stavu je NAT zapnuta. Pro vypnutí/zapnutí je potřeba poslat modemu specifický AT příkaz po virtuální sériové lince:

  1. ​komunikace probíhá po virtuální sériové lince /​dev/​ttyLTE_AT1 (např. programem minicom):​
    minicom -D /​dev/​ttyLTE_AT1​
  2. následně je třeba odeslat řetězec (AT příkaz pro vypnutí):
    AT+QCFG="​nat",​X

Pro vypnutí NAT je nutné za X dostadit parametr 1 a pro zapnutí parametr 0.

Po odeslání příkazu a ukončení programu minicom je nutné restartovat modem, aby se nastavení projevilo. Restartování je možné např. odpojením/připojením napájení kontroléru.


Poznámka: Řetězec (AT příkaz) musí být vložen v přesném formátu, včetně citlivosti na velikost písmen. Ověřený způsob je např. zkopírování celého řetězce AT příkazu a následné vložení do terminálového okna se spuštěným programem minicom.

Poznámka k programu minicom: Ukončení programu minicom se provede stiskem kombinace kláves CTRL+A, následným stiskem tlač. Q, tím se vyvolá dialog, ve kterém je ještě nutné potvrdit ukončení programu.