3

-- 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!

4
  • +1: Using Ubuntu 12.04 32-bit and this worked by simply changing usb_modeswitch.conf and running sudo usb_modeswitch -c usb_modeswitch.conf while in the /etc directory! Jun 17, 2013 at 16:48
  • @avasopht can you confirm, did you run this after the usb_modeswitch has already run? From the looks of things, you need to run the usb_modeswitch twice to get the device recognised. Jun 18, 2013 at 8:34
  • I run it once, wait about 30 seconds and then the mobile broadband is made available. After that I was able to run the wizard and configure the connection. Jun 18, 2013 at 22:24
  • minor correction: As of August 2016, Sakis3G is available at sakis3g.com (.com , no .org as informed in this article)
    – user582758
    Aug 16, 2016 at 15:17

1 Answer 1

1

Just to clarify, it would appear that this device needs to be passed through usb_modeswitch twice. See here for details. There is currently no way to tell usb_modeswitch to run twice, so you need to do it manually for the second pass.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .