Hi,

I've seen a few reports floating around lately that the sda1 node isn't getting created on plugin of some usb-storage devices.

In these situations, the sda node appears on plugin, but no partitons (e.g. sda1) turn up until you do *something* with the sda node.

Even if its as simple as:
        fdisk -l /dev/sda

Or even
        touch /dev/sda

I have gathered some logs of a situation like this, for the following device:
Vendor: M-Sys
Product: DiskOnKey
Serial Number: 0501631530002F06
Protocol: Transparent SCSI
Transport: Bulk
Quirks:

Tested under Linux 2.6.7. Here are the logs of plugin:

Jun 19 17:34:09 [kernel] uhci_hcd 0000:00:04.2: wakeup_hc
Jun 19 17:34:09 [kernel] uhci_hcd 0000:00:04.2: port 1 portsc 0083
Jun 19 17:34:09 [kernel] hub 1-0:1.0: debounce: port 1: delay 100ms stable 4 status 0x101
Jun 19 17:34:09 [kernel] usb 1-1: new full speed USB device using address 2
Jun 19 17:34:09 [kernel] usb 1-1: new device strings: Mfr=1, Product=2, SerialNumber=3
Jun 19 17:34:09 [kernel] usb 1-1: default language 0x0409
Jun 19 17:34:09 [kernel] usb 1-1: Product: DiskOnKey
Jun 19 17:34:09 [kernel] usb 1-1: Manufacturer: M-Sys
Jun 19 17:34:09 [kernel] usb 1-1: SerialNumber: 0501631530002F06
Jun 19 17:34:09 [kernel] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
Jun 19 17:34:09 [kernel] usb-storage 1-1:1.0: usb_probe_interface
Jun 19 17:34:09 [kernel] usb-storage: Transport: Bulk
Jun 19 17:34:09 [kernel] usb-storage: GetMaxLUN command result is 1, data is 0
Jun 19 17:34:09 [kernel] usb-storage: *** thread sleeping.
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: *** thread awakened.
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 36/36
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk data transfer result 0x0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk status result = 0
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: *** thread awakened.
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk command transfer result=0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 122/122
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk data transfer result 0x0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk status result = 0
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: *** thread awakened.
Jun 19 17:34:09 [kernel] usb-storage: Command TEST_UNIT_READY (6 bytes)
Jun 19 17:34:09 [kernel] usb-storage: Bulk Command S 0x43425355 T 0x3 L 0 F 0 Trg 0 LUN 0 CL 6
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk command transfer result=0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk status result = 0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk command transfer result=0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 18/18
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Bulk data transfer result 0x0
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Command TEST_UNIT_READY (6 bytes)
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 18/18
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Command TEST_UNIT_READY (6 bytes)
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 18/18
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:34:09 [kernel] usb-storage: -- transfer complete
Jun 19 17:34:09 [kernel] Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: *** thread awakened.
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: *** thread awakened.
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Bad target number (3:0)
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Bad target number (4:0)
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Bad target number (5:0)
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Bad target number (6:0)
Jun 19 17:34:09 [kernel] usb-storage: queuecommand called
Jun 19 17:34:09 [kernel] usb-storage: Bad target number (7:0)
Jun 19 17:34:09 [kernel] USB Mass Storage device found at 2


Now we do "touch /dev/sda", and get:

Jun 19 17:35:20 [kernel] usb-storage: queuecommand called
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 18/18
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] usb-storage: queuecommand called
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] usb-storage: queuecommand called
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 8/8
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] SCSI device sda: 239872 512-byte hdwr sectors (123 MB)
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] usb-storage: queuecommand called
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] usb-storage: queuecommand called
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 8/8
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel] SCSI device sda: 239872 512-byte hdwr sectors (123 MB)
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 4096/4096
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13
Jun 19 17:35:20 [kernel]  p1
Jun 19 17:35:20 [kernel] usb-storage: queuecommand called
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 31/31
Jun 19 17:35:20 [kernel] usb-storage: Status code 0; transferred 13/13

And unplug:

Jun 19 17:36:09 [kernel] uhci_hcd 0000:00:04.2: port 1 portsc 008a
Jun 19 17:36:09 [kernel] usb-storage: -- sending exit command to thread
Jun 19 17:36:09 [kernel] uhci_hcd 0000:00:04.2: port 1 portsc 0088
Jun 19 17:36:10 [kernel] uhci_hcd 0000:00:04.2: suspend_hc

One workaround is to use hotplug. Some versions (not all) presumably do the equivalent of "touch /dev/sda" when a device is detected - some see installing hotplug as a solution to this, but it seems just to be masking the problem.

Any ideas?

Thanks.
Daniel


------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to