On 20/12/12(Thu) 22:33, Paul Stoeber wrote:
> On Thu, 20 Dec 2012 21:55:07 +0000
> Stuart Henderson <[email protected]> wrote:
> > On 2012/12/20 21:44, Paul Stoeber wrote:
> > > I have a USB device, a "Siemens SL-2-141-I" DSL router.
> > > By default, the urndis driver tries to handle it but fails.
> > > When I disable urndis, the cdce driver handles it and
> > > I have internet.
> > 
> > Please pkg_add usbutils and send "lsusb -v" output.
> 
> Bus 001 Device 002: ID 069a:0316 Askey Computer Corp. 
> Device Descriptor:
 [...]
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         2 Communications
>       bInterfaceSubClass      2 Abstract (modem)
>       bInterfaceProtocol    255 Vendor Specific (MSFT RNDIS?)
 [...]
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         2 Communications
>       bInterfaceSubClass      6 Ethernet Networking
>       bInterfaceProtocol      0 

Your device has two configurations with interfaces that respectively
match urndis(4) and cdce(4).

I think that the problem you are seeing is a regression introduced by
the revision 1.34 of /sys/dev/usb/if_urndis.c

I don't know right now what solution we should adopt to fix this but
I've some suggestions:

1/ make your device works with urndis(4), but I don't know if it is doable

2/ support more than one configuration driver per USB Device, that's
   require a lot of work but should be a long term goal IMHO.

3/ change the USB probe & attach logic to not necessarily use the first
   configuration and return a low value if we match against vendor
   specific protocol in urndis(4).

I'll try to work on 3 if nobody comes with a better idea, thanks for the
report.

Martin

Reply via email to