HP hs3110 HSPA+ Mobile Broadband Module in HP ProBook 645 G2 not working

Hi,

Just installed Leap 42.2. After looking at lsusb, I can see that there is this broadband

##### lsusb #############################

Bus 001 Device 007: ID 8087:0a2a Intel Corp. 
Bus 001 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 03f0:521d Hewlett-Packard 
Bus 001 Device 003: ID 04ca:7053 Lite-On Technology Corp. 
Bus 001 Device 002: ID 0438:7900 Advanced Micro Devices, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

But in NetworkManager there is no Mobile Broadband entry…

Found this https://lists.freedesktop.org/archives/modemmanager-devel/2016-September/003449.html

but to tell the truth, I can not figure out how to patch (and what to put in) option module or how to work with the problem on AT port… :frowning:

Maybe here is some guru for wwan module who can help me?

Thank you!

I’m not sure that I can help much with this, but can you show us

usb-devices

*Just the output block pertaining to the mobile broadband device

I’m not sure it’s as simple as the following, but maybe worth a shot…did you try the udev rule mentioned here?
eg /etc/udev/rules.d/30-mobile-broadband.rules

ACTION=="add|change", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="12d1", ATTR{idProduct}=="15bb", ATTR{bNumConfigurations}=="3", ATTR{bConfigurationValue}!="3" ATTR{bConfigurationValue}=“3"

usb-devices output

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=02 Prot=01 MxPS=64 #Cfgs=  2
P:  Vendor=03f0 ProdID=521d Rev=00.01
S:  Manufacturer=Hewlett-Packard
S:  Product=HP hs3110 HSPA+ Mobile Broadband Device
C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=(none)
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=02 Driver=(none)
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=03 Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=02 Prot=07 Driver=(none)
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=05 Driver=(none)


No, I do not try this udev rule… I will try now and will post results…

PS: thank you for helping me…

Just did with your line and then replaced VID PID with my values. No go… But looking at usb-devices output I see that there is no driver for device. I think there should be something. Now witch module should I try to load?

Hi, it seems that your modem has been added to the 2.4 version of package usb_modeswitch-data.
You can find it in the “hardware” repository: search for it at openSUSE Software
and “Show unstable packages”. You may have to install a matching version of usb_modeswitch too.

Yes, that’s the reason I requested ‘usb-devices’ info.

I did find this kernel archive which describes some steps which may help get the device working

https://www.mail-archive.com/search?l=linux-usb@vger.kernel.org&q=subject:"03f0\%3A521d+Hewlett\-Packard"&o=newest&f=1

Although, some claim that they were able to get the device working via the usbserial driver, that won’t expose the QMI functionality that the device is capable of. Refer to this reply by Bjorn Mork) with a suggestion to first try

modprobe qmi_wwan
echo 03f0 521d  /sys/bus/usb/drivers/qmi_wwan/new_id
  • some further steps outlined there. It might be that the udev rule can be changed to reflect the desired configuration, and a recent ModemManager is required as well.

FWIW, this Mint post may also be of interest

https://forums.linuxmint.com/viewtopic.php?t=202487#p1055397

Dear Deano_ferrari,

Thank you very much for help. I installed Tumbleweed to have latest packages, also installed newest usb_modeswitch and usb_modeswitch-data. After that I did exactly what was written in Mint forum post. And bingo! I have working 3G! Now will try to do this with Leap. Just one question. How to make this to stay after reboot :slight_smile: ? Because after reboot it goes away…

This is a workaround designed to get your hardware functioning with the option driver to provide a basic level of support for this chipset. (AFAIU, it should be capable of 4G with qmi_wwan driver and correct config mode). Longterm, the chipset should be added to the driver explicitly and you could compile the driver from source to do this yourself. However, for now you could create a script containing the commands that you typed that gets executed at boot, then create a systemd service to have it run at boot…

Create /etc/systemd/system/huawei.service with


[Unit]
Description=Load driver for Huawei HS3110 
Before=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/huawei
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Create your /usr/bin/huawei bash script with the requisite commands.

Then do the following to get the new unit recognised, enabled (at boot), and start it

systemctl daemon-reload
systemctl enable huawei.service
systemctl start huawei.service

Sorry for being lame, but I am doing something wrong…

After “systemctl start huawei.service” I get error and modem do not work. If I go to “/usr/bin/” and execute script manually, modem starts to work…

In error there is something about “huawei.service failed because the control process exited with error code…”

Show (as root)

systemctl status huawei.service

and the script file too

Please enclose all output with CODE tags (refer to the # button in the editor).

Hi,

Sorry, took a while to reinstall Leap system.

script:

#!/bin/bash
modprobe option
echo "03f0 521d" > /sys/bus/usb-serial/drivers/option1/new_id
usb_modeswitch -H -v 03f0 -p 521d -s 10
wvdial 3G

error:

linux-hjwz:/usr/bin # systemctl status huawei.service
● huawei.service - Load driver for Huawei HS3110
   Loaded: loaded (/etc/systemd/system/huawei.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sk 2017-01-15 07:38:16 EET; 3min 44s ago
  Process: 4419 ExecStart=/usr/bin/huawei (code=exited, status=1/FAILURE)
 Main PID: 4419 (code=exited, status=1/FAILURE)

Sau 15 07:38:16 linux-hjwz huawei[4419]: y[02][16]2 -I -   Kx:
Sau 15 07:38:16 linux-hjwz huawei[4419]: A&[01]%:,2AT+CGDCONT=1,"IP","omnitel" Iy[02][16]3 [1a]H [1a]   KxR
Sau 15 07:38:16 linux-hjwz huawei[4419]: A'[01]%:-3
Sau 15 07:38:16 linux-hjwz huawei[4419]: ERROR
Sau 15 07:38:16 linux-hjwz huawei[4419]: H
Sau 15 07:38:16 linux-hjwz huawei[4419]: --> Bad init string.
Sau 15 07:38:16 linux-hjwz systemd[1]: huawei.service: Main process exited, code=exited, status=1/FAILURE
Sau 15 07:38:16 linux-hjwz systemd[1]: Failed to start Load driver for Huawei HS3110.
Sau 15 07:38:16 linux-hjwz systemd[1]: huawei.service: Unit entered failed state.
Sau 15 07:38:16 linux-hjwz systemd[1]: huawei.service: Failed with result 'exit-code'.


Ok, the error seems to be related to the wvdial command. I recommend removing it from your script as part of this troubleshooting exercise. Although I don’t have this device, I was able to start the custom service without error once I removed the wvdial command. My thinking is that the device is not initialised at the time the wvdial program runs. That could be automated with another service if desired, or maybe a delay inserted using the sleep command.

BTW, instead of using wvdial dialling utility to initiate the connection, you should be able to get NetworkManager to recognise the device and activate it. You need to make sure NM is running first, but after that you should be able to add a mobile broadband connection using the NM connection editor.

Strange thing happen. My modem is gone… Output of lsusb:

Bus 003 Device 005: ID 8087:0a2a Intel Corp. 
Bus 003 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 003 Device 003: ID 04ca:7053 Lite-On Technology Corp. 
Bus 003 Device 002: ID 0438:7900 Advanced Micro Devices, Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Will try to remove service and reboot…

Nothing happened after removing service and rebooting. Still no modem???

Went to bios to look for settings and maybe for some diagnostic and found setting: “wwan quick connect”. After switching it off and rebooting modem come back! I think that modem was switched off somehow when system was sleeping, and not woke up when system woke up. Of cause do not know if switching off mentioned option will help…

Just did suspend and modem come back…

BTW, instead of using wvdial dialling utility to initiate the connection, you should be able to get NetworkManager to recognise the device and activate it. You need to make sure NM is running first, but after that you should be able to add a mobile broadband connection using the NM connection editor.

No, modem do not work until I run wvdial… I can not make broadband connection using NM (I am on Gnome). Modem is there but I can not use it. After wvdial run I can add mobile broadband connection using the NM.

So, with only ‘wvdial’ removed from the script the huawei.service starts ok? Check the status again with

systemctl status huawei.service

As a test, you should be able to run ‘wvidal 3G’ manually once you’ve logged in.

To automate the dialling, you can try inserting a delay in your script like this

sleep 10
wvdial 3G

The delay value (in seconds) might have to be experimented with a bit.

Alternatively, create an autostart file so that the dialling utility runs a bit later when you login. The 3G device will be initialised by then. The exact method will depend on the desktop environment you’re using.

BTW, wvdial can be run as a regular user by following one of the methods given here:
https://wiki.archlinux.org/index.php/Wvdial#Using_suid