Skip to contentSkip to conversation

ACM USB modem on Kernel 2.6.0-test

DISCUSSION Peter Matthias 2 participants 6 messages Oct 12, 2003 – Oct 20, 2003 3 messages not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
Quoted 9 lines · David Brownell
Quoted 3 lines

usb 3-3: configuration #1 chosen from 2 choices drivers/usb/class/cdc-acm.c: need inactive config #2 drivers/usb/class/cdc-acm.c: need inactive config #2

Until we get more intelligence somewhere, do this:

    # cd /sys/bus/usb/devices/3-3
    # echo '2' > bConfigurationValue
    #

Sound good, but I don't have /sys/ (nor do I have /proc/sys/bus/) with the OHCI driver.

Peter

#2 lore raw
Quoted 2 lines · Peter Matthias

Sound good, but I don't have /sys/ (nor do I have /proc/sys/bus/) with the OHCI driver.

You're using 2.6.0-test7, so you have sysfs in the kernel. Do this:

mkdir /sys
mount none /sys -t sysfs

-- Jamie

#3 lore raw
In reply to a message not in the archive
Quoted 9 lines · David Brownell
Quoted 3 lines

usb 3-3: configuration #1 chosen from 2 choices drivers/usb/class/cdc-acm.c: need inactive config #2 drivers/usb/class/cdc-acm.c: need inactive config #2

Until we get more intelligence somewhere, do this:

    # cd /sys/bus/usb/devices/3-3
    # echo '2' > bConfigurationValue
    #

Thanks, it now works when I load the cdc-acm module after that.

Peter

#4 lore raw
In reply to a message not in the archive
Quoted 9 lines · David Brownell
Quoted 3 lines

usb 3-3: configuration #1 chosen from 2 choices drivers/usb/class/cdc-acm.c: need inactive config #2 drivers/usb/class/cdc-acm.c: need inactive config #2

Until we get more intelligence somewhere, do this:

    # cd /sys/bus/usb/devices/3-3
    # echo '2' > bConfigurationValue
    #

It works, but I get lots of theses warnings.

Peter

Badness in local_bh_enable at kernel/softirq.c:121

Call Trace:
 [<c011bf5d>] local_bh_enable+0x7d/0x80
 [<c0204984>] ppp_async_input+0x2f4/0x5a0
 [<c0203dcb>] ppp_asynctty_receive+0x4b/0x90
 [<c01def5f>] flush_to_ldisc+0x7f/0xd0
 [<df88d20f>] acm_read_bulk+0xbf/0x140 [cdc_acm]
 [<c023af59>] usb_hcd_giveback_urb+0x29/0x50
 [<c0248585>] dl_done_list+0xd5/0xe0
 [<c0248ea0>] ohci_irq+0xe0/0x150
 [<c023afb6>] usb_hcd_irq+0x36/0x60
 [<c010a9ca>] handle_IRQ_event+0x3a/0x70
 [<c010acb1>] do_IRQ+0x71/0xf0
 [<c010920c>] common_interrupt+0x18/0x20

Badness in local_bh_enable at kernel/softirq.c:121

Call Trace:
 [<c011bf5d>] local_bh_enable+0x7d/0x80
 [<c0203dd0>] ppp_asynctty_receive+0x50/0x90
 [<c01def5f>] flush_to_ldisc+0x7f/0xd0
 [<df88d20f>] acm_read_bulk+0xbf/0x140 [cdc_acm]
 [<c023af59>] usb_hcd_giveback_urb+0x29/0x50
 [<c0248585>] dl_done_list+0xd5/0xe0
 [<c0248ea0>] ohci_irq+0xe0/0x150
 [<c023afb6>] usb_hcd_irq+0x36/0x60
 [<c010a9ca>] handle_IRQ_event+0x3a/0x70
 [<c010acb1>] do_IRQ+0x71/0xf0
 [<c010920c>] common_interrupt+0x18/0x20

A message that is not in the archive (sent off-list or not yet received): [email protected]

#6 lore raw
Quoted 10 lines · David Brownell
Quoted 5 lines · David Brownell

Hmm ... maybe usbcore would be better off with a less naive algorithm for choosing defaults. Like, preferring configurations without proprietary device protocols. That'd solve every cdc-acm case, and likely others.

In fact, here's a patch with that very change. Does it make current 2.6.0-test kernels work "out of the box" again with your USB modems?

Yes, it works with ELSA Microlink USB. Thanks.

Peter

A message that is not in the archive (sent off-list or not yet received): [email protected]

#8 lore raw
Quoted 7 lines · David Brownell
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

In fact, here's a patch with that very change. Does it make current 2.6.0-test kernels work "out of the box" again with your USB modems?

Yes, it works with ELSA Microlink USB. Thanks.

Hmm. Too early. I get either a "acm: probe of 3-3:2.1 failed with error

-5"

Quoted 2 lines
Quoted 2 lines

but it works or a

Unable to handle kernel NULL pointer dereference at virtual address

00000008

Quoted 11 lines
Quoted 3 lines

...
EIP: 0060:[usb_driver_claim_interface+67/112] Tainted: P
...

Well, the "it works at all (without the sysfs write)" is what that patch was about -- so it's still a clear win!

But cdc-acm probe() is pretty broken, and I'm told it's had strange behavior in various other cases for a while, including some oopsing. Like this; not a new bug.

Quoted 6 lines

Try this cdc-acm patch. One user reported that it made oopsing go away, the bogus probe() errors stopped, and even the /proc/bus/usb/devices listings were finally right (both interfaces now claimed by cdc_acm). Plus it should stop the pointless hotplugging of "cdc_acm" for Ethernet devices (including MSFT's RNDIS).

Yes, it works. I hope it will be integrated in 2.6.0.

Peter