-- I'M STILL WORKING ON GETTING UPDATES WITH THIS --
I have an Alcatel X230D supplied by O2. It is a USB 3G modem.
It has the following credentials in lsusb:
Bus 003 Device 003: ID 1bbb:f017 T & A Mobile Phones
When tailing /var/log/syslog I see the the following:
usb 3-2: new high-speed USB device number 5 using xhci_hcd
usb 3-2: New USB device found, idVendor=1bbb, idProduct=f017
usb 3-2: New USB device strings: Mfr=3, Product=2, SerialNumber=4
usb 3-2: Product HSPA Data Card
usb 3-2: Manufacturer: USBModem
usb 3-2: SerialNumber: 1234567890ABCDEF
scsi9: usb-storage 3-2:1.0
mtp-probe: checking bus 3, device 5: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2
mtp-probe: bus: 3, device: 5 was not an MTP device
kernel: [xxxxx.xxxxxx] scsi 9:0:0:0: Direct-Access ALCATEL Mass Storage 2.31 PQ: 0 ANSI: 2
kernel: [xxxxx.xxxxxx] scsi 9:0:0:1: CD-ROM ALCATEL Mass Storage 2.31 PQ: 0 ANSI: 2
kernel: [xxxxx.xxxxxx] sd 9:0:0:0: Attached scsi generic sg1 type 0
kernel: [xxxxx.xxxxxx] sd 9:0:0:0: [sdb] Attached SCSI removable disk
kernel: [xxxxx.xxxxxx] sr0: scsi-1 drive
kernel: [xxxxx.xxxxxx] sr 9:0:0:1: Attached scsi CD-ROM sr0
kernel: [xxxxx.xxxxxx] sr 9:0:0:1: Attached scsi generic sg2 type 5
usb_modeswitch: switching device 1bbb:f017 on 003/005
I've tried following this suggestion: https://askubuntu.com/a/131331/212 which did nothing. I've tried using the "Binary Free" and the AMD64 versions of the script at http://www.sakis3g.org, both of which identify the "HSPA Data Card", and both state "Failed to connect."
I've turned on advanced logging in /etc/usb_modeswitch.conf (EnableLogging=1)
The pertinent details (I believe) are here:
Extracting config 1bbb:f017 from collection /usb/share/usb_modeswitch/configPack.tar.gz
config: TargetVendor set to 1bbb
config: TargetProduct set to 0017
Driver module is "option", ID path is /sys/bus/usb-serial/drivers/option1
! matched, now switching
Command to be run:
/usr/sbin/usb_modeswitch -I -W -D -s 20 -c /run/usb_modeswitch/current_cfg -u 1 -v 1bbb -p f017 2>&1
<SNIP>
* usb_modeswitch: handle USB devices with multiple modes
* Version 1.2.3 (C) Josua Dietze 2012
* Based on libusb0 (0.1.12 and above)
DefaultVendor= 0x1bbb
DefaultProduct= 0xf017
TargetVendor= 0x1bbb
TargetProduct= 0x0017
TargetClass= not set
TargetProductList=""
<SNIP>
Looking for target devices ...
searching devices, found USB ID 1bbb:f017
found matching vendor ID
No devices in target mode or class found
Looking for default devices ...
searching devices, found USB ID 1bbb:f017
found matching vendor ID
found matching product ID
adding device
Found device in default mode, class or configuration (1)
Accessing device 005 on bus 003
Skipping the check for the current configuration
using first interface: 0x00
Using endpoints 0x01 (out) and 0x81 (in)
<SNIP>
Looking for active driver ...
OK, driver found ("usb-storage")
OK, driver "usb-storage" detached
Setting up communication with interface 0
Using endpoint 0x01 for message sending
Trying to send message 1 to endpoint 0x01
OK, message successfully sent
Resetting response endpoint 0x81
Resetting message endpoint 0x01
Checking for mode switch (max. 20 times, once per second) ...
Searching for target devices ...
searching devices, found USB ID 1bbb:f017
found matching vendor ID
Searching for target devices ...
searching devices, found USB ID 1bbb:f017
found matching vendor ID
<SNIP>
Searching for target devices ...
searching devices, found USB ID 1bbb:f017
found matching vendor ID
No new devices in target mode or class found
Mode switch has failed. Bye.
I have noticed this entry: Alcatel X500 datacard won't recognize on ubuntu 12.04 using xhci which suggests that there may be an issue with xHCI, however, unlike this person, I am unable to disable xHCI in my bios on my Acer V5-171.
So.... I did some more digging after posting this, and found this link: http://www.draisberghof.de/usb_modeswitch/#contrib
I found a suitable Windows XP machine, ran the USB Sniff application mentioned in that page, and (eventually - I'll blog this at some point) got this data:
[196 ms] >>> URB 5 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 864fedf4 [endpoint 0x00000001]
TransferFlags = 00000002 (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = f7911184
TransferBufferMDL = 00000000
00000000: 55 53 42 43 78 56 34 12 01 00 00 00 80 00 06 06
00000010: f5 04 02 52 70 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
According to this walk-through: http://blogger.ziesemer.com/2008/10/alltel-um175al-usb-evdo-ubuntu.html you take the value from the PipeHandle endpoint, and that's the MessageEndpoint value (0x01) plus the long value after TransferBufferMDL which is the MessageContent.
This gives me a usb_modeswitch.conf entry of this:
DefaultVendor = 0x1bbb
DefaultProduct = 0xf017
MessageEndpoint = 0x01
MessageContent = 55534243785634120100000080000606f50402527000000000000000000000
However, running sudo usb_modeswitch -c usb_modeswitch.conf I get
Looking for default devices ...
found matching product ID
adding device
Found device in default mode, class or configuration (1)
Accessing device 023 on bus 003 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using first interface: 0x00
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("usb-storage")
OK, driver "usb-storage" detached
And there it stays...
OK... so it turns out, I might have jumped the gun a little.
I unpacked /usr/share/usb_modeswitch/configPack.tar.gz and updated 1bbb:f017 with the new settings. I unplugged and re-plugged the device, and while it took a little time to come up, eventually... it worked! So, I'll be filing a bug with the USB_ModeSwitch project to get this new message added to their distribution.
Update after submitting the bug to USB_ModeSwitch. Turns out all of the above is pointless. The existing config file does work, but you need to run it through a couple of times manually. I'm just waiting on feedback from the guys over at USB_ModeSwitch to get some ideas on fixing this up!
sudo usb_modeswitch -c usb_modeswitch.conf
while in the/etc
directory!