Is it reasonable to expect that Wake on LAN works if the target box is connected via a USB-to-ethernet adapter? One of my validation testers has a USB ethernet device that successfully wakes up Windows from hibernate (S4), but it doesn't work under Linux. Wake on LAN works fine with the hardwired ethernet port. USB remote wakeup from S3/S4 works fine with a USB keyboard. So I need to figure out if it's an issue with the kernel, their test suite, or the USB host controller. I've experimented with USB ethernet devices with the pegasus driver with no success. Here's what I've tried: 1. Connect the USB to ethernet adapter to the rootport under the xHCI (USB 3.0) host controller. (lsusb for the two devices I've tried is attached) 2. Enable remote wakeup for all devices (including the PCI host) by echoing 'enabled' to power/wakeup. (script for that attached) 3. Use ethtool to turn on WOL: sudo ethtool -s ethX wol g 4. Find the MAC address by running ifconfig and looking at the HWaddr field. 5. Verify with wireshark that I can see the Magic WOL packet when I run this command on another machine: sudo etherwake -i ethX macaddr 6. Suspend or hibernate the target machine, and then send the Magic WOL packet from a second machine. Am I missing any steps in testing this? Does WOL just not work for USB ethernet devices under Linux? Perhaps just the pegasus driver doesn't support WOL? Note that I can't currently test USB remote wakeup for any devices under the EHCI host controller on my Lenovo x230. For some reason, whenever I enable remote wakeup for the rate matching hub under the EHCI host, the system will immediately resume when I attempt to suspend it. Don't know why yet. Sarah Sharp
Attachment:
enable-usb-remote-wakeup.sh
Description: Bourne shell script
Bus 003 Device 013: ID 050d:0121 Belkin Components F5D5050 100Mbps Ethernet Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x050d Belkin Components idProduct 0x0121 F5D5050 100Mbps Ethernet bcdDevice 1.01 iManufacturer 1 ADMtek iProduct 2 USB To LAN Converter iSerial 3 0001 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 39 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 160mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 0 (Defined at Interface level) bInterfaceSubClass 0 bInterfaceProtocol 0 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 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Device Status: 0x0000 (Bus Powered)
Bus 003 Device 012: ID 07a6:8513 ADMtek, Inc. AN8513 Ethernet Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 255 bMaxPacketSize0 8 idVendor 0x07a6 ADMtek, Inc. idProduct 0x8513 AN8513 Ethernet bcdDevice 2.01 iManufacturer 1 USB iProduct 2 SMC2208USB/ETH iSerial 3 33D0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 39 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 160mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 1 bInterfaceProtocol 255 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 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Device Status: 0x0002 (Bus Powered) Remote Wakeup Enabled