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
