My external USB 3 hard drive is behaving very strangely:

  • If I plug it into a USB 2 port, it works fine
  • If I plug it into a USB 3 port, it doesn't work at all. It's not even mentioned in /var/log/messages.
  • If I plug a USB 2 device (memory stick) into the same USB 3 port, it works fine.
  • I think the USB 3 drive is mentioned in dmesg during boot up when it's plugged into the USB 3 port, but it's hard to tell. There are no clear device names listed, just serial ids etc.

The last time I used it on this machine, everything was alright, but that was at least a month ago. Since then I've gone through a few kernel upgrades and a number of package updates. My guess is something went wrong in the process, so I'm here to try and narrow that down.

Useful information:

  • I'm running Gentoo (kernel version: 3.7.4-gentoo)
  • CONFIG_USB_STORAGE is enabled in the kernel (obviously, since USB 2 works)
  • CONFIG_USB_XHCI_HCD is also enabled in the kernel

The hardware involved is:

  • Lenovo X1 laptop
  • WD 1tb portable drive. There's no external power options, and I've never needed one (when it was working)
  • Is there a more precise name for the drive, "WD 1tb portable drive" does not give much info? – Johan Jan 29 '13 at 10:55
  • I would suggest pastebinning your dmesg – lkraav Jan 29 '13 at 14:30
  • In an effort to figure out what was going on, I enabled xhci debugging in the kernel, rebooted, and magically it worked! Then, as a test, I disabled debugging and it worked again :-( I think I may just have a flakey drive on my hands: Bus 003 Device 002: ID 1058:1042 Western Digital Technologies, Inc. I guess it's appropriate to delete this question now? – Daniel Quinn Jan 29 '13 at 14:58
  • @DanielQuinn, better answer your own question with what you found out, and accept the answer. – vonbrand Jan 29 '13 at 18:52

So after a lot of toying with this, it started to work, though for the life of me I can't figure out why. Here's a list of things I tried:

  • Didn't work
    • Rebooting
    • Unplugging and plugging it back in while the laptop is running
    • Booting up with it plugged in
    • Plugging it in post-boot up
    • Recompiling my kernel with the same options
  • Did work
    • Recompiling my kernel with USB3 debuging enabled
    • Re-recompiling my kernel with USB3 debugging turned off

So basically I tried recompiling my kernel with debugging enabled to see what was wrong, and lo-and-behold it worked perfectly. Then, as an experiment, I recompiled again, this time with debugging off, and it still worked.

I have no idea what happened, but for those who might come here in search of an answer one day, I offer you what I have.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.