[CentOS] udev and mobile broadband

Thu May 31 17:12:27 UTC 2012
Jure Pečar <pegasus at nerv.eu.org>

Hello,

I have a strong suspicion that something is not working right on my el6 laptop. 

I have a usb 3g dongle that works fine on windows and ubuntu. It's one of those ZTE dual-personality devices (usb id 19d2:2000). When it's plugged in, it appears as usb storge device, then needs to be ejected, then it appears as usb modem with few serial ports.

This is handled properly by udev on ubuntu, however when I plug the thing into el6, nothing happens. I don't even get an usb storage device:

kernel: usb 2-1.2: New USB device found, idVendor=19d2, idProduct=2000
kernel: usb 2-1.2: New USB device strings: Mfr=3, Product=2, SerialNumber=4
kernel: usb 2-1.2: Product: ZTE WCDMA Technologies MSM
kernel: usb 2-1.2: Manufacturer: ZTE,Incorporated
kernel: usb 2-1.2: SerialNumber: P680A1ZTED010000
kernel: usb 2-1.2: configuration #1 chosen from 1 choice
kernel: scsi34 : SCSI emulation for USB Mass Storage devices
usb_modeswitch: switching 19d2:2000 (ZTE,Incorporated: ZTE WCDMA Technologies MSM)

And it just sits there. 

What I need to do to make it appear as usb-storage is run some virtualbox vm, attach this device to it, detach it and then it pops up on gnome desktop with these messages:

kernel: usb 2-1.2: reset high speed USB device using ehci_hcd and address 22
kernel: scsi35 : SCSI emulation for USB Mass Storage devices
kernel: scsi 35:0:0:0: CD-ROM  ZTE  USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2
kernel: sr1: scsi-1 drive
kernel: sr 35:0:0:0: Attached scsi generic sg2 type 5

Only now I have a handle that I can umount (/dev/sr1), either via cli or via gui.

Then the magic I seek happens:

kernel: usb 2-1.2: new high speed USB device using ehci_hcd and address 23
kernel: usb 2-1.2: New USB device found, idVendor=19d2, idProduct=0016
kernel: usb 2-1.2: New USB device strings: Mfr=3, Product=2, SerialNumber=4
kernel: usb 2-1.2: Product: ZTE WCDMA Technologies MSM
kernel: usb 2-1.2: Manufacturer: ZTE,Incorporated
kernel: usb 2-1.2: SerialNumber: P680A1ZTED010000
kernel: usb 2-1.2: configuration #1 chosen from 1 choice
kernel: scsi36 : SCSI emulation for USB Mass Storage devices
kernel: usbcore: registered new interface driver usbserial
kernel: USB Serial support registered for generic
kernel: usbcore: registered new interface driver usbserial_generic
kernel: usbserial: USB Serial Driver core
kernel: USB Serial support registered for GSM modem (1-port)
kernel: option 2-1.2:1.0: GSM modem (1-port) converter detected
kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB0
kernel: option 2-1.2:1.1: GSM modem (1-port) converter detected
kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB1
kernel: option 2-1.2:1.2: GSM modem (1-port) converter detected
kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB2
kernel: usbcore: registered new interface driver option
kernel: option: v0.7.2:USB Driver for GSM modems
logger: usb_modeswitch: adding device ID 19d2/16/0: to driver "option"
modem-manager: (ttyUSB1) opening serial device...
modem-manager: (ttyUSB2) opening serial device...
modem-manager: (ttyUSB0) opening serial device...
etc.

And the thing works.

I wonder why ubuntu does this automatically and why el6 fails to do so. I've compared some udev files like 77-mm-zte-port-types.rules and 61-mobile-action.rules and they are esentially the same. So the difference must be somewhere else. Does anyone know off hand it or do I have to dig in to find it?


-- 

Jure Pečar
http://jure.pecar.org
http://f5j.eu