From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philippe Bertin Date: Thu, 24 Jul 2003 18:55:54 +0000 Subject: Is my hotplug configuration not OK for CDCEther when connecting my Ethernet device over USB ? MIME-Version: 1 Content-Type: multipart/mixed; boundary="------------090308060109040006010607" Message-Id: List-Id: To: linux-hotplug@vger.kernel.org This is a multi-part message in MIME format. --------------090308060109040006010607 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit 'Llo All, I have been using CDCEther recently, a device driver that is to be driving CDC- devices (over USB, that is). It should be working (as a design goal) with a standard Linux host. However, up to now I only get it working in around 5 percent of the cases. At first, I thought that it was due to the CDCEther- module that my device didn't get started. But in the running of my tests, I've started suspecting my hotplug configuration. When it works OK (like I said, in around 5 percent of the cases), I get a log like in attachment 1 (log_OK). When it does not work, I get a log like in attachment 2 (log_NOT_OK). What is happening, is that my Linux CDC host driver (i.e. CDCEther) does (most of the times) not come to the point of sending the USB- command 'Set Interface 1, Alternate 1'. This is needed before my CDC- device can start sending/receiving Ethernet frames. I see that CDCEther correctly claims the USB- device (see the logs), but that's all. Because all descriptors are fetched by the host (I believe that's done by the USB- generic part of the kernel, not so ?), and they are correctly answered by my device. But at the point where the host should send 'Set Intf 1 Alt 0' which should after some time be succeeded by 'Set Intf 1 Alt 1', nothing happens. I have started thinking that the host only does this once he has been able to create an eth1- device (see the logs). IF the system comes to the point of finding the needed hotplug information (i.e., if there is not that bunch of hotplug- errors in the log), it looks like there is a valid eth1 created. But in the other case, I get a whole lot of errors in the log, and there is NO eth1- device created. In the good case, the CDCEther- driver selects Intf 1 Alt 1, and thus there can be network traffic (which I am still to debug, but then I'd at least have a working test configuration...) What is bothering me, is that it SOMETIMES works. Are there reasons to believe there are some timing issues involved here ? I am using SuSE linux 8.2, so kernel 2.4.20. I already tried the same with the new 2.6 standard kernel (using usbnet, the replacing module for the 2.4- kernel CDCEther module). But apart from having less debug information, the phenomenon remains the same. Thanks for any helpful answer, Kind regards, Philippe Bertin. P.S. I think that this newsgroup is the most feasable for my problem, unless ... linux-usb-devel or -users ? --------------090308060109040006010607 Content-Type: text/plain; name="log_OK" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="log_OK" Jul 24 10:32:38 bvwcltbp kernel: hub.c: new USB device 00:1f.2-2, assigned address 17 Jul 24 10:32:38 bvwcltbp kernel: usb.c: kmalloc IF c2cb73a0, numif 2 Jul 24 10:32:38 bvwcltbp kernel: usb.c: skipping descriptor 0x24 Jul 24 10:32:38 bvwcltbp last message repeated 2 times Jul 24 10:32:38 bvwcltbp kernel: usb.c: skipped 3 class/vendor specific endpoint descriptors Jul 24 10:32:38 bvwcltbp kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3 Jul 24 10:32:38 bvwcltbp kernel: usb.c: USB device number 17 default language ID 0x409 Jul 24 10:32:38 bvwcltbp kernel: Manufacturer: [correctly shown] Jul 24 10:32:38 bvwcltbp kernel: Product: [correctly shown] Jul 24 10:32:38 bvwcltbp kernel: SerialNumber: [correctly shown] Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Ethernet information found at device configuration. Trying to use it anyway. Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Found Header descriptor, CDC version 110. Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Imperfect filtering support - need sw hashing Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: Can't use SetEthernetMulticastFilters request Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: detected BULK OUT packets of size 64 Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: interrupt address: 1 Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: interrupt interval: 10 Jul 24 10:32:38 bvwcltbp kernel: usb.c: ignoring set_interface for dev 17, iface 0, alt 0 Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: eth1: [Manufacturer, Product ID and Ser Nr correctly shown] Jul 24 10:32:38 bvwcltbp kernel: CDCEther.c: eth1: [Eth MAC address correctly shown] Jul 24 10:32:38 bvwcltbp kernel: usb.c: CDCEther driver claimed interface c2cb73b8 Jul 24 10:32:38 bvwcltbp kernel: usb.c: CDCEther driver claimed interface c2cb73a0 Jul 24 10:32:38 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 17 Jul 24 10:32:38 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 17 Jul 24 10:32:38 bvwcltbp kernel: hub.c: port 1, portstatus 303, change 0, 1.5 Mb/s Jul 24 10:32:38 bvwcltbp kernel: hub.c: port 2, portstatus 103, change 0, 12 Mb/s Jul 24 10:32:42 bvwcltbp /etc/hotplug/usb.agent[7613]: writing usb-1-17 to /var/run/hotplug/net Jul 24 10:32:42 bvwcltbp /etc/hotplug/net.agent[7571]: Using HW description eth-usb-1-17 Jul 24 10:32:42 bvwcltbp kernel: CDCEther.c: eth1: set multicast filters Jul 24 10:32:42 bvwcltbp kernel: CDCEther.c: eth1: too many MC filters for hardware, using allmulti Jul 24 10:32:42 bvwcltbp last message repeated 4 times Jul 24 10:32:43 bvwcltbp /etc/hotplug/net.agent[7505]: No HW description found ... exiting Jul 24 10:32:45 bvwcltbp /etc/hotplug/usb.agent[7706]: writing usb-1-17 to /var/run/hotplug/net Jul 24 10:32:53 bvwcltbp kernel: eth1: no IPv6 routers present Jul 24 10:33:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:33:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:33:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:33:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:33:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:33:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:33:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:33:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:33:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:34:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:34:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:34:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:34:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:34:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:34:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:34:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:34:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:34:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:35:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:35:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:35:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:35:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:35:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:35:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:35:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:35:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:35:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:36:02 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:36:02 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:36:02 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:36:22 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:36:22 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:36:22 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:36:42 bvwcltbp kernel: NETDEV WATCHDOG: eth1: transmit timed out Jul 24 10:36:42 bvwcltbp kernel: CDCEther.c: eth1: Tx timed out. Jul 24 10:36:42 bvwcltbp kernel: CDCEther.c: eth1: TX status -104 Jul 24 10:37:00 bvwcltbp kernel: usb-uhci.c: interrupt, status 2, frame# 915 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: TX status -110 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: rx status -84 Jul 24 10:37:00 bvwcltbp kernel: CDCEther.c: eth1: RX status -84 --------------090308060109040006010607 Content-Type: text/plain; name="log_NOT_OK" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="log_NOT_OK" Jul 24 10:37:28 bvwcltbp kernel: hub.c: new USB device 00:1f.2-2, assigned address 18 Jul 24 10:37:28 bvwcltbp kernel: usb.c: kmalloc IF c2cb73a0, numif 2 Jul 24 10:37:28 bvwcltbp kernel: usb.c: skipping descriptor 0x24 Jul 24 10:37:28 bvwcltbp last message repeated 2 times Jul 24 10:37:28 bvwcltbp kernel: usb.c: skipped 3 class/vendor specific endpoint descriptors Jul 24 10:37:28 bvwcltbp kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3 Jul 24 10:37:28 bvwcltbp kernel: usb.c: USB device number 18 default language ID 0x409 Jul 24 10:37:28 bvwcltbp kernel: Manufacturer: ALCATEL Jul 24 10:37:28 bvwcltbp kernel: Product: SpeedTouch 500 Series Jul 24 10:37:28 bvwcltbp kernel: SerialNumber: 0090D05A60FF Jul 24 10:37:28 bvwcltbp kernel: usb.c: unhandled interfaces on device Jul 24 10:37:28 bvwcltbp kernel: usb.c: USB device 18 (vend/prod 0x6b9/0x4062) is not claimed by any active driver. Jul 24 10:37:28 bvwcltbp kernel: Length = 18 Jul 24 10:37:28 bvwcltbp kernel: DescriptorType = 01 Jul 24 10:37:28 bvwcltbp kernel: USB version = 1.10 Jul 24 10:37:28 bvwcltbp kernel: Vendor:Product = xxxx:yyyy Jul 24 10:37:28 bvwcltbp kernel: MaxPacketSize0 = 64 Jul 24 10:37:28 bvwcltbp kernel: NumConfigurations = 1 Jul 24 10:37:28 bvwcltbp kernel: Device version = 3.00 Jul 24 10:37:28 bvwcltbp kernel: Device Class:SubClass:Protocol = 02:00:00 Jul 24 10:37:28 bvwcltbp kernel: Communications class Jul 24 10:37:28 bvwcltbp kernel: Configuration: Jul 24 10:37:28 bvwcltbp kernel: bLength = 9 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 02 Jul 24 10:37:28 bvwcltbp kernel: wTotalLength = 0050 Jul 24 10:37:28 bvwcltbp kernel: bNumInterfaces = 02 Jul 24 10:37:28 bvwcltbp kernel: bConfigurationValue = 01 Jul 24 10:37:28 bvwcltbp kernel: iConfiguration = 00 Jul 24 10:37:28 bvwcltbp kernel: bmAttributes = c0 Jul 24 10:37:28 bvwcltbp kernel: MaxPower = 0mA Jul 24 10:37:28 bvwcltbp kernel: Jul 24 10:37:28 bvwcltbp kernel: Interface: 0 Jul 24 10:37:28 bvwcltbp kernel: Alternate Setting: 0 Jul 24 10:37:28 bvwcltbp kernel: bLength = 9 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 04 Jul 24 10:37:28 bvwcltbp kernel: bInterfaceNumber = 00 Jul 24 10:37:28 bvwcltbp kernel: bAlternateSetting = 00 Jul 24 10:37:28 bvwcltbp kernel: bNumEndpoints = 01 Jul 24 10:37:28 bvwcltbp kernel: bInterface Class:SubClass:Protocol = 02:06:00 Jul 24 10:37:28 bvwcltbp kernel: iInterface = 00 Jul 24 10:37:28 bvwcltbp kernel: Endpoint: Jul 24 10:37:28 bvwcltbp kernel: bLength = 7 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 05 Jul 24 10:37:28 bvwcltbp kernel: bEndpointAddress = 81 (in) Jul 24 10:37:28 bvwcltbp kernel: bmAttributes = 03 (Interrupt) Jul 24 10:37:28 bvwcltbp kernel: wMaxPacketSize = 0008 Jul 24 10:37:28 bvwcltbp kernel: bInterval = 0a Jul 24 10:37:28 bvwcltbp kernel: Jul 24 10:37:28 bvwcltbp kernel: Interface: 1 Jul 24 10:37:28 bvwcltbp kernel: Alternate Setting: 0 Jul 24 10:37:28 bvwcltbp kernel: bLength = 9 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 04 Jul 24 10:37:28 bvwcltbp kernel: bInterfaceNumber = 01 Jul 24 10:37:28 bvwcltbp kernel: bAlternateSetting = 00 Jul 24 10:37:28 bvwcltbp kernel: bNumEndpoints = 00 Jul 24 10:37:28 bvwcltbp kernel: bInterface Class:SubClass:Protocol = 0a:00:00 Jul 24 10:37:28 bvwcltbp kernel: iInterface = 00 Jul 24 10:37:28 bvwcltbp kernel: Alternate Setting: 1 Jul 24 10:37:28 bvwcltbp kernel: bLength = 9 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 04 Jul 24 10:37:28 bvwcltbp kernel: bInterfaceNumber = 01 Jul 24 10:37:28 bvwcltbp kernel: bAlternateSetting = 01 Jul 24 10:37:28 bvwcltbp kernel: bNumEndpoints = 02 Jul 24 10:37:28 bvwcltbp kernel: bInterface Class:SubClass:Protocol = 0a:00:00 Jul 24 10:37:28 bvwcltbp kernel: iInterface = 00 Jul 24 10:37:28 bvwcltbp kernel: Endpoint: Jul 24 10:37:28 bvwcltbp kernel: bLength = 7 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 05 Jul 24 10:37:28 bvwcltbp kernel: bEndpointAddress = 04 (out) Jul 24 10:37:28 bvwcltbp kernel: bmAttributes = 02 (Bulk) Jul 24 10:37:28 bvwcltbp kernel: wMaxPacketSize = 0040 Jul 24 10:37:28 bvwcltbp kernel: bInterval = 00 Jul 24 10:37:28 bvwcltbp kernel: Endpoint: Jul 24 10:37:28 bvwcltbp kernel: bLength = 7 Jul 24 10:37:28 bvwcltbp kernel: bDescriptorType = 05 Jul 24 10:37:28 bvwcltbp kernel: bEndpointAddress = 85 (in) Jul 24 10:37:28 bvwcltbp kernel: bmAttributes = 02 (Bulk) Jul 24 10:37:28 bvwcltbp kernel: wMaxPacketSize = 0040 Jul 24 10:37:28 bvwcltbp kernel: bInterval = 00 Jul 24 10:37:28 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 18 Jul 24 10:37:28 bvwcltbp kernel: usb.c: kusbd: /sbin/hotplug add 18 Jul 24 10:37:28 bvwcltbp kernel: hub.c: port 1, portstatus 303, change 0, 1.5 Mb/s Jul 24 10:37:28 bvwcltbp kernel: hub.c: port 2, portstatus 103, change 0, 12 Mb/s Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 80 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2aeb8e0, burb c2ea06c0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp kernel: usb-uhci.c: ENXIO 80001280, flags 0, urb c2ea06c0, burb c2aeb8e0 Jul 24 10:37:31 bvwcltbp kernel: usbdevfs: USBDEVFS_CONTROL failed dev 18 rqt 128 rq 6 len 9 ret -6 Jul 24 10:37:31 bvwcltbp /etc/hotplug/usb.agent[7919]: cannot get config descriptor 0, No such device or address (6) Jul 24 10:37:31 bvwcltbp last message repeated 6 times Jul 24 10:37:31 bvwcltbp /etc/hotplug/usb.agent[7918]: cannot get config descriptor 0, No such device or address (6) Jul 24 10:37:31 bvwcltbp last message repeated 5 times --------------090308060109040006010607-- ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel