uas module not loaded automatically
From: Jan Kiszka <hidden>
Date: 2014-10-05 11:03:49
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:quoted
On 2014-10-05 11:43, Hans de Goede wrote:quoted
Hi, On 10/05/2014 11:31 AM, Jan Kiszka wrote:quoted
On 2014-10-05 11:23, Hans de Goede wrote:quoted
Hi, On 10/05/2014 11:14 AM, Jan Kiszka wrote:quoted
On 2014-10-05 11:08, Hans de Goede wrote:quoted
Hi, On 10/04/2014 08:35 PM, Jan Kiszka wrote:quoted
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.quoted
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 notIt says "007".quoted
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.quoted
quoted
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 [off-list ref], 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 [off-list ref], 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 modversionsThat 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
Attachments
- signature.asc [application/pgp-signature] 198 bytes