Vodafone E3730 HSPA Express Data Card seems not to work at all in Kubuntu 18.04 LTS. How to fix this?
The card used to work. Frankly I don't remember if it worked in 18.04 LTS or in some earlier LTS version, but it did. In my current KDE Plasma in 18.04 LTS there are saved network settings that used to work. I expected them to kick in as soon as I insert the card but no; it's as if the card isn't there.
The SIM card was never removed and it should still work.
From the time it worked I remember no problems whatsoever. It probably worked almost out of the box. The hardware was recognized and I only had to set details like APN.
This information is printed on a sticker:
Vodafone Mobile Connect
HSPA Express Data Card
Designed in E.U. by Option
Made in Ireland by Option
QUALCOMM 3G CDMA
This is from
Bus 001 Device 006: ID 0af0:7301 Option
And this is from
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 6 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0af0 ProdID=7301 Rev=00.00 S: Manufacturer=Option N.V. S: Product=Globetrotter HSUPA Modem S: SerialNumber=Serial Number C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
Ubuntu 18.04.5 LTS \n \l
Linux whatever 4.15.0-121-generic #123-Ubuntu SMP Mon Oct 5 16:16:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
It seems the right driver for the device is
I learnt what
Several new USB devices have their proprietary Windows drivers onboard, most of them WWAN and WLAN dongles. When plugged in for the first time, they act like a flash storage and start installing the Windows driver from there. If the driver is installed, it makes the storage device disappear and a new device, mainly composite (e.g. with modem ports), shows up.
On Linux, in most cases the drivers are available as kernel modules, such as
option. However, the device initially binds to
usb_modeswitchcan then send a provided bulk message (most likely a mass storage command) to the device; this message has to be determined by analyzing the actions of the Windows driver.
I confirmed the packages
usb-modeswitch-data are installed. I believe they should work automatically. At least they seemingly used to work when my card used to work, without me knowing anything about
I noticed the device does not even act like a flash storage. In the output of
usb-devices (above) it states
Cls=08(stor.), which I believe indicates Base Class 08h (Mass Storage); but the driver is
none. No block device appears.
Then I found this answer and tried to adjust it to my hardware.
At first I created an empty file named
/etc/usb_modeswitch.d/. I removed and re-inserted the device. Then
usb-device gave me this:
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 7 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0af0 ProdID=7301 Rev=00.00 S: Manufacturer=Option N.V. S: Product=Globetrotter HSUPA Modem S: SerialNumber=Serial Number C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
The driver was
usb-storage and I could actually mount a newly created block device (
/dev/sr0 in my case) and see it contains a Windows driver. I think the empty file had prevented
usb_modeswitch from doing anything to the device.
Next I tried to run
sudo usb_modeswitch -v 0x0af0 -p 0x7301 --option-mode # or sudo usb_modeswitch -v 0x0af0 -p 0x7301 --option-mode -C 0xff
Any of the above commands printed output suggesting it worked, but the only change in the output of
usb-device was in this line:
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
This is what I had seen before I started to mess with
usb_modeswitch. It seems I managed to manually recreate what
usb_modeswitch had been doing automatically. My interpretation is the tool works only partially: it is able to remove the driver (
usb-storage changes to
none) but it doesn't switch the mode (
How to proceed from here? How to make the modem work?