No USB Devices picked up on restart to windows 7 from ubuntu

I have dual boot windows 7 and ubuntu 13.10 on efi Dell Inspiron 14z 5423 ultrabook.

  1. My devices are recognized well in Ubuntu.

    If I reboot the system (i,e switch from Ubuntu to Windows 7) and start Windows 7, no USB devices are recognized in Windows 7.

  2. But when I shutdown Ubuntu completely and then start the system with Windows 7, all USB devices are recognized well.

  3. Sometimes even shutting down ubuntu and restarting to windows 7 has this problem, and then i have to hold down poweroff button and shut it down or usb devices will not get picked up.

I am sure it is because of Ubuntu as I have tested it by removing Ubuntu. (4 times)

Also I have laptop-mode-tools and USB autosuspend is ON.(have also tried to disable autosuspend but no success) I have disabled integrated NIC because when it is enabled Ubuntu won't boot (Purple Screen). Also i have intel rapid storage setup in windows 7, have disabled it but it didn't help. Please if any one can help.

UPDATE thanks to suggestion of @falconer, my issue is resolved now. Windows 7 drivers were giving me this problem. I downloaded usb 3.0 drivers from dell website but they gave errors of newer drivers are already installed. Then i downloaded drivers from intel website they too gave the particular error but i was able to force install and now after testing my problem is resolved. So this problem arises when you don't have proper windows usb 3.0 drivers and you try to attach usb 2.0 device in usb 3.0 port in linux.

These are lsusb and lspci outputs if it can help:

these are lsusb and lspci outputs if it can help


Solution 1:

First you should try to installing proper USB3 drivers in windows, look for them on your motherboard/laptop manufacturers website. If this doesn't solve the issue read on how to workaround this problem:

I couldn't find the same problem with dual-booting on the web, but I found similar problems with Windows not detecting the USB3 ports at all, and some similar linux USB-problems when the USB's are only detected after suspending. For both of these problems the solution (or more likely a workaround) is to go into the BIOS and

  • change the XHCI Pre-Boot Mode from auto to disabled, or
  • change the XHCI Mode from Smart Auto to auto

From here and here are some explanations:

Smart Auto

This mode is available only when the BIOS supports the xHCI controller in the pre-boot environment. This mode is similar to Auto, but it adds the capability to route the ports to xHCI or EHCI according to setting used in previous boots (for non-G3 boot) in the pre-boot environment. ... If you reboot the OS, during this reboot BIOS phase, BIOS is "Smart" enough to avoid downgrade the USB 3.0 port back to 2.0 functionality before OS USB 3.0 driver load. So Smart Auto is faster than Auto on 2nd boot onward.

XHCI Mode = Auto

The on-board USB 3.0 port function like a 2.0 port before OS USB 3.0 driver load. If you reboot the OS, the on-board USB 3.0 port again function like a 2.0 port during this reboot BIOS phase before OS USB 3.0 driver load.

I think this will solve your problem. But likely this is just a workaround, I think one of your USB3 driver is the guilty. I would go for that it is your windows driver. You should do some speed tests on your USB3 ports if they provide proper USB3 speeds in windows and in linux, both with these BIOS options turned on or off.