Hi all, I'm migrating this conversation over from LKML as it is probably a kmod issue. I've just retried the scenario with kmod 18 (from OpenSUSE Factory) and can still confirm it. Please see below for details. On 2014-10-05 11:54, Hans de Goede wrote: > Hi, > > On 10/05/2014 11:48 AM, Jan Kiszka wrote: >> On 2014-10-05 11:43, Hans de Goede wrote: >>> Hi, >>> >>> On 10/05/2014 11:31 AM, Jan Kiszka wrote: >>>> On 2014-10-05 11:23, Hans de Goede wrote: >>>>> Hi, >>>>> >>>>> On 10/05/2014 11:14 AM, Jan Kiszka wrote: >>>>>> On 2014-10-05 11:08, Hans de Goede wrote: >>>>>>> Hi, >>>>>>> >>>>>>> On 10/04/2014 08:35 PM, Jan Kiszka wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> my Delock external USB drive stopped working after updating from a >>>>>>>> UAS-disabled distro kernel to latest 3.17-rc7 with UAS on. That UAS was >>>>>>>> key became clear to me only after looking at storage_probe(): the device >>>>>>>> is ignored by usb-storage if it is UAS-capable. However, nothing causes >>>>>>>> uas.ko to be loaded when the drive is plugged here. How is this supposed >>>>>>>> to work in the normal case? >>>>>>> >>>>>>> Is the uas.ko module installed, and was depmod run after installing it ? >>>>>> >>>>>> Definitely. Just retried after another depmod -a, and only modprobe uas >>>>>> made it work. >>>>>> >>>>>>> >>>>>>> uas.c has the following: >>>>>>> >>>>>>> { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, USB_SC_SCSI, USB_PR_BULK) }, >>>>>>> { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, USB_SC_SCSI, USB_PR_UAS) }, >>>>>>> >>>>>>> Which should make it load automatically on your device. >>>>>> >>>>>> Should this match with what lsusb -v reports for the device? >>>>> >>>>> Yes, and it does, for both alt settings of your device: >>>>> >>>>> bInterfaceClass 8 Mass Storage >>>>> bInterfaceSubClass 6 SCSI >>>>> bInterfaceProtocol 80 Bulk-Only >>>>> >>>>> bInterfaceClass 8 Mass Storage >>>>> bInterfaceSubClass 6 SCSI >>>>> bInterfaceProtocol 98 >>>>> >>>>> Where 98 == USB_PR_UAS, seems you have an quite old lsusb if it does not >>>> >>>> It says "007". >>>> >>>>> know that though. Could it be the rest of your userspace is old too, and is >>>>> not smart enough to load all matching drivers, instead only loading the first matching >>>>> driver (which happens to be usb-storage) ? >>>> >>>> OpenSUSE 13.1, all updates installed. Which components are involved? >>>> udev - Version 208? Below is the udevadm monitor output. >>> >>> Hmm, that is not all that old, I would expect that to work. >>> >>> Here is how things "work" on my system: >>> >>> [hans@shalem ~]$ lsmod | grep uas >>> uas 22414 0 >>> usb_storage 65065 1 uas >>> [hans@shalem ~]$ sudo rmmod uas >>> [hans@shalem ~]$ lsmod | grep uas >>> [hans@shalem ~]$ sudo modprobe usb:v174Cp5136d0100dc00dsc00dp00ic08isc06ip50in00 >>> [hans@shalem ~]$ lsmod | grep uas >>> uas 22414 0 >>> usb_storage 65065 1 uas >>> >>> So as you can see the modalias taken from your udev debug output causes >>> uas to get loaded, can you try the above ? >> >> That command sequence doesn't cause uas to be reloaded. Anything I need >> to customize for my setup? > > Not that I know of, so this seems to be a modprobe issue, and this should > probably be taken to the relevant list for modprobe. Please put me in the CC > when you send a mail there, and you likely will want to include the output > of the above commands + the modinfo output for both uas and usb-storage. > >> >>> >>> Also what does "modinfo uas" say? For me it says: >>> >>> [hans@shalem ~]$ modinfo uas >>> filename: /lib/modules/3.17.0-rc6+/kernel/drivers/usb/storage/uas.ko >>> author: Hans de Goede <hdegoede@xxxxxxxxxx>, Matthew Wilcox and Sarah Sharp >>> license: GPL >>> alias: usb:v*p*d*dc*dsc*dp*ic08isc06ip62in* >>> alias: usb:v*p*d*dc*dsc*dp*ic08isc06ip50in* >>> alias: usb:v174Cp5106d*dc*dsc*dp*ic*isc*ip*in* >>> alias: usb:v152Dp0567d*dc*dsc*dp*ic*isc*ip*in* >>> alias: usb:v0BC2pAB20d*dc*dsc*dp*ic*isc*ip*in* >>> alias: usb:v0BC2p3312d*dc*dsc*dp*ic*isc*ip*in* >>> alias: usb:v0BC2p2312d*dc*dsc*dp*ic*isc*ip*in* >>> depends: usb-storage >>> vermagic: 3.17.0-rc6+ SMP mod_unload >>> signer: Magrathea: Glacier signing key >>> sig_key: 9B:56:00:B2:C4:97:8D:4A:A9:B3:0B:54:32:F7:B7:B2:2F:3E:FB:D8 >>> sig_hashalgo: sha256 >>> >>> Note the alias-es with vendor and product ids are from quirks, and your version >>> will likely not have these. But the first 2 generic ones should be there, and >>> match the modalias from the udev output. >> >> filename: /lib/modules/3.17.0-rc7-homebrewed+/kernel/drivers/usb/storage/uas.ko >> author: Hans de Goede <hdegoede@xxxxxxxxxx>, Matthew Wilcox and Sarah Sharp >> license: GPL >> srcversion: 597B27EF314ADC559827CBD >> alias: usb:v*p*d*dc*dsc*dp*ic08isc06ipAAin* >> alias: usb:v*p*d*dc*dsc*dp*ic08isc06ip62in* >> alias: usb:v*p*d*dc*dsc*dp*ic08isc06ip50in* >> depends: usb-storage >> intree: Y >> vermagic: 3.17.0-rc7-homebrewed+ SMP preempt mod_unload modversions > > That looks good, so no idea why modprobe is not loading it. > > Regards, > > Hans > > For reference, here is the lsusb -v of the device again (to prove that it should match the alias): Bus 002 Device 010: ID 174c:5136 ASMedia Technology Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x174c ASMedia Technology Inc. idProduct 0x5136 bcdDevice 1.00 iManufacturer 2 Delock iProduct 3 42514 iSerial 1 200000000CB4 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 121 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 36mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only 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 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 4 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 98 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 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 16 Data-in pipe (0x03) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 16 Data-out pipe (0x04) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 16 Status pipe (0x02) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 0 Command pipe (0x01) Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 22 bNumDeviceCaps 2 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000002 Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x000e Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 1 Lowest fully-functional device speed is Full Speed (12Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 2047 micro seconds Device Status: 0x0001 Self Powered Thanks, Jan
Attachment:
signature.asc
Description: OpenPGP digital signature