Skip to contentSkip to conversation

uas: module not loaded automatically

DISCUSSION Jan Kiszka 3 participants 11 messages Oct 4, 2014 – Oct 6, 2014

lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

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?

lsusb of the device below.

Jan

---

Bus 001 Device 009: ID 174c:5136 ASMedia Technology Inc. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  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 85
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
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 0x0200 1x 512 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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 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

#1 lore raw

Hi,

Quoted 8 lines · Jan Kiszka

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 ?

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.

Regards,

Hans

Quoted 144 lines

lsusb of the device below.

Jan

---

Bus 001 Device 009: ID 174c:5136 ASMedia Technology Inc. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  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 85
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
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 0x0200 1x 512 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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 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

author
#2 lore raw
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 7 lines

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? I have no reference to a device with working UAS-probe.

Jan

Quoted 150 lines

Regards,

Hans

Quoted 144 lines

lsusb of the device below.

Jan

---

Bus 001 Device 009: ID 174c:5136 ASMedia Technology Inc. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  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 85
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
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 0x0200 1x 512 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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 0
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 0x0200 1x 512 bytes
bInterval 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

#3 lore raw

Hi,

Quoted 19 lines · Jan Kiszka
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 1 line
Quoted 8 lines
Quoted 6 lines

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 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) ?

Regards,

Hans

author
#4 lore raw
Quoted 37 lines · Hans de Goede

Hi,

Quoted 19 lines · Jan Kiszka
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 1 line
Quoted 8 lines
Quoted 6 lines

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

Quoted 5 lines

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".

Quoted 3 lines

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.

Jan

PS: Let me know if I should carry this to a different list.

KERNEL[33578.169824] add /devices/pci0000:00/0000:00:14.0/usb2/2-2 (usb)
ACTION=add
BUSNUM=002
DEVNAME=/dev/bus/usb/002/008
DEVNUM=008
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2
DEVTYPE=usb_device
MAJOR=189
MINOR=135
PRODUCT=174c/5136/100
SEQNUM=3702
SUBSYSTEM=usb
TYPE=0/0/0

KERNEL[33578.170171] add /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0 (usb)
ACTION=add DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0 DEVTYPE=usb_interface
INTERFACE=8/6/80 MODALIAS=usb:v174Cp5136d0100dc00dsc00dp00ic08isc06ip50in00 PRODUCT=174c/5136/100
SEQNUM=3703
SUBSYSTEM=usb
TYPE=0/0/0

UDEV [33578.171899] add /devices/pci0000:00/0000:00:14.0/usb2/2-2 (usb)
ACTION=add
BUSNUM=002
DEVNAME=/dev/bus/usb/002/008
DEVNUM=008
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=42514
ID_MODEL_ENC=42514
ID_MODEL_ID=5136
ID_REVISION=0100
ID_SERIAL=Delock_42514_200000000CB4
ID_SERIAL_SHORT=200000000CB4
ID_USB_INTERFACES=:080650:080662:
ID_VENDOR=Delock
ID_VENDOR_ENC=Delock
ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc.
ID_VENDOR_ID=174c
MAJOR=189
MINOR=135
PRODUCT=174c/5136/100
SEQNUM=3702
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=578169821

KERNEL[33578.173903] add /module/usb_storage (module)
ACTION=add
DEVPATH=/module/usb_storage
SEQNUM=3704
SUBSYSTEM=module

KERNEL[33578.174036] add /bus/usb/drivers/usb-storage (drivers)
ACTION=add
DEVPATH=/bus/usb/drivers/usb-storage
SEQNUM=3705
SUBSYSTEM=drivers

UDEV [33578.174093] add /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0 (usb)
ACTION=add DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0 DEVTYPE=usb_interface ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. INTERFACE=8/6/80 MODALIAS=usb:v174Cp5136d0100dc00dsc00dp00ic08isc06ip50in00 PRODUCT=174c/5136/100
SEQNUM=3703
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=8170188

UDEV [33578.174319] add /module/usb_storage (module)
ACTION=add
DEVPATH=/module/usb_storage
SEQNUM=3704
SUBSYSTEM=module
USEC_INITIALIZED=578173906

UDEV [33578.174448] add /bus/usb/drivers/usb-storage (drivers)
ACTION=add
DEVPATH=/bus/usb/drivers/usb-storage
SEQNUM=3705
SUBSYSTEM=drivers
USEC_INITIALIZED=578174131

#5 lore raw

Hi,

Quoted 44 lines · Jan Kiszka
Quoted 37 lines · Hans de Goede

Hi,

Quoted 19 lines · Jan Kiszka
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 1 line
Quoted 8 lines
Quoted 6 lines

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

Quoted 5 lines

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

Quoted 8 lines

It says "007".

Quoted 3 lines

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 ?

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 <[email protected]>, 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.

Regards,

Hans

Quoted 1 line

PS: Let me know if I should carry this to a different list.

Maybe, first lets try to pinpoint the cause a bit better.

author
#6 lore raw
Quoted 70 lines · Hans de Goede

Hi,

Quoted 44 lines · Jan Kiszka
Quoted 37 lines · Hans de Goede

Hi,

Quoted 19 lines · Jan Kiszka
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 1 line
Quoted 8 lines
Quoted 6 lines

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

Quoted 5 lines

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

Quoted 8 lines

It says "007".

Quoted 3 lines

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
Quoted 2 lines

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?

Quoted 20 lines

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 <[email protected]>, 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
Quoted 3 lines

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 <[email protected]>, 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 

Jan

#7 lore raw

Hi,

Quoted 71 lines · Jan Kiszka
Quoted 70 lines · Hans de Goede

Hi,

Quoted 44 lines · Jan Kiszka
Quoted 37 lines · Hans de Goede

Hi,

Quoted 19 lines · Jan Kiszka
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 1 line
Quoted 8 lines
Quoted 6 lines

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

Quoted 5 lines

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

Quoted 8 lines

It says "007".

Quoted 3 lines

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
Quoted 5 lines
Quoted 2 lines

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 25 lines
Quoted 21 lines

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 <[email protected]>, 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
Quoted 3 lines

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.

Quoted 10 lines
filename:       /lib/modules/3.17.0-rc7-homebrewed+/kernel/drivers/usb/storage/uas.ko
author:         Hans de Goede <[email protected]>, 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

author
#8 lore raw

uas module not loaded automatically

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.

Quoted 121 lines · Hans de Goede

Hi,

Quoted 71 lines · Jan Kiszka
Quoted 70 lines · Hans de Goede

Hi,

Quoted 44 lines · Jan Kiszka
Quoted 37 lines · Hans de Goede

Hi,

Quoted 19 lines · Jan Kiszka
Quoted 5 lines · Hans de Goede

Hi,

Quoted 2 lines · Jan Kiszka

Hi,

Quoted 8 lines
Quoted 6 lines

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 1 line
Quoted 8 lines
Quoted 6 lines

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

Quoted 5 lines

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

Quoted 8 lines

It says "007".

Quoted 3 lines

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
Quoted 5 lines
Quoted 2 lines

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 25 lines
Quoted 21 lines

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 <[email protected]>, 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
Quoted 3 lines

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.

Quoted 10 lines
filename:       /lib/modules/3.17.0-rc7-homebrewed+/kernel/drivers/usb/storage/uas.ko
author:         Hans de Goede <[email protected]>, 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 
Quoted 7 lines

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

author
#9 lore raw

[solved] Re: uas module not loaded automatically

Quoted 5 lines · Jan Kiszka

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.

Mystery solved:

/etc/modprobe.d/50-blacklist.conf:

# uas has been confirmed to be hopelessly broken
# Bug bnc#770301
blacklist uas

I'll check with my distro if this is gone in their next release when they switch to a UAS-enabled kernel. The official kernel for their current release still has it disabled, the problem only occurred when moving to a newer kernel.

Jan

#10 lore raw

Re: [solved] Re: uas module not loaded automatically

Quoted 10 lines · Jan Kiszka
Quoted 5 lines · Jan Kiszka

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.

Mystery solved:

/etc/modprobe.d/50-blacklist.conf:

Quoted 8 lines
# uas has been confirmed to be hopelessly broken
# Bug bnc#770301
blacklist uas

I'll check with my distro if this is gone in their next release when they switch to a UAS-enabled kernel. The official kernel for their current release still has it disabled, the problem only occurred when moving to a newer kernel.

nice to see the blacklist is working fine :)

Signature · 1 line
Lucas De Marchi