Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
1. července 2020Notebook Lenovo ThinkPad X1 Carbon generace 6 má zabudovaný LTE modem EM7544. Výrobce modemu Linux podporuje. Jak ale tento a jiné dnešní moderní modemy pod Linuxem používat? Návod jak zprovoznit model EM7544 v Linuxu najdete v tomto článku.
Do rukou se mě dostal notebook Lenovo ThinkPad X1 Carbon. Funguje dobře bez nutnosti cokoli řešit, navíc jako notebook má relativně velké rozlišení obrazovky.
Notebook má procesor s dvěma jádry a s hyperthreading, takže pak jsou v systému vidět jako 4 CPU. Operační paměť je typu DDR3L, v mém modelu o celkové velikosti 16GB. Rozlišení LCD obrazovky je 2560x1440px.
Notebook ma jak je již standardem integrovanou WiFi kartu. A nemá DVD mechaniku, která je dneska zbytečná. Díky tomu je také notebook lehký a tenký.
Dále má: USB3, HDMI výstup, jack na společný mikrofon se sluchátky (samozřejmě i integrovaný mikrofon a reproduktory),
Touchpad a trackpoint.
Specifický konektor na připojení Ethernet vstupu, ale já když potřebuji, tak použiji USB Ethernet, který je přes USB3 rychlí.
Notebook má i integrovanou kameru střední kvality.
Má i čtečku micro SD karet. Takže standardní velikost a mini bez externí čtečky nepřečtete. Jak je zvykem u Thinkpadů má svícení. Konkrétně zapínatelné podsvícení klávesnice. Klávesa CapsLosk a funkční klávesy: ztlumen zvuku, ztlumení mikrofonu a FnLock mají v sobě malou diodu, která signalizuje stav.
Po nainstalování operačního systému Linux je možno počítač rovnou začít používat.
Můj model má navíc i LTE modem, o kterém bude tento článek. Modem zároveň obsahuje GPS modul.
Celý výpis HW viz lshw Lenovo ThinkPad X1 Carbon.
Kromě očekávaných komponent notebook z výroby obsahuje i LTE modem.
Jednotlivé generace ThinkPadu X1 Carbon však mají instalován jiný typ modemu.
Dle informací na Internetu se ThinkPad X1 Carbon dodává s těmito modemy:
- Fibocom L850-GL / Intel XMM7360 LTE modem
- Sierra Wireless, Inc. Sierra Wireless EM7455
LTE modem EM7455
Zajímavostí je, že modem umožňuje změnit svoje USB ID, takže pak se v systému může hlásit jako jiné zařízení. Dle Internetu je identifikace modemu rozdílná dle typu značky notebooky (nejspíš to přednastavuje výrobce), ale vždy se jedná o stejný kus elektroniky. Montuje se například i do notebooku Dell. Modem se může identifikovat jako jedno zařízení z těchto tří možností:
- Generic-Laptop
- Dell: Dell Wireless 5811e Gobi(TM)4G LTE Mobile Broadband Card
- Lenovo ThinkPad: Sierra Wireless, Inc. Sierra Wireless EM7455
Modem je vnitřně připojen po USB. Na ThinkPad X1 Carbon výpis lsusb hlásí:
Bus 001 Device 009: ID 1199:9079 Sierra Wireless, Inc. Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-ADle dokumentace by tento modem by měl mít rychlost až 480Mbit/s, to ovšem také záleží na parametrech mobilní sítě.
Výpis informaci při bootu nebo připojení zařízení (dmesg):
[ 1216.502735] usb 1-2: USB disconnect, device number 2 [ 1216.502950] qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0 [ 1216.502981] qcserial 1-2:1.0: device disconnected [ 1216.503078] qcserial ttyUSB1: Qualcomm USB modem converter now disconnected from ttyUSB1 [ 1216.503091] qcserial 1-2:1.2: device disconnected [ 1216.503582] qcserial ttyUSB2: Qualcomm USB modem converter now disconnected from ttyUSB2 [ 1216.503592] qcserial 1-2:1.3: device disconnected [ 1216.503675] cdc_mbim 1-2:1.12 wwp0s20f0u2i12: unregister 'cdc_mbim' usb-0000:00:14.0-2, CDC MBIM [ 1224.113147] usb 1-2: new high-speed USB device number 6 using xhci_hcd [ 1224.240134] usb 1-2: config 1 has an invalid interface number: 12 but max is 4 [ 1224.240148] usb 1-2: config 1 has an invalid interface number: 13 but max is 4 [ 1224.240152] usb 1-2: config 1 has an invalid interface number: 13 but max is 4 [ 1224.240156] usb 1-2: config 1 has no interface number 1 [ 1224.240158] usb 1-2: config 1 has no interface number 4 [ 1224.240739] usb 1-2: New USB device found, idVendor=1199, idProduct=9079, bcdDevice= 0.06 [ 1224.240745] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1224.240750] usb 1-2: Product: Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A [ 1224.240753] usb 1-2: Manufacturer: Sierra Wireless, Incorporated [ 1224.240757] usb 1-2: SerialNumber: LF62957506021014 [ 1224.247935] qcserial 1-2:1.0: Qualcomm USB modem converter detected [ 1224.248032] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB0 [ 1224.248496] qcserial 1-2:1.2: Qualcomm USB modem converter detected [ 1224.248597] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB1 [ 1224.249076] qcserial 1-2:1.3: Qualcomm USB modem converter detected [ 1224.249180] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB2 [ 1224.271148] cdc_mbim 1-2:1.12: cdc-wdm0: USB WDM device [ 1224.271366] cdc_mbim 1-2:1.12 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-2, CDC MBIM, 6a:7d:82:89:28:28 [ 1224.332605] cdc_mbim 1-2:1.12 wwp0s20f0u2i12: renamed from wwan0
Kromě toho modem obsahuje i GPS, kterou jsem však já zatím nezprovozňoval.
LTE modemy
Dnešní modemy jsou moderní pokročila zařízení, která umí mnohem víc a lépe než staré kusy. Ale i tak je stále možno snimi komunikovat pomocí tzv. AT příkazů. AT příkazy jsou způsob jak řídit a konfigurovat modemy případně i jiná zařízení, která komunikuji po sériové lince.
I modem EM7455 umožňuje konfiguraci pomocí AT příkazů a tak je možno vyčítat a upravovat jeho konfiguraci. Ovšem jako moderní zařízení umožňuje i další způsoby a je potřeba se v tom vyznat, aby člověk věděl co dělá. A i proto vznikl tento článek s návodem jak na moderní LTE modem.
Moderní modemy včetně modemu EM7455 umožňují komunikovat pomocí protokolu QMI nebo MBIM K této komunikaci v Linuxu slouží nástroje mbimcli qmicli, které je potřeba nainstalovat. V distribuci Mageia balíček urpmi libqmi-utils.
Slajdy z přednášky QMI, MBIM moderní modemy v Linuxu - doporučuji přečíst! Jsou tam vizuálně znázorněny jednotlivé technologie a znárodněny vrstvy a jak mezi sebou komunikují.
První komunikace s modemy
V jakém stavu je modem zjistíte příkazem:
qmicli -d /dev/cdc-wdm0 --dms-swi-get-usb-composition [/dev/cdc-wdm0] Successfully retrieved USB compositions: USB composition 6: DM, NMEA, AT, QMI [*] USB composition 8: DM, NMEA, AT, MBIM USB composition 9: MBIMJak vidno modem muže být také ve stavu kdy bude komunikovat jenom v módu MBIM.
Možnosti, které obsahují "DM, NMEA, AT," znamenají, že zároveň modem vytvoří tři virtuální USB sériové linky pro komunikaci: diagnostika, GPS a AT příkazy.
/dev/ttyUSB0 - Diagnotics Monitoring (DM) port /dev/ttyUSB1 = GPS NMEA port /dev/ttyUSB2 - AT commands
Zařízení modemu v systému představuje tento soubor: /dev/cdc-wdm0
Komunikace pomocí QMI se mě nepodařilo zprovoznit, takže pro další použití já používám MBIM. Používám stav včetně
sériových linet pro GPS a AT příkazy.
Přepínání mezi těmito stavy se dělá příkazem:
qmicli -d /dev/cdc-wdm0 --dms-swi-set-usb-composition=6 qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=resetA po restartu modemu, již komunikuje jiným způsobem a (ne)jsou vidět v systému výše zmíněné sériové porty.
Podrobné informace o modemu zjistíte příkazem:
mbimcli -d /dev/cdc-wdm0 --query-device-caps --verbose
Před upgradem firmwaru vypadal výpis informací takto:
[24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 48 <<<<<< type = command (0x00000003) <<<<<< transaction = 2 <<<<<< Fragment header: <<<<<< total = 1 <<<<<< current = 0 <<<<<< Contents: <<<<<< service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df) <<<<<< cid = 'device-caps' (0x00000001) <<<<<< type = 'query' (0x00000000) [24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] Received message... >>>>>> RAW: >>>>>> length = 196 >>>>>> data = 03:00:00:80:C4:00:00:00:02:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:01:00:00:00:00:00:00:00:94:00:00:00:03:00:00:00:01:00:00:00:01:00:00:00:02:00:00:00:3C:00:00:00:03:00:00:00:01:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00:40:00:00:00:1E:00:00:00:60:00:00:00:28:00:00:00:88:00:00:00:0C:00:00:00:30:00:31:00:34:00:35:00:38:00:32:00:30:00:30:00:31:00:38:00:33:00:39:00:39:00:31:00:30:00:00:00:53:00:57:00:49:00:39:00:58:00:33:00:30:00:43:00:5F:00:30:00:32:00:2E:00:32:00:34:00:2E:00:30:00:35:00:2E:00:30:00:36:00:45:00:4D:00:37:00:34:00:35:00:35:00 [24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] Received message (translated)... >>>>>> Header: >>>>>> length = 196 >>>>>> type = command-done (0x80000003) >>>>>> transaction = 2 >>>>>> Fragment header: >>>>>> total = 1 >>>>>> current = 0 >>>>>> Contents: >>>>>> status error = 'None' (0x00000000) >>>>>> service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df) >>>>>> cid = 'device-caps' (0x00000001) >>>>>> Fields: >>>>>> DeviceType = 'remote' >>>>>> CellularClass = 'gsm' >>>>>> VoiceClass = 'no-voice' >>>>>> SimClass = 'removable' >>>>>> DataClass = 'umts, hsdpa, hsupa, lte' >>>>>> SmsCaps = 'pdu-receive, pdu-send' >>>>>> ControlCaps = 'reg-manual' >>>>>> MaxSessions = '8' >>>>>> CustomDataClass = '(null)' >>>>>> DeviceId = '014582001839910' >>>>>> FirmwareInfo = 'SWI9X30C_02.24.05.06' >>>>>> HardwareInfo = 'EM7455' [/dev/cdc-wdm0] Device capabilities retrieved: Device type: 'remote' Cellular class: 'gsm' Voice class: 'no-voice' SIM class: 'removable' Data class: 'umts, hsdpa, hsupa, lte' SMS caps: 'pdu-receive, pdu-send' Ctrl caps: 'reg-manual' Max sessions: '8' Custom data class: 'unknown' Device ID: '014582001839910' Firmware info: 'SWI9X30C_02.24.05.06' Hardware info: 'EM7455' [24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<< length = 12 <<<<<< data = 02:00:00:00:0C:00:00:00:03:00:00:00 [24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 12 <<<<<< type = close (0x00000002) <<<<<< transaction = 3 [24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] Received message... >>>>>> RAW: >>>>>> length = 16 >>>>>> data = 02:00:00:80:10:00:00:00:03:00:00:00:00:00:00:00 [24 kvě 2020, 16:58:42] [Debug] [/dev/cdc-wdm0] channel destroyed [24 kvě 2020, 16:58:42] [Debug] Device closed
Upgade firmware
Dle Internetu ze začátku byly modemy se starým firmwarem, který byl problematický, proto byl nutný upgrade
firmwaru.
Já u všech zařízeních firmware rovnou aktualizuji, takže i tady jsem rovnou provedl update firmwaru.
Vycházel jsem z zde:
návodu ThinkPad EM7455 flash firmware.
V modemu může být nahráno několik verzí firmwaru. Výpis informací, jaký firmware je nahrán v modemu a jaký firmware se používá, se dá provést příkazy:
qmicli -p -d /dev/cdc-wdm0 --dms-get-firmware-preference qmicli -p -d /dev/cdc-wdm0 --dms-list-stored-images
Flash firmwaru
Adresa, kde je ke stažení firmware pro LTE modem EM7455
Přesuneme se do adresáře s daty firmwaru a flash firmwaru provedete následujícím příkazem:
qmi-firmware-update -d 1199 -u *.cwe *.nvu
Výpis průběhu falshování:
[root@FreeTux SWI9X30C_02.33.03.00_Sierra_001.023_000]# qmi-firmware-update -d 1199 -u *.cwe *.nvu loading device information before the update... setting firmware preference: firmware version: '02.33.03.00' config version: '001.023_000' carrier: 'SIERRA' rebooting in download mode... download mode detected downloading cwe image: SWI9X30C_02.33.03.00.cwe (64,4 MB)... finalizing download... (may take more than one minute, be patient) successfully downloaded in 73,60s (875,4 kB/s) downloading cwe image: SWI9X30C_02.33.03.00_SIERRA_001.023_000.nvu (3,4 kB)... finalizing download... (may take more than one minute, be patient) successfully downloaded in 0,05s (63,4 kB/s) rebooting in normal mode... normal mode detected ------------------------------------------------------------------------ NOTE: in order to validate which is the firmware running in the module, the program will wait for a complete boot; this process may take some time and several retries. ------------------------------------------------------------------------ waiting some time for the device to boot... loading device information after the update (1/12)... ------------------------------------------------------------------------ original firmware revision was: SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09 original running firmware details: Model: EM7455 Boot version: SWI9X30C_02.24.05.06 AMSS version: SWI9X30C_02.24.05.06 SKU ID: 1102782 Carrier ID: 1 Config version: 002.026_000 original firmware preference details: image 'modem': unique id '002.026_000', build id '02.24.05.06_GENERIC' image 'pri': unique id '002.026_000', build id '02.24.05.06_GENERIC' new firmware revision is: SWI9X30C_02.33.03.00 r8209 CARMD-EV-FRMWR2 2019/08/28 20:59:30 new running firmware details: Model: EM7455 Boot version: SWI9X30C_02.33.03.00 AMSS version: SWI9X30C_02.33.03.00 SKU ID: 1102782 Carrier ID: 182 Config version: 001.023_000 new firmware preference details: image 'modem': unique id '001.023_000', build id '02.33.03.00_SIERRA' image 'pri': unique id '001.023_000', build id '02.33.03.00_SIERRA' NOTE: this device supports stored image management with qmicli operations: --dms-list-stored-images --dms-select-stored-image --dms-delete-stored-image NOTE: this device supports firmware preference management with qmicli operations: --dms-get-firmware-preference --dms-set-firmware-preference ------------------------------------------------------------------------ firmware update operation finished successfully ==========================
Výpis informací irmware po upgradu:
[13 čen 2020, 10:19:29] [Debug] opening device... [13 čen 2020, 10:19:29] [Debug] [/dev/cdc-wdm0] Queried max control message size: 4096 [13 čen 2020, 10:19:29] [Debug] [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<< length = 16 <<<<<< data = 01:00:00:00:10:00:00:00:01:00:00:00:00:10:00:00 [13 čen 2020, 10:19:29] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 16 <<<<<< type = open (0x00000001) <<<<<< transaction = 1 <<<<<< Contents: <<<<<< max control transfer = 4096 [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Received message... >>>>>> RAW: >>>>>> length = 16 >>>>>> data = 01:00:00:80:10:00:00:00:01:00:00:00:00:00:00:00 [13 čen 2020, 10:19:32] [Debug] MBIM Device at '/dev/cdc-wdm0' ready [13 čen 2020, 10:19:32] [Debug] Asynchronously querying device capabilities... [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<< length = 48 <<<<<< data = 03:00:00:00:30:00:00:00:02:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:01:00:00:00:00:00:00:00:00:00:00:00 [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 48 <<<<<< type = command (0x00000003) <<<<<< transaction = 2 <<<<<< Fragment header: <<<<<< total = 1 <<<<<< current = 0 <<<<<< Contents: <<<<<< service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df) <<<<<< cid = 'device-caps' (0x00000001) <<<<<< type = 'query' (0x00000000) [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Received message... >>>>>> RAW: >>>>>> length = 196 >>>>>> data = 03:00:00:80:C4:00:00:00:02:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:01:00:00:00:00:00:00:00:94:00:00:00:03:00:00:00:01:00:00:00:01:00:00:00:02:00:00:00:3C:00:00:00:03:00:00:00:01:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00:40:00:00:00:1E:00:00:00:60:00:00:00:28:00:00:00:88:00:00:00:0C:00:00:00:30:00:31:00:34:00:35:00:38:00:32:00:30:00:30:00:31:00:38:00:33:00:39:00:39:00:31:00:30:00:00:00:53:00:57:00:49:00:39:00:58:00:33:00:30:00:43:00:5F:00:30:00:32:00:2E:00:33:00:33:00:2E:00:30:00:33:00:2E:00:30:00:30:00:45:00:4D:00:37:00:34:00:35:00:35:00 [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Received message (translated)... >>>>>> Header: >>>>>> length = 196 >>>>>> type = command-done (0x80000003) >>>>>> transaction = 2 >>>>>> Fragment header: >>>>>> total = 1 >>>>>> current = 0 >>>>>> Contents: >>>>>> status error = 'None' (0x00000000) >>>>>> service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df) >>>>>> cid = 'device-caps' (0x00000001) >>>>>> Fields: >>>>>> DeviceType = 'remote' >>>>>> CellularClass = 'gsm' >>>>>> VoiceClass = 'no-voice' >>>>>> SimClass = 'removable' >>>>>> DataClass = 'umts, hsdpa, hsupa, lte' >>>>>> SmsCaps = 'pdu-receive, pdu-send' >>>>>> ControlCaps = 'reg-manual' >>>>>> MaxSessions = '8' >>>>>> CustomDataClass = '(null)' >>>>>> DeviceId = '014582001839910' >>>>>> FirmwareInfo = 'SWI9X30C_02.33.03.00' >>>>>> HardwareInfo = 'EM7455' [/dev/cdc-wdm0] Device capabilities retrieved: Device type: 'remote' Cellular class: 'gsm' Voice class: 'no-voice' SIM class: 'removable' Data class: 'umts, hsdpa, hsupa, lte' SMS caps: 'pdu-receive, pdu-send' Ctrl caps: 'reg-manual' Max sessions: '8' Custom data class: 'unknown' Device ID: '014582001839910' Firmware info: 'SWI9X30C_02.33.03.00' Hardware info: 'EM7455' [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<< length = 12 <<<<<< data = 02:00:00:00:0C:00:00:00:03:00:00:00 [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 12 <<<<<< type = close (0x00000002) <<<<<< transaction = 3 [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] Received message... >>>>>> RAW: >>>>>> length = 16 >>>>>> data = 02:00:00:80:10:00:00:00:03:00:00:00:00:00:00:00 [13 čen 2020, 10:19:32] [Debug] [/dev/cdc-wdm0] channel destroyed [13 čen 2020, 10:19:32] [Debug] Device closed
Volba firmwaru
Výběr použitého firmwaru, se dá provést příkazem např:
qmicli -d /dev/cdc-wdm0 --dms-select-stored-image=modem3,pri1Zálěží pod jakým číslem je firmware v modemu uložen. Firmware jde i z modemu mazat viz dokumentace v odkazech.
PIN
Z konzole je možno i zadávat a nastavovat PIN SIM karty atd. Osobně jsem to však nezkoušel. Příkaz pro získávání stavu PINu:
qmicli -d /dev/cdc-wdm0 --dms-uim-get-pin-status
Nastavení systému pro funkční modem EM7544
To že zařízení může být v několika módech a můžete se s ním komunikovat různými utilitami a má různé komunikační
periferie ( sériová linka a AT příkazy vs zařízení) a různé komunikační protokoly, mě velmi mátlo.
Nyní už máte přehled o tom co modem umožňuje.
AT příkazy pro zprovoznění vůbec není třeba používat. Pouze je třeba mít zařízení v módu MBIM a k tomu danou
utilitu.
Další problém bylo, že ač Mageia používá network applet na pozadí běžel
i network manager,
který modem používal a tak modem blokoval nebo komunikace sním mě velmi pomalou odezvu.
Takže network manager jsem deaktivoval a najednou se pokusy se zprovozněním měli rychlou odezvu.
Protože pro komunikaci s modem nepoužívám proxy, tak je potřeba volat utility bez tohoto parametru -p!
EM7544 online
Tento návod popisuje nastavení, když modem komunikuje protokolem MBIM. Proto jsem nastavil modem do tohoto módu (v tomto případě mód č 8). A toto nastavení zůstane i po restartu modemu nebo notebooku.
Stav jestli je modem ON nebo OFF zjistíte příkazem:
qmicli -p -d /dev/cdc-wdm0 --dms-get-operating-modePo změně většiny nastavení je potřeba modem restartovat(reset běhu). Příkazy na změnu stavu modemu a reset:
qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=offline qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=online qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=reset
Modem je potřeba přepnout do módu online - což dělá konfigurační/připojovací skript pak automaticky. Ale je problém, že po restartu modemu/notebooku při pokusu o změnu na stav online modem vypisuje error hlášku:
couldn't set operating mode: QMI protocol error (60):EM7455 je potřeba poslat speciální příkaz FCC_AUTH
Pro je potřeb zadat příkaz:
qmicli -d /dev/cdc-wdm0 --dms-set-fcc-authenticationToto je potřeba provést po po každém rebootu notebooku restartu modemu před připojením do mobilní sítě!
Nastavení připojení
Já mám zatím mobilní Internet od Vodafone, proto nastavuji přihlašovací údaje viz níže. Vytvořil jsem konfigurační soubor /etc/qmi-network.conf a do něj zapsal:
APN=internetSamozřejmě je možnost tam zapsat i další konfigurační volby například uživatele a jeho heslo.
Jak spouštět připojení do LTE sítě a jak konfigurovat zařízení a síť je mnoho možností a jde to dělat i ručně. Já jsem jsem však po mnoha pokusech zakotvil existujícího skript, který volá existující nástroje a nastavuje IP konfiguraci sítě z přijatých dat od operátora včetně nastavené DNS. Používám upravený fork skriptu, který modem EM7455 připojí k LTE a nakonfiguruje síť.
Skript vlastně volá
mbim-network /dev/cdc-wdm0 startStav připojení můžete zjistit příkazem:
mbim-network /dev/cdc-wdm0 statusNásledně skript získá informace o spojení a jak nastavit sít včetně IP. Tyto informace dostane modem od operátora po navázání spojení. Ručně můžete tyto informace vyčíst příkazem a tejný příkaz volá i připravený skript:
mbimcli -d /dev/cdc-wdm0 --query-ip-configuration --no-open=11 --no-closeTyto data pro nastavení sítě skript vyparsuje a nastaví IP adresy síťového rozhraní a DNS servery. A mobilní Internet najednou začne fungovat. Uživatel už může spouštět vše jen pomocí příkazu:
lte_startPro vypnutí mobilní internetu je příkaz:
lte_stopTyto skripty jsou v daném GIT repositáři podadresáři ./usr/local/bin/.
AT příkazy
Připojit se na sériovou konzoli modemu lze následujícím příkazem:
screen /dev/ttyUSB2 115200
Pomocí AT příkazů můžete upravovat parametry modemu, resetovat modem, upravovat jeho identifikaci jakožto USB
zařízení atd..
Zadávání příkazů pak může vypadat například takto:
ATE1 AT!ENTERCND="A710" AT!CUSTOM? AT!CUSTOM="FASTENUMEN",2 AT!CUSTOM="FASTENUMEN",0 AT!PCOFFEN? AT!PCOFFEN=2 AT!RESETPro konfiguraci, připojení k sítí a zprovoznění mobilního Internetu však AT příkazy nejsou potřeba, Podrobnosti jak na na AT příkazy a jaké příkazy jsou možné viz odkazy na konci článku.
QMI
Tuto komunikaci jsem úspěšně nerozběhal, proto se o ní podrobně nerozepisuji. Pro QMI existují obdobné utility a to: qmi-network, qmicli atd...
rfkill
Jako každy notebook i ThinkPad X1 Carbon umožňuje softwarově vypínat periferie. K tomu slouží nástroj rfkill
Následujícím příkazem vypíšete dostupná zařízení a vypnete zařízení č. 1.
rfkill list all rfkill unblock 1
Network manager
Chvíli jsem zkoušel i NetwokManager.
K němu existuje konzolová utilita mmcli.
Použít se dají například takovéto příkazy:
mmcli -L mmcli -m 0 systemctl status ModemManager systemctl status NetworkManager mmcli -m 0 --simple-connect="apn=internet" # fuguje az po spusteni network manageru mmcli -m 0 --create-bearer="apn=internet" mmcli -m 0 --simple-disconnect mmcli -m 0 -b 0 -c vypis mmcli -m 0 -b 0O jejich funkčnosti se však nebudu rozepisovat viz dokumentace.
Dle logu atd se zdá, že i pomocí něho se dá připojit ovšem i tak je pak potřeba nakonfigurovat síťové rozhraní.
Zobrazení výpis logu:
journalctl --follow -u ModemManager -u NetworkManagerDokázal jsem se tak dostat do stavu, že v logu bylo vidět že spojení je online a na jaké hodnoty IP mám ručně natavit síť.
kvě 30 20:01:15 FreeTux ModemManager[6279]: Address: 10.183.56.65/30 kvě 30 20:01:15 FreeTux ModemManager[6279]: Gateway: 10.183.56.66 kvě 30 20:01:15 FreeTux ModemManager[6279]: DNS #1: 217.77.165.211 kvě 30 20:01:15 FreeTux ModemManager[6279]: DNS #2: 217.77.165.81 kvě 30 20:01:15 FreeTux ModemManager[6279]: MTU: 1500
NetwokManager podporuje i GPS. Viz následující příkazy:
mmcli -m 1 --location-status mmcli -m 1 --location-enable-gps-nmeaVíce opět viz dokumentace.
Zdá se, že Network Manager podporuje QMI i MBIM. Více jsem se tím však nezabýval a podrobnosti viz dokumentace!
Jak vypnout NetworkManager v distribuci Mageia.
Baterie
Aby se zbytečně neopotřebovávala baterie, notebook podporuje inteligentní řízení nabíjení baterie. Více a odkazy na stránce ThinkPad Wiki baterie.
Já používám distribuci Mageia, takže návod bude primárně pro ní. Prvně jsem zkompilovat modul acpi_call. Po jeho zavedení jsem mohl nastavit vybíjení a nabíjení baterie ovládat skriptem tpbat-utils-acpi.
Skript a modul však není vůbec potřeba. Stačí doinstalovat utilitu tlp z balíčku tlp.
Tím do systému doinstalujete démona, který umožňuje konfigurovat power-management periferií včetně baterie.
Následujícím příkazem můžete vypsat aktuální stav baterie:
tlp-stat -bVýpis pam může vypadat například takto:
--- TLP 1.2.2 -------------------------------------------- +++ Battery Features: Charge Thresholds and Recalibrate natacpi = active (data, thresholds) tpacpi-bat = inactive (kernel module 'acpi_call' not installed) tp-smapi = inactive (ThinkPad not supported) +++ ThinkPad Battery Status: BAT0 (Main / Internal) /sys/class/power_supply/BAT0/manufacturer = SMP /sys/class/power_supply/BAT0/model_name = 00HW029 /sys/class/power_supply/BAT0/cycle_count = (not supported) /sys/class/power_supply/BAT0/energy_full_design = 52060 [mWh] /sys/class/power_supply/BAT0/energy_full = 46360 [mWh] /sys/class/power_supply/BAT0/energy_now = 30520 [mWh] /sys/class/power_supply/BAT0/power_now = 0 [mW] /sys/class/power_supply/BAT0/status = Unknown (threshold effective) /sys/class/power_supply/BAT0/charge_start_threshold = 60 [%] /sys/class/power_supply/BAT0/charge_stop_threshold = 80 [%] Charge = 65.8 [%] Capacity = 89.1 [%] +++ Recommendations * Install acpi_call kernel module for ThinkPad battery recalibrationProgram tlp má konfigurace je v souboru:
/etc/default/tlp
,
kde pro nastavení vybíjení a nabíjení baterie stačí odkomentovat řádky:
START_CHARGE_THRESH_BAT0=55 STOP_CHARGE_THRESH_BAT0=80a případně jím dát hodnotu dle vlastní volby. Hodnotu můžete ručně získat nebo nastavit zapsáním do souborů:
/sys/class/power_supply/BAT0/charge_start_threshold /sys/class/power_supply/BAT0/charge_stop_threshold
Další
Na notebooku Thinkpad X1 carbon mě zatím pozlobila pouze jedna věc: při přehrávání videa se objevovalo problikávání obrazu. Pomohlo upravit nastavení compositoru. V KDE nastavení jsem změnil vykreslování z opengl na xrandr .
Odkazy
Skriptu, který modem EM7455
připojí k Internetu
Slajdy: QMI, MBIM moderní modemy v Linuxu
návodu ThinkPad EM7455 flash firmware.
Stažení firmware pro LTE modem EM7455
Zdroje
Github repozitář a informace o nastavení modemu
Sierra
mbimcli
mbim-network
how-to-set-up-a-simple-data-connection-over-the-mbim-interface-using-libmbim-and-driver-cdc-mbim-in-linux
AT
příkazy a modem EM7455
Další zajímavé odkazy
3g-4g-modems raspberry-pi-sierra-wireless-mc7304-modem-qmi-interface-setup
Skript swi_setusbcomp.pl, který komunikuje s
binárně s modem
Skript pro ThinkPad X220, který
nastavuje modem
Modem Sierra EM7455 a NetworkManager
Články na podobné téma
VMware vs Proxmox: porovnání výkonu
GitLab CI/CD: automatizace testů a nasazení aplikace
Migrace VPS z VMware na Proxmox
Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linux: Logical Volume Management
Linuxový softwarový RAID
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Příprava linuxového serveru pro běh webové aplikace v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux
Odběr novinek
Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k
odběru novinek.
+