PDA

View Full Version : SLED 15 Qualcomm Snapdragon X7 LTE (Dell Latitude 7490)



jmanes
02-Apr-2019, 13:39
Hello all!

I am venturing into SUSE Linux and I am liking my stay so far. I have a Dell Latitude 7490 with a Qualcomm Snapdragon X7 LTE card installed. I have a Google Fi data-only SIM inserted and I'm trying to get things to work.

Now, I had this working somehow yesterday. After putting my device asleep and waking it back up, the device seems to have disappeared and I cannot get it to work again. Sadly, I don't know what exact steps I took to get it working in the first place as I was shotgun-debugging at that point (bad bad practice!).

I'll give you all some output of what I got.

From the command 'usb-devices' I was able to see my modem:


T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=413c ProdID=81c2 Rev=00.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=DW5811e Snapdragon™ X7 LTE
S: SerialNumber=LF83558196021024
C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=504mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#=12 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I: If#=13 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)


Within ModemManager (I have the service enabled via systemctl) I get the following status:


● ModemManager.service - Modem Manager
Loaded: loaded (/usr/lib/systemd/system/ModemManager.service; enabled; vendor preset: enabled)
Active: active (running)
Main PID: 1331 (ModemManager)
Tasks: 3 (limit: 4915)
CGroup: /system.slice/ModemManager.service
└─1331 /usr/sbin/ModemManager


Apr 02 06:53:44 linux-4er5 ModemManager[1331]: spawning new mbim-proxy (try 1)...
Apr 02 06:53:44 linux-4er5 ModemManager[1331]: [/dev/cdc-wdm0] Read max control message size from descriptors file: 4096
Apr 02 06:54:01 linux-4er5 ModemManager[1331]: <info> Creating modem with plugin 'Generic' and '1' ports
Apr 02 06:54:01 linux-4er5 ModemManager[1331]: <warn> Could not grab port (tty/ttyS4): 'Cannot add port 'tty/ttyS4', unhandled serial type'
Apr 02 06:54:01 linux-4er5 ModemManager[1331]: <warn> Couldn't create modem for device at '/sys/devices/pci0000:00/0000:00:16.3': Failed to find primary AT port
Apr 02 06:54:14 linux-4er5 ModemManager[1331]: proxy configuration failed: closed
Apr 02 06:54:14 linux-4er5 ModemManager[1331]: [/dev/cdc-wdm0] channel destroyed
Apr 02 06:54:14 linux-4er5 ModemManager[1331]: <info> Creating modem with plugin 'Dell' and '2' ports
Apr 02 06:54:14 linux-4er5 ModemManager[1331]: <warn> Could not grab port (usbmisc/cdc-wdm0): 'Cannot add port 'usbmisc/cdc-wdm0', unsupported'
Apr 02 06:54:14 linux-4er5 ModemManager[1331]: <warn> Couldn't create modem for device at '/sys/devices/pci0000:00/0000:00:14.0/usb2/2-2': Failed to find primary AT port


Seems odd! So I checked my installed modem devices with 'mmcli -L':


No modems were found.


At this point I am a bit at a loss. When I had it working, the modem showed up under mmcli as it should. It's almost like the device went into some low power state that screwed everything up. I have tried plugging in the laptop and rebooting the laptop while plugged in with no success.

For more info, here are some more outputs:
'lsusb':


Bus 002 Device 003: ID 413c:81c2 Dell Computer Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0c45:6717 Microdia
Bus 001 Device 004: ID 0a5c:5832 Broadcom Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


'lspci':


00:00.0 Host bridge: Intel Corporation Device 5914 (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Device 5917 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:15.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 (rev 21)
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:16.3 Serial controller: Intel Corporation Device 9d3d (rev 21)
00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #3 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-LM (rev 21)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
02:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)


'lshw -C network':


*-network
description: Wireless interface
product: Wireless 8265 / 8275
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlan0
version: 78
serial: 18:56:80:4c:89:98
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.12.14-150.14-default firmware=34.0.1 ip=192.168.10.236 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:124 memory:ec000000-ec001fff
*-network
description: Ethernet interface
product: Ethernet Connection (4) I219-LM
vendor: Intel Corporation
physical id: 1f.6
bus info: pci@0000:00:1f.6
logical name: eth0
version: 21
serial: e4:b9:7a:5c:fd:49
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.1-4 latency=0 link=no multicast=yes port=twisted pair
resources: irq:128 memory:ec200000-ec21ffff
*-network DISABLED
description: Ethernet interface
physical id: 2
logical name: wwan0
serial: 02:3d:4a:58:9b:f3
capabilities: ethernet physical
configuration: broadcast=yes driver=cdc_mbim driverversion=22-Aug-2005 firmware=CDC MBIM link=no multicast=yes


'rfkill list all':


0: dell-wifi: Wireless LAN
Soft blocked: no
Hard blocked: no
1: dell-bluetooth: Bluetooth
Soft blocked: yes
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no


'ls /dev/cdc*'


/dev/cdc-wdm0


Any help would be appreciated. Thanks!

jmanes
02-Apr-2019, 13:58
Hey I did a thing!

Ok so after some digging around, I started looking into the 'mbim-network' command. I already knew my modem was located at /dev/cdc-wdm0. I modified a config file at /etc/mbim-network.conf to contain the following options:



APN=h2g2
PROXY=yes


(note that h2g2 is specific to my carrier, look up your carrier's APN and use that instead)

After saving the config file, I ran

mbim-network /dev/cdc-wdm0 start

The command created a bunch of output:


Loading profile at /etc/mbim-network.conf...
APN: h2g2
APN auth protocol: unset
APN user: unset
APN password: unset
mbim-proxy: yes
Querying subscriber ready status 'mbimcli -d /dev/cdc-wdm0 --query-subscriber-ready-status --no-close --device-open-proxy'...
error: operation failed: Transaction timed out
[/dev/cdc-wdm0] Session not closed: TRID: '4'
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 4)
Querying registration state 'mbimcli -d /dev/cdc-wdm0 --query-registration-state --no-open=4 --no-close --device-open-proxy'...
[/dev/cdc-wdm0] Registration status: Network error: 'unknown' Register state: 'deregistered' Register mode: 'automatic' Available data classes: 'unknown' Current cellular class: 'gsm' Provider ID: 'unknown' Provider name: 'unknown' Roaming text: 'unknown' Registration flags: 'packet-service-automatic-attach' [/dev/cdc-wdm0] Session not closed: TRID: '6'
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 6)
Attaching to packet service with 'mbimcli -d /dev/cdc-wdm0 --attach-packet-service --no-open=6 --no-close --device-open-proxy'...
error: operation failed: NotInitialized
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 8)
Starting network with 'mbimcli -d /dev/cdc-wdm0 --connect=apn='h2g2' --no-open=8 --no-close --device-open-proxy'...
error: operation failed: NotInitialized
Network start failed
[/dev/cdc-wdm0] Session not closed: TRID: '10'
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 10)


After this, I restarted ModemManager via systemctl:


systemctl stop ModemManager
systemctl start ModemManager


Now my modem is working again! 'mmcli -L' lists the modem:


Found 1 modems:
/org/freedesktop/ModemManager1/Modem/0 [Dell] MBIM [413C:81C2]


And the status of ModemManager:


● ModemManager.service - Modem Manager
Loaded: loaded (/usr/lib/systemd/system/ModemManager.service; enabled; vendo>
Active: active (running) since Tue 2019-04-02 07:49:41 CDT; 3s ago
Main PID: 12594 (ModemManager)
Tasks: 4 (limit: 4915)
CGroup: /system.slice/ModemManager.service
└─12594 /usr/sbin/ModemManager

Apr 02 07:49:43 linux-4er5 ModemManager[12594]: [/dev/cdc-wdm0] Releasing 'dms'>
Apr 02 07:49:43 linux-4er5 ModemManager[12594]: [/dev/cdc-wdm0] Unregistered 'd>
Apr 02 07:49:43 linux-4er5 ModemManager[12594]: [/dev/cdc-wdm0] sending message>
Apr 02 07:49:43 linux-4er5 ModemManager[12594]: [/dev/cdc-wdm0] Received MBIM m>
Apr 02 07:49:44 linux-4er5 ModemManager[12594]: [/dev/cdc-wdm0] Releasing '(nul>
Apr 02 07:49:44 linux-4er5 ModemManager[12594]: <info> Modem /org/freedesktop/>
Apr 02 07:49:44 linux-4er5 ModemManager[12594]: <info> Modem /org/freedesktop/>
Apr 02 07:49:44 linux-4er5 ModemManager[12594]: <info> Modem /org/freedesktop/>
Apr 02 07:49:44 linux-4er5 ModemManager[12594]: <info> Modem /org/freedesktop/>
Apr 02 07:49:44 linux-4er5 ModemManager[12594]: <info> Modem /org/freedesktop/>


Now, I don't know why I need to do this after I wake the machine from sleep... but I'm going to do research and see if I can automate this or something. If anyone has a better solution please let me know.

jmanes
02-Apr-2019, 14:30
More info:

After waking from sleep, the modem was off. In order to get it started again I had to do the following

1. Execute the 'ip link set wwan0 up' command to turn on the interface.
2. Execute the 'mbim-network /dev/cdc-wdm0 start' command.
3. Toggle the Mobile Broadband setting to be on withing Gnome's Settings application under the Network section.

After performing these three steps on system wake, I can use the modem. I'm wondering if perhaps the modem is being disabled on sleep and then not woken up. I do have the tlp and tlp-sleep services installed and active. Will report back if I find out more.