LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Laptop and Netbook (https://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/)
-   -   Built-in LTE pci modem on HP EliteBook 850 G5 not recognized under arch linux (https://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/built-in-lte-pci-modem-on-hp-elitebook-850-g5-not-recognized-under-arch-linux-4175633493/)

pkl 07-07-2018 08:09 AM

Built-in LTE pci modem on HP EliteBook 850 G5 not recognized under arch linux
 
I'm trying to run LTE modem on HP EliteBook 850 G5. But seems that it's not recognized by the system. I got a message from modem manager:

Quote:

ModemManager[417]: <info> Couldn't check support for device '/sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0': not supported by any plugin
ModemManager[417]: <info> Couldn't check support for device '/sys/devices/pci0000:00/0000:00:1f.6': not supported by any plugin
Code:

$ sudo systemctl status ModemManager.service
● ModemManager.service - Modem Manager
    Loaded: loaded (/usr/lib/systemd/system/ModemManager.service; enabled; vendor preset: disabled)
    Active: active (running) since Fri 2018-07-06 19:43:46 CEST; 1h 44min ago
Main PID: 417 (ModemManager)
Tasks: 3 (limit: 4915)
    Memory: 6.8M
    CGroup: /system.slice/ModemManager.service
      └─417 /usr/bin/ModemManager

systemd[1]: Starting Modem Manager...
ModemManager[417]: <info>  ModemManager (version 1.8.0) starting in system bus...
systemd[1]: Started Modem Manager.
ModemManager[417]: <info>  Couldn't check support for device '/sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0': not supported by any plugin
ModemManager[417]: <info>  Couldn't check support for device '/sys/devices/pci0000:00/0000:00:1f.6': not supported by any plugin

$ uname -r
4.17.2-1-ARCH

$ udevadm info -a -p /sys/class/pci_bus/0000:01
looking at device '/devices/pci0000:00/0000:00:1c.0/pci_bus/0000:01':
  KERNEL=="0000:01"
  SUBSYSTEM=="pci_bus"
  DRIVER==""
  ATTR{cpuaffinity}=="ff"
  ATTR{cpulistaffinity}=="0-7"

looking at parent device '/devices/pci0000:00/0000:00:1c.0':
  KERNELS=="0000:00:1c.0"
  SUBSYSTEMS=="pci"
  DRIVERS=="pcieport"
  ATTRS{ari_enabled}=="0"
  ATTRS{broken_parity_status}=="0"
  ATTRS{class}=="0x060400"
  ATTRS{consistent_dma_mask_bits}=="32"
  ATTRS{current_link_speed}=="2.5 GT/s"
  ATTRS{current_link_width}=="1"
  ATTRS{d3cold_allowed}=="1"
  ATTRS{device}=="0x9d13"
  ATTRS{devspec}==""
  ATTRS{dma_mask_bits}=="32"
  ATTRS{driver_override}=="(null)"
  ATTRS{enable}=="1"
  ATTRS{irq}=="19"
  ATTRS{local_cpulist}=="0-7"
  ATTRS{local_cpus}=="ff"
  ATTRS{max_link_speed}=="8 GT/s"
  ATTRS{max_link_width}=="1"
  ATTRS{msi_bus}=="1"
  ATTRS{numa_node}=="-1"
  ATTRS{revision}=="0xf1"
  ATTRS{secondary_bus_number}=="1"
  ATTRS{subordinate_bus_number}=="1"
  ATTRS{subsystem_device}=="0x83b2"
  ATTRS{subsystem_vendor}=="0x103c"
  ATTRS{vendor}=="0x8086"

looking at parent device '/devices/pci0000:00':
  KERNELS=="pci0000:00"
  SUBSYSTEMS==""
  DRIVERS==""

Any idea how to make it working?

ferrari 07-08-2018 02:45 AM

It would be more useful to show us the device chipset and any driver that might be loaded
Code:

/sbin/lspci -nnk
For a USB-connected device, use the following instead
Code:

usb-devices

ferrari 07-08-2018 03:04 AM

A bit of online searching, and I found the following blog which might be helpful to you...
https://toreanderson.github.io/2017/...inux-ipv6.html

Essentially a matter of adding some udev rules (eg /etc/udev/rules.d/hp-lt4132.rules) to configure the device so that ModemManager can then use it...
Code:

ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="a31d", ATTR{bConfigurationValue}!="3", ATTR{bConfigurationValue}:="0"
ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="a31d", ATTR{bConfigurationValue}!="3", RUN+="/bin/sh -c 'sleep 1; echo 3 > %S%p/bConfigurationValue'"
ACTION=="add|change", SUBSYSTEM=="net", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="a31d", ATTR{cdc_ncm/ndp_to_end}=="N", ATTR{cdc_ncm/ndp_to_end}:="Y"

The author claims that a new version of usb_modem manager should be able to support it out of the box...
http://www.draisberghof.de/usb_modes...p=18195#p18195

Hope this helps.

FWIW, those with a LT4120 device (eg similar model EliteBooks) the udev rules mentioned here might be of value...
https://github.com/borovsky/x5-snapd...p-lt4120.rules

pkl 07-08-2018 03:04 AM

I'm very grateful for your attention.

Code:

$ sudo /sbin/lspci -nnk
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5914] (rev 08)
        Subsystem: Hewlett-Packard Company Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [103c:83b2]
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07)
        Subsystem: Hewlett-Packard Company UHD Graphics 620 [103c:83b2]
        Kernel driver in use: i915
        Kernel modules: i915
00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 08)
        Subsystem: Hewlett-Packard Company Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [103c:83b2]
        Kernel driver in use: proc_thermal
        Kernel modules: processor_thermal_device
00:13.0 Non-VGA unclassified device [0000]: Intel Corporation Sunrise Point-LP Integrated Sensor Hub [8086:9d35] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP Integrated Sensor Hub [103c:83b2]
        Kernel driver in use: intel_ish_ipc
        Kernel modules: intel_ish_ipc
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP USB 3.0 xHCI Controller [103c:83b2]
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP Thermal subsystem [103c:83b2]
        Kernel driver in use: intel_pch_thermal
        Kernel modules: intel_pch_thermal
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP Serial IO I2C Controller [103c:83b2]
        Kernel driver in use: intel-lpss
        Kernel modules: intel_lpss_pci
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP Serial IO I2C Controller [103c:83b2]
        Kernel driver in use: intel-lpss
        Kernel modules: intel_lpss_pci
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP CSME HECI [103c:83b2]
        Kernel driver in use: mei_me
        Kernel modules: mei_me
00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:9d13] (rev f1)
        Kernel driver in use: pcieport
        Kernel modules: shpchp
00:1c.4 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 [8086:9d14] (rev f1)
        Kernel driver in use: pcieport
        Kernel modules: shpchp
00:1c.6 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #7 [8086:9d16] (rev f1)
        Kernel driver in use: pcieport
        Kernel modules: shpchp
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 [8086:9d18] (rev f1)
        Kernel driver in use: pcieport
        Kernel modules: shpchp
00:1f.0 ISA bridge [0601]: Intel Corporation Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D4E [8086:9d4e] (rev 21)
        Subsystem: Hewlett-Packard Company Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D4E [103c:83b2]
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP PMC [103c:83b2]
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP HD Audio [103c:83b2]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP SMBus [103c:83b2]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (4) I219-V [8086:15d8] (rev 21)
        Subsystem: Hewlett-Packard Company Ethernet Connection (4) I219-V [103c:83b2]
        Kernel driver in use: e1000e
        Kernel modules: e1000e
01:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)
        Subsystem: Intel Corporation Dual Band Wireless-AC 8265 [8086:0010]
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi
3b:00.0 Wireless controller [0d40]: Intel Corporation Device [8086:7360] (rev 01)
        Subsystem: Hewlett-Packard Company Device [103c:8337]
3c:00.0 Non-Volatile memory controller [0108]: Toshiba America Info Systems Device [1179:0116]
        Subsystem: Toshiba America Info Systems Device [1179:0001]
        Kernel driver in use: nvme

and for usb-devices

Code:

$ sudo /sbin/usb-devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh=12
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.17
S:  Manufacturer=Linux 4.17.2-1-ARCH xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=8087 ProdID=0a2b Rev=00.10
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#=0x0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#=0x1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

T:  Bus=01 Lev=01 Prnt=01 Port=07 Cnt=02 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=10 Prot=ff MxPS= 8 #Cfgs=  1
P:  Vendor=138a ProdID=00ab Rev=01.64
S:  SerialNumber=55d7b886c547
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#=0x0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)

T:  Bus=01 Lev=01 Prnt=01 Port=08 Cnt=03 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.01 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05c8 ProdID=0808 Rev=01.07
S:  Manufacturer=Generic
S:  Product=HP HD Camera
S:  SerialNumber=0001
C:  #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=01 Driver=uvcvideo
I:  If#=0x1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
I:  If#=0x2 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=01 Driver=uvcvideo
I:  If#=0x3 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 6
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=04.17
S:  Manufacturer=Linux 4.17.2-1-ARCH xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub


ferrari 07-09-2018 03:03 PM

From that output, no discernible mobile broadband device is present. This might be the case if the device is powered off for any reason. You can use rfkill to find the status, (which you may need to install first if it isn't already installed).

Code:

/usr/sbin/rfkill list
Anything reported as hard-blocked can only be enabled via a switch, button, key combo, or BIOS setting perhaps.

pkl 07-09-2018 03:21 PM

Code:

$ /usr/sbin/rfkill list                     
1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
9: hci0: Bluetooth
        Soft blocked: yes
        Hard blocked: no


michaelk 07-09-2018 05:03 PM

Quote:

3b:00.0 Wireless controller [0d40]: Intel Corporation Device [8086:7360] (rev 01)
Subsystem: Hewlett-Packard Company Device [103c:8337]
I agree with your other thread that this is your MODEM and that it isn't supported yet.

https://superuser.com/questions/1337...der-arch-linux

ferrari 07-09-2018 07:32 PM

I missed the PCI output, especially since the HP Elitebook specs talk about LT4120 and LT4132 device options, and usually I've seen these types of devices connected to the USB bus. Reviewing this thread though, I now concur with Michael's assessment about the PCI-connected device not being supported yet (no kernel driver loaded). It appears to be an Intel® XMM™ 7360 LTE device. Given time though, I expect such support to come. For now, using an external mobile broadband device is the best course of action.

pkl 07-10-2018 04:41 PM

I greatly appreciate your help. As you said, I have to be patient and wait for official support by kernel.

ferrari 07-10-2018 06:12 PM

If you're in the position to do so, I would look at investigating replacing this internal card with an LT4120 or LT4123 perhaps...

http://www8.hp.com/us/en/products/oa...ml?oid=9316614

FWIW, I found a discussion involving the 7360 chipset and some users mention that the card can be put into PCI or USB mode, based on some connected pins (or possibly via a Windows driver). For Linux/Android kernel support the device must be operating in USB mode. Windows 10 supports the device in PCI mode. However, the complication seems to be that the laptop vendors have whitelists (in the BIOS) to explicitly restrict the devices to those officially sanctioned by them, and this means the devices can't be used in USB mode...
https://forums.lenovo.com/t5/Linux-D...0/td-p/4067969

After reading this discussion through to the end, I'm not sure that Linux support will ever come, and choosing supported hardware is the only realistic option here.

e8669811 10-01-2018 09:08 AM

Disabling PCIE and enabling USB 3.0 with scotch tape.
 
Hello, I have an EliteBook 745 G5 with the same card, and after checking the pinout at: https://fccid.io/ZMOL860GL/User-Manu...3993200.iframe i tried to put scotch tape on the PCIE pins and plug the card again.

The problem is that the laptop says that the module is not allowed (why hp? life is complicated why do you make it even more complicated!!!).

Anyway, I did the following: I turned off the computer without the WWAN card. Then once the computer was on, I suspended it and I plugged in the WWAN card with the scotch tape in the PCIE pins.

The card was detected by network manager and seemed to work, but I was unable to connect successfully to the internet; nonetheless this proves that the card can be connected using USB 3.0.

To make this solution permanent, I should find a way to disable the card detection during the boot process, however, before wasting more time, I bought a Huawei (HP lt4132) card compatible with my laptop from ebay to try it before going radical and putting a switch next to the kensingston hole in order to choose when to power or not the card. There's also a pin near the VCC that in theory is used to fully disable the card when is pulled down, but, in my motherboard is directly soldered to the neighbouring VCC pins.

I don't like the fact that the module is directly attached to the PCIE, as I am more exposed to DMA attacks from the obscure baseband firmware. The Huawei card, in theory works with the USB interface only, but, Huawei is under the control of the mainland Chinese government (which undermines security and invades privacy).

As you can see, there's no easy solution for now as the options are very limited.

Previously I had a dell computer, and I could plug any card I wanted, the only reason I bought that HP was for the Ryzen 2700U Pro.

Hope this comment may help.

Zerginator 10-09-2018 05:13 AM

Quote:

Originally Posted by ferrari (Post 5876903)
Essentially a matter of adding some udev rules (eg /etc/udev/rules.d/hp-lt4132.rules) to configure the device so that ModemManager can then use it...
Code:

ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="a31d", ATTR{bConfigurationValue}!="3", ATTR{bConfigurationValue}:="0"
ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="a31d", ATTR{bConfigurationValue}!="3", RUN+="/bin/sh -c 'sleep 1; echo 3 > %S%p/bConfigurationValue'"
ACTION=="add|change", SUBSYSTEM=="net", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="a31d", ATTR{cdc_ncm/ndp_to_end}=="N", ATTR{cdc_ncm/ndp_to_end}:="Y"


Using these udev rules works perfect for the LT4132. Unfortunately only after fresh boot. If I suspend my computer, the modem is initialized in mode3 again, because it was without power in suspend mode, but is not reinitialized to mode 1, as the computer is resuming from where it was.

Is there any workaround for that?

ferrari 10-09-2018 02:01 PM

Perhaps resetting the USB bus upon resume might be sufficient here. Some experimentation probably required to incorporate into a resume script.

Some examples...
https://askubuntu.com/questions/645/...e-command-line
https://enc.com.au/2014/02/14/resetting-usb-devices/
https://superuser.com/questions/1419...ng-it-in-linux

AwesomeMachine 10-09-2018 07:38 PM

See this regarding BIOS whitelists: https://www.linuxquestions.org/quest...rs-4175640056/

Zerginator 10-10-2018 04:41 AM

Found a perfect solution.

The udev rules are not needed anymore.
usb_modeswitch actually supports HP lt4132, but somehow it is not configured to be used.

So it was sufficient to edit /lib/udev/rules.d/40-usb_modeswitch.rules
by adding the following lines:

#HP lt4132
ATTR{idVendor}==“03f0”, ATTR{idProduct}==“a31d”, RUN+=“usb_modeswitch ‘/%k’”

Now the modem activated perfectly after reboot/suspend.


All times are GMT -5. The time now is 09:53 PM.