2

I have few USB hardware who is using 500mA (5V) power, after reserching found that external power supply or hub was the solution but that was a waste of time, even doing external power the problem keep continue.

Now only way to debug this problem is to disable Xhci_hcd in Ubuntu 12.04 or Ubuntu 13.04 and keep Ehci_hcd only cause that is where the 99% problem getting started.

But in Ubuntu its impossible or mission impossible almost now to disable xhci_hcd how can i do that please???

tried:

$ cd /etc/pm/config.d/
$ pwd
/etc/pm/config.d
$ ls
00sleep_module  unload_modules unload_module
root@e300gent:/etc/pm/config.d# cat *
SUSPEND_MODULES="xhci"

SUSPEND_MODULES="xhci"

SUSPEND_MODULES="xhci"

$ tail -f /var/log/syslog
Oct  6 10:47:54 e300gent kernel: [ ] xhci_hcd 0000:02:00.0: ERROR Transfer event TRB DMA ptr not part of current TD
Oct  6 10:47:54 e300gent kernel: [ ] xhci_hcd 0000:02:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
Oct  6 10:47:54 e300gent kernel: [ ] xhci_hcd 0000:02:00.0: ERROR Transfer event TRB DMA ptr not part of current TD

Oct  6 10:47:54 e300gent kernel: [ ] usb 3-1: USB disconnect, device number 2
Oct  6 10:48:00 e300gent kernel: [ ] usb 1-1.4: new high-speed USB device number 5 using ehci_hcd
Oct  6 10:48:00 e300gent kernel: [ ] uvcvideo: Found UVC 1.00 device HD Pro Webcam C920 (046d:082d)
Oct  6 10:48:00 e300gent kernel: [ ] input: HD Pro Webcam C920 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input17
Oct  6 10:48:00 e300gent mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4"

Oct  6 10:48:01 e300gent rtkit-daemon[1470]: Successfully made thread 2583 of process 1464 (n/a) owned by '1000' RT at priority 5.
Oct  6 10:48:01 e300gent rtkit-daemon[1470]: Supervising 6 threads of 1 processes of 1 users.

ehci_hcd: drops the device too:

[ ] usb 1-1.4: reset high-speed USB device number 5 using ehci_hcd
[ ] usb 1-1.4: device descriptor read/64, error -110
[ ] usb 1-1.4: device descriptor read/64, error -110
[ ] usb 1-1.4: reset high-speed USB device number 5 using ehci_hcd
[ ] usb 1-1.4: device descriptor read/64, error -110
[ ] usb 1-1.4: device descriptor read/64, error -110
[ ] usb 1-1.4: reset high-speed USB device number 5 using ehci_hcd
[ ] usb 1-1.4: device not accepting address 5, error -110
[ ] usb 1-1.4: reset high-speed USB device number 5 using ehci_hcd
[ ] usb 1-1.4: device not accepting address 5, error -110
[ ] usb 1-1.4: USB disconnect, device number 5
[ ] usb 1-1.4: new high-speed USB device number 6 using ehci_hcd
[ ] usb 1-1.4: device descriptor read/64, error -110
[ ] usb 1-1.4: device descriptor read/64, error -110
[ ] usb 1-1.4: new high-speed USB device number 7 using ehci_hcd
[ ] usb 1-1.4: device descriptor read/64, error -110

and also in kernel blacklist but xhci is impossible to deactivate in Ubuntu

Can anyone please show some steps how to disable this xhci so that i can find exact issue by debugging the device with ehci only?

1 Answer 1

0

xhci_hcd is built into the kernel in at least 14.04. You can recompile the kernel so it is a module instead (it's under Device Drivers | USB support in the kernel config menu, press spacebar until it is M, or set CONFIG_USB_XHCI_HCD=m in the .config file). With that built you can then blacklist it and load and unload with modprobe and rmmod at will.

Unfortunately for me I think that my motherboard requires xhci_hcd even for usb 2.0 and cannot use just ehci_hcd, so not having the xhci_hcd module loaded means no usb at all (or I need to take further steps to get it working):

$ lsusb
unable to initialize libusb: -99

But it's useful to have a xhci module, I can at least recompile it with some hacks without having to recompile the whole kernel.

You must log in to answer this question.