Discussion:
USB storage device not recognized
(too old to reply)
grarpamp
2014-08-30 18:42:18 UTC
Permalink
The GENERIC 8 STABLE r269631 i386 kernel on a Pentium 4 Prescott
ICH4 era motherboard does nothing when a Sony ICD-PX333 is plugged in.
I believe it should present as mass storage. Other mass storage devices
such as cameras etc work ok in the same USB port.
How can I debug this or send info to you for debugging?
ehci0: <Intel 82801DB/L/M (ICH4) USB 2.0 controller>
Thx.
Hans Petter Selasky
2014-08-31 11:02:05 UTC
Permalink
Post by grarpamp
The GENERIC 8 STABLE r269631 i386 kernel on a Pentium 4 Prescott
ICH4 era motherboard does nothing when a Sony ICD-PX333 is plugged in.
I believe it should present as mass storage. Other mass storage devices
such as cameras etc work ok in the same USB port.
How can I debug this or send info to you for debugging?
ehci0: <Intel 82801DB/L/M (ICH4) USB 2.0 controller>
Thx.
Hi,

Please send output from:

usbconfig -d X.Y dump_device_desc dump_curr_config_desc

regarding your device.

--HPS
grarpamp
2014-08-31 21:38:36 UTC
Permalink
Post by Hans Petter Selasky
usbconfig -d X.Y dump_device_desc dump_curr_config_desc
regarding your device.
Nothing happens in verbose dmesg when I plug in the device,
other than the device itself turns on. If I plug in another device, such
as a USB memory stick to the same port, the stick is accessible.
I believe this device is supposed to present as mass storage since
similar devices in its class do appear.
Anyway, the below output is the same regardless of whether or
not the device is plugged in (I used -u 3 to list the entire bus
in the case when memory stick is in)...

usbdump -v -i usbus3 -f 2
[nothing with device, dumps with memstick]

usbconfig -u 3 dump_device_desc dump_curr_config_desc
ugen3.1: <EHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE

bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0001
bMaxPacketSize0 = 0x0040
idVendor = 0x0000
idProduct = 0x0000
bcdDevice = 0x0100
iManufacturer = 0x0001 <Intel>
iProduct = 0x0002 <EHCI root HUB>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001


Configuration index 0

bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0040
bMaxPower = 0x0000

Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>

Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
Hans Petter Selasky
2014-09-01 06:30:56 UTC
Permalink
Post by grarpamp
Post by Hans Petter Selasky
usbconfig -d X.Y dump_device_desc dump_curr_config_desc
regarding your device.
Nothing happens in verbose dmesg when I plug in the device,
other than the device itself turns on. If I plug in another device, such
as a USB memory stick to the same port, the stick is accessible.
I believe this device is supposed to present as mass storage since
similar devices in its class do appear.
Anyway, the below output is the same regardless of whether or
not the device is plugged in (I used -u 3 to list the entire bus
in the case when memory stick is in)...
usbdump -v -i usbus3 -f 2
[nothing with device, dumps with memstick]
Hi,

Can you send output from "pciconf -lv" maybe there is a USB controller
not recognized?

--HPS
grarpamp
2014-09-01 16:59:17 UTC
Permalink
Can you send output from "pciconf -lv" maybe there is a USB controller not
recognized?
dmesg and pciconf have them all, the device is always plugged in ehci0.
[The other ports act the same way... usbstick recognized, this device isn't.]
I should probably try under windows.

Is there a way to actively probe out for a device from a usb port?

uhci0: <Intel 82801DB (ICH4) USB controller USB-A> port 0xd800-0xd81f
irq 16 at device 29.0 on pci0
usbus0 on uhci0
uhci1: <Intel 82801DB (ICH4) USB controller USB-B> port 0xd000-0xd01f
irq 19 at device 29.1 on pci0
usbus1 on uhci1
uhci2: <Intel 82801DB (ICH4) USB controller USB-C> port 0xd400-0xd41f
irq 18 at device 29.2 on pci0
usbus2 on uhci2
ehci0: <Intel 82801DB/L/M (ICH4) USB 2.0 controller> mem
0xee080000-0xee0803ff irq 23 at device 29.7 on pci0
usbus3: EHCI version 1.0
usbus3 on ehci0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3

***@pci0:0:29:0: class=0x0c0300 card=0x01471028 chip=0x24c28086
rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller *1'
class = serial bus
subclass = USB
***@pci0:0:29:1: class=0x0c0300 card=0x01471028 chip=0x24c48086
rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller *2'
class = serial bus
subclass = USB
***@pci0:0:29:2: class=0x0c0300 card=0x01471028 chip=0x24c78086
rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller *3'
class = serial bus
subclass = USB
***@pci0:0:29:7: class=0x0c0320 card=0x01471028 chip=0x24cd8086
rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB 2.0 EHCI Controller'
class = serial bus
subclass = USB
grarpamp
2014-09-02 21:39:11 UTC
Permalink
Post by grarpamp
Is there a way to actively probe out for a device from a usb port?
[The other ports act the same way... a usbstick is recognized,
this device isn't.]
The problem was bad cable mating... power pair connected but
data pair did not. Cutting back some plastic shroud let USB
seat further in and fixed it. Mountable and files accessible now.


New problem... the kernel is picking up what might be a second
LUN and throwing a lot of errors. If this LUN is real and intentional
I have no idea what purpose it would be for. It is not accessible
in a usual way with dd...

# camcontrol devl -v
scbus3 on umass-sim0 bus 0:
<NAME 3.00> at scbus3 target 0 lun 0 (da0,pass2)
<NAME 3.00> at scbus3 target 0 lun 1 (da1,pass3)
# ls /dev/*da*
/dev/da0 /dev/da0s1 /dev/da1
# dd if=/dev/da1 of=/dev/null
dd: /dev/da1: Device not configured

[Update: This has both soldered flash and microSD slot,
the second LUN may be the SD slot. Will test...]


Also the kernel does not print USB 'port' number except on disconnect...
kernel: umass0: at uhub3, port 5, addr 2 (disconnected)
It needs to print a corresponding 'connected' line on connect,
or perhaps add the 'port' in here...
kernel: umass0: <NAME, class 0/0, rev 2.00/1.00, addr 2> on usbus3


Here's the full LUN / port issue log...

k: ugen3.2: <Name> at usbus3
k: umass0: <Name, class 0/0, rev 2.00/1.00, addr 2> on usbus3
k: umass0: SCSI over Bulk-Only; quirks = 0x4000
k: umass0:3:0:-1: Attached to scbus3
k: (probe0:umass-sim0:0:0:0): Down reving Protocol Version from 2 to 0?
k: pass2 at umass-sim0 bus 0 scbus3 target 0 lun 0
k: pass2: <NAME 3.00> Removable Direct Access SCSI-0 device
k: pass2: Serial Number 0123456789ABCDEF
k: pass2: 40.000MB/s transfers
k: GEOM: new disk da0
k: da0 at umass-sim0 bus 0 scbus3 target 0 lun 0
k: da0: <NAME 3.00> Removable Direct Access SCSI-0 device
k: da0: Serial Number 0123456789ABCDEF
k: da0: 40.000MB/s transfers
k: da0: 3770MB (7722483 512 byte sectors: 255H 63S/T 480C)
k: da0: quirks=0x2<NO_6_BYTE>
k: da0: Delete methods: <NONE(*)>
k: (probe0:umass-sim0:0:0:1): Down reving Protocol Version from 2 to 0?
k: (probe0:umass-sim0:0:0:1): SCSI status error
k: (probe0:umass-sim0:0:0:1): TEST UNIT READY. CDB: 00 20 00 00 00 00
k: (probe0:umass-sim0:0:0:1): CAM status: SCSI Status Error
k: (probe0:umass-sim0:0:0:1): SCSI status: Check Condition
k: (probe0:umass-sim0:0:0:1): SCSI sense: NOT READY asc:3a,0 (Medium
not present)
k: (probe0:umass-sim0:0:0:1): Error 6, Unretryable error
k: pass3 at umass-sim0 bus 0 scbus3 target 0 lun 1
k: pass3: <NAME 3.00> Removable Direct Access SCSI-0 device
k: pass3: Serial Number 0123456789ABCDEF
k: pass3: 40.000MB/s transfers
k: (da1:umass-sim0:0:0:1): SCSI status error
k: (da1:umass-sim0:0:0:1): READ CAPACITY(10). CDB: 25 20 00 00 00 00 00 00 00 00
k: (da1:umass-sim0:0:0:1): CAM status: SCSI Status Error
k: (da1:umass-sim0:0:0:1): SCSI status: Check Condition
k: (da1:umass-sim0:0:0:1): SCSI sense: NOT READY asc:3a,0 (Medium not present)
k: (da1:umass-sim0:0:0:1): Error 6, Unretryable error
k: da1 at umass-sim0 bus 0 scbus3 target 0 lun 1
k: da1: <NAME 3.00> Removable Direct Access SCSI-0 device
k: da1: Serial Number 0123456789ABCDEF
k: da1: 40.000MB/s transfers
k: da1: Attempt to query device size failed: NOT READY, Medium not present
k: da1: quirks=0x2<NO_6_BYTE>
k: da1: Delete methods: <NONE(*)>
k: GEOM: new disk da1
k: (da1:umass-sim0:0:0:1): SCSI status error
k: (da1:umass-sim0:0:0:1): READ CAPACITY(10). CDB: 25 20 00 00 00 00 00 00 00 00
k: (da1:umass-sim0:0:0:1): CAM status: SCSI Status Error
k: (da1:umass-sim0:0:0:1): SCSI status: Check Condition
k: (da1:umass-sim0:0:0:1): SCSI sense: NOT READY asc:3a,0 (Medium not present)
k: (da1:umass-sim0:0:0:1): Error 6, Unretryable error
k: Opened disk da1 -> 6
k: (da1:umass-sim0:0:0:1): SCSI status error
k: (da1:umass-sim0:0:0:1): READ CAPACITY(10). CDB: 25 20 00 00 00 00 00 00 00 00
k: (da1:umass-sim0:0:0:1): CAM status: SCSI Status Error
k: (da1:umass-sim0:0:0:1): SCSI status: Check Condition
k: (da1:umass-sim0:0:0:1): SCSI sense: NOT READY asc:3a,0 (Medium not present)
k: (da1:umass-sim0:0:0:1): Error 6, Unretryable error
k: Opened disk da1 -> 6
k: ugen3.2: <Name> at usbus3 (disconnected)
k: umass0: at uhub3, port 5, addr 2 (disconnected)
k: (da0:umass-sim0:0:0:0): lost device - 0 outstanding, 0 refs
k: (da0:umass-sim0:0:0:0): removing device entry
k: (pass2:umass-sim0:0:0:0): lost device
k: (pass2:umass-sim0:0:0:0): removing device entry
k: (da1:umass-sim0:0:0:1): lost device - 0 outstanding, 0 refs
k: (da1:umass-sim0:0:0:1): removing device entry
k: (pass3:umass-sim0:0:0:1): lost device
k: (pass3:umass-sim0:0:0:1): removing device entry
Hans Petter Selasky
2014-09-03 05:17:07 UTC
Permalink
Post by grarpamp
Post by grarpamp
Is there a way to actively probe out for a device from a usb port?
[The other ports act the same way... a usbstick is recognized,
this device isn't.]
The problem was bad cable mating... power pair connected but
data pair did not. Cutting back some plastic shroud let USB
seat further in and fixed it. Mountable and files accessible now.
New problem... the kernel is picking up what might be a second
LUN and throwing a lot of errors. If this LUN is real and intentional
I have no idea what purpose it would be for. It is not accessible
in a usual way with dd...
# camcontrol devl -v
<NAME 3.00> at scbus3 target 0 lun 0 (da0,pass2)
<NAME 3.00> at scbus3 target 0 lun 1 (da1,pass3)
# ls /dev/*da*
/dev/da0 /dev/da0s1 /dev/da1
# dd if=/dev/da1 of=/dev/null
dd: /dev/da1: Device not configured
[Update: This has both soldered flash and microSD slot,
the second LUN may be the SD slot. Will test...]
Also the kernel does not print USB 'port' number except on disconnect...
kernel: umass0: at uhub3, port 5, addr 2 (disconnected)
It needs to print a corresponding 'connected' line on connect,
or perhaps add the 'port' in here...
kernel: umass0: <NAME, class 0/0, rev 2.00/1.00, addr 2> on usbus3
Here's the full LUN / port issue log...
Hi,

There is a quirk to force a single LUN:

usbconfig -d X.Y add_quirk UQ_MSC_NO_GETMAXLUN

--HPS
grarpamp
2014-09-04 06:24:32 UTC
Permalink
Post by Hans Petter Selasky
Post by grarpamp
Post by grarpamp
Is there a way to actively probe out for a device from a usb port?
New problem... the kernel is picking up what might be a second
LUN and throwing a lot of errors. If this LUN is real and intentional
I have no idea what purpose it would be for. It is not accessible
in a usual way with dd...
dd: /dev/da1: Device not configured
[Update: This has both soldered flash and microSD slot,
the second LUN may be the SD slot. Will test...]
Tested... the second LUN is the SD slot. With card in
both da0 and da1 are then usable in parallel.
Post by Hans Petter Selasky
usbconfig -d X.Y add_quirk UQ_MSC_NO_GETMAXLUN
This quiets the errors when that empty LUN, but I wouldn't add it
as default to the kernel because then it does not detect
card in slot. Here is device quirk if anyone wants...

VID=0x054c PID=0x082a REVLO=0x0100 REVHI=0x0100 QUIRK=UQ_MSC_NO_GETMAXLUN
Post by Hans Petter Selasky
Post by grarpamp
Also the kernel does not print USB 'port' number except on disconnect...
kernel: umass0: at uhub3, port 5, addr 2 (disconnected)
It needs to print a corresponding 'connected' line on connect,
or perhaps add the 'port' in here...
kernel: umass0: <NAME, class 0/0, rev 2.00/1.00, addr 2> on usbus3
In addition to fixing the above port printf, I believe this sense string
needs to delete the ' to ready change' part.

(probe0:umass-sim0:0:0:1): SCSI status error
(probe0:umass-sim0:0:0:1): TEST UNIT READY. CDB: 00 20 00 00 00 00
(probe0:umass-sim0:0:0:1): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:1): SCSI status: Check Condition
(probe0:umass-sim0:0:0:1): SCSI sense: UNIT ATTENTION asc:28,0 (Not
ready to ready change, medium may have changed)
(probe0:umass-sim0:0:0:1): Retrying command (per sense data)

Thanks.

Loading...