USB External Hard Drive Conundrum

I’m usually pretty good at sorting out just about any computer issue; but this one has me stumped. My daughter is running openSUSE 11.1 using KDE 3.5.10 (…all the latest updates via the repositories & the same holds true of all of the other Linux machines I’ll mention) on her desktop computer. She has 2 WD My Book external USB drives that she uses without any problems. She recently got a WD My Passport external USB drive to use with her HP/Compaq laptop (Windows Vista) to have the ability easily to swap files back & forth between the 2 computers. She can read the drive fine with her laptop; but no luck whatsoever on her desktop computer - It does not even show up as a hard drive, in /media, Yast or otherwise. If I go into Yast-Hardware or run hwinfo from the terminal, it essentially shows up as an “unknown” device. Now for the conundrum… :stuck_out_tongue:

The drive is read perfectly and without any issues whatsoever on 7 other computers! This includes 2 other laptops (Windows XP & Vista), an HP Mini Netbook (Linux), and 4 other desktop systems running the exact same version of openSUSE as she is. And, just in case you’re thinking it might be a motherboard issue, one of those desktop computers (…her sister’s) has the exact same motherboard and, for the most part, very similar hardware.

We’ve tried unplugging every other USB device she uses, which includes a Wacom graphic tablet, tried all of the various USB ports, did all kinds of software updates again (…Hal, anything apparently USB related, etc.), thinking maybe somehow a file or database got corrupted, re-installed the latest kernel via Yast, and she even bought one of those 2-into-1 USB cables, in case it was some kind of power issue on her computer, all to no avail. >:(

So, the questions of the day are: Why would her desktop computer be the only one that refuses to recognize this drive and what can be done to remedy the situation?

Any assistance is appreciated…

First make sure the usb device when connected to a windows pc you safely remove the device and then remove it.
Connect to Linux computer in question and reboot with it connected.

Now let’s assume it’s not being picked up so far. Open a terminal and su in there and then do:

fdisk -l

Is it shown in the output? Paste it here.

Like I said, the drive doesn’t show up at all on her computer; but here’s the result:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0001e40d

Device Boot Start End Blocks Id System
/dev/sda1 * 1 9 72261 83 Linux
/dev/sda2 10 271 2104515 82 Linux swap / Solaris
/dev/sda3 272 3274 24121597+ 83 Linux
/dev/sda4 3275 19457 129989947+ f W95 Ext’d (LBA)
/dev/sda5 3275 3405 1052226 83 Linux
/dev/sda6 3406 4580 9438156 83 Linux
/dev/sda7 4581 5233 5245191 83 Linux
/dev/sda8 5234 5886 5245191 83 Linux
/dev/sda9 5887 7192 10490413+ 83 Linux
/dev/sda10 7193 19457 98518581 83 Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe8900690

Device Boot Start End Blocks Id System
/dev/sdb1 2 121601 976752000 83 Linux

Disk /dev/sdc: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x44fdfe06

Device Boot Start End Blocks Id System
/dev/sdc1 1 38913 312568641 83 Linux

sda is her internal hard drive, sdb is the 1TB MyBook, and sdc is the 320GB MyBook.

Have you checked the output of ‘dmesg’ for problems? There is one
situation that might cause funny effects with USB devices. The driver
ehci_hcd should be loaded before either ohci_hcd or uhci_hcd. The
kernel build code for 11.1 does not enforce this. Usually it causes no
problems, but on occasion, it can kill certain devices.

The fix is simple. With YaST => System => /etc/sysconfig Editor, open
System and Kernel, followed by INITRD MODULES. Add ehci_hcd to the
list, which will force the loading of that module first.

Okay, here’s where we’re at now:

The INITRD MODULES/ehci_hcd fix didn’t change anything.

On her computer, plugging in the device produces the following in dmesg:

usb 1-8: new high speed USB device using ehci_hcd and address 7
usb 1-8: configuration #1 chosen from 1 choice
usb 1-8: New USB device found, idVendor=13fd, idProduct=1618
usb 1-8: New USB device strings: Mfr=0, Product=0, SerialNumber=0

And that’s it. Nothing happens after that.

On another desktop computer, to see the difference, dmesg changes the last two lines to
something like this:

New USB device found, idVendor=1058, idProduct=0704
New USB device strings: Mfr=1, Product=2, SerialNumber=3

Then kicks in an entire string of messages identifying the device as an external hard drive from Western Digital, starting scsi emulation and turning it into a storage device.

The problem seems to be that her computer isn’t identifying the device correctly for some reason, unlike all of the other computers. I still need help figuring out what exactly would cause that though…

IronManCC wrote:
> Okay, here’s where we’re at now:
>
> The INITRD MODULES/ehci_hcd fix didn’t change anything.
>
> On her computer, plugging in the device produces the following in
> dmesg:
>
> usb 1-8: new high speed USB device using ehci_hcd and address 7
> usb 1-8: configuration #1 chosen from 1 choice
> usb 1-8: New USB device found, idVendor=13fd, idProduct=1618
> usb 1-8: New USB device strings: Mfr=0, Product=0, SerialNumber=0
>
> And that’s it. Nothing happens after that.
>
> On another desktop computer, to see the difference, dmesg changes the
> last two lines to
> something like this:
>
> New USB device found, idVendor=1058, idProduct=0704
> New USB device strings: Mfr=1, Product=2, SerialNumber=3
>
> Then kicks in an entire string of messages identifying the device as
> an external hard drive from Western Digital, starting scsi emulation and
> turning it into a storage device.
>
> The problem seems to be that her computer isn’t identifying the device
> correctly for some reason, unlike all of the other computers. I still
> need help figuring out what exactly would cause that though…

To establish exactly what is seen by the USB system, plug the drive in
and issue the command ‘lsusb -v > lsusb.log’. Then edit the file
lsusb.log to contain only the info for the external hard drive. Repeat
the process on the computer that works, then post good and bad.

Did you compare kernel versions?

I’ve been away for a couple of weeks and am just following up on the issue again now. :wink:

Here’s the log of the computer where the HD works:

Bus 003 Device 002: ID 1058:0704 Western Digital Technologies, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1058 Western Digital Technologies, Inc.
idProduct 0x0704
bcdDevice 1.75
iManufacturer 1 Western Digital
iProduct 2 External HDD
iSerial 3 57442D575836304136393432393237
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
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 0x0040 1x 64 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 0x0040 1x 64 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered

Now here’s the log of the computer where the HD doesn’t work:

Bus 001 Device 005: ID 13fd:1618 Initio Corporation
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x13fd Initio Corporation
idProduct 0x1618
bcdDevice 1.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 18
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)

All Linux computers are updated on a regular basis; so they all essentially should be running the same kernel & software versions. I’ll double check on this today.

Well, I noticed the logs have ‘Self Powered’ when device reported as working, and ‘Bus Powered’ when not. So I assume, this device usually has external power supply plugged in (vs usb-powered device)?. External hard drives won’t work properly if usb port can’t provide enough power.

It’s just one of those mysteries - No external power supply needed. Works on all other computers just fine. Have tried various cables, including the “2-Into-1”; but to no avail. Re-checked today and, yes, all computers are running the same kernel (2.6.27.29-0.1-pae).