Bug 533266 - hp 5310m: qcserial does not create /dev/ttyUSB0
Summary: hp 5310m: qcserial does not create /dev/ttyUSB0
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 13
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-11-05 20:03 UTC by Need Real Name
Modified: 2013-01-10 08:03 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-06-06 13:06:30 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Need Real Name 2009-11-05 20:03:58 UTC
I have a mobile broadband device:

# lsusb
Bus 001 Device 004: ID 03f0:241d Hewlett-Packard 

When I run modprobe qcserial, I don't get a ttyUSB0 device:
#  modprobe qcserial; ls -la /dev/ttyUSB*
ls: cannot access /dev/ttyUSB*: No such file or directory

# dmesg
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for Qualcomm USB modem
usbcore: registered new interface driver qcserial

I am guessing the identifier is missing from usbserial.c

# lsusb -v
Bus 001 Device 004: ID 03f0:241d Hewlett-Packard 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x03f0 Hewlett-Packard
  idProduct          0x241d 
  bcdDevice            0.02
  iManufacturer           3 Qualcomm Incorporated
  iProduct                2 HP un2420 Mobile Broadband Module
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          1 Qualcomm Configuration
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32

Comment 1 Need Real Name 2009-11-06 23:56:19 UTC
To the file:
 /etc/udev/rules.d/60-gobi.rules
I added the line:
 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="241d", RUN+="gobi_loader $env{DEVNAME} /lib/firmware/gobi"

To the file:
 ./rpmbuild/BUILD/kernel-2.6.31/linux-2.6.31.x86_64/drivers/usb/serial/qcserial.c
I added the line:
         {USB_DEVICE(0x03f0, 0x241d)},   /* HP Gobi device */
rebuilt the kernel module and loaded qcserial.

Still I get no /dev/ttyU* device.

If I manually create the device using mknod, I can run gobi_loader, but it hangs.
 mknod /dev/ttyUSB0 c 188 0

strace says:
chdir("/lib/firmware/gobi/")            = 0
open("amss.mbn", O_RDONLY)              = 4
fstat(4, {st_mode=S_IFREG|0755, st_size=11096116, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
write(3, "~", 1

Comment 2 Need Real Name 2009-11-08 21:57:19 UTC
With debug enabled I get:

# insmod ~/rpmbuild/BUILD/kernel-2.6.31/linux-2.6.31.x86_64/drivers/usb/serial/qcserial.ko debug=1
# dmesg
USB Serial support registered for Qualcomm USB modem
.. /linux-2.6.31.x86_64/drivers/usb/serial/qcserial.c: qcprobe
.. /linux-2.6.31.x86_64/drivers/usb/serial/qcserial.c: Num Interfaces = 1
.. /linux-2.6.31.x86_64/drivers/usb/serial/qcserial.c: This Interface = 1
usbcore: registered new interface driver qcserial

Which looks promising, except I never get a /dev/ttyUSB0 device so the udev rule doesn't trigger.

Comment 3 Bug Zapper 2009-11-16 15:10:25 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle.
Changing version to '12'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 4 Dan Williams 2009-11-26 03:33:46 UTC
It's probably best to take this upstream to the lkml, or possibly gregkh on linux-usb@.

Comment 5 Matthew Garrett 2010-02-15 20:38:51 UTC
The 241d is a Gobi 2000 device, so not handled by the current driver or gobi_loader. Patches to support this have just been sent.

Comment 6 Need Real Name 2010-06-06 07:39:30 UTC
(In reply to comment #5)
> The 241d is a Gobi 2000 device, so not handled by the current driver or
> gobi_loader. Patches to support this have just been sent.    

Are the patches in F13?

Comment 7 Matthew Garrett 2010-06-06 13:06:30 UTC
They are, yes. Sorry for not updating this!

Comment 8 Need Real Name 2010-06-06 13:47:46 UTC
Great, so NetworkManager should be able to work with it out.
Taking it there:
 https://bugzilla.gnome.org/show_bug.cgi?id=602979

Thanks.


Note You need to log in before you can comment on or make changes to this bug.