Disable xhci_hcd USB 3.0 module
Hi guys, I have a notebook with 2 ports USB 2.0 and one USB 3.0. For some reason, kernel uses xhci_hcd module driver for all the three ports. Since I have an application that isn't compatilbe with xhci_hcd driver, I need disable it, and force the use of ehci-pc driver. My question is, since xhci_hcd is compiled inside the kernel, how can i do to disable it, without re-compile the kernel ? Thanks in advance. Gustavo.
On Mon, Dec 15, 2014 at 01:04:57PM -0200, Gustavo Duarte wrote:
Hi guys,
I have a notebook with 2 ports USB 2.0 and one USB 3.0.
For some reason, kernel uses xhci_hcd module driver for all the three ports.
Then you really have 3 USB 3 ports in the system.
Since I have an application that isn't compatilbe with xhci_hcd driver, I need disable it, and force the use of ehci-pc driver.
What type of application isn't compatible with xhci-hcd? Shouldn't we fix something like this in the kernel as this isn't a good thing to have.
My question is, since xhci_hcd is compiled inside the kernel, how can i do to disable it, without re-compile the kernel ?
You control where the driver is compiled, why not change it if needed? confused, greg k-h
Hi Greg, The Notebook has physically 2 port USB 2.0 and one port USB 3.0. The manufacturer specs says that and the output of the command lsusb says the same: $ lsusb Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 5986:024b Acer, Inc
What type of application isn't compatible with xhci-hcd? Shouldn't we fix something like this in the kernel as this isn't a good thing to have.
The app, is a SDK of Robootic kits programming for kids. http://www.lejos.org/nxt/nxj/tutorial/Preliminaries/GettingStartedLinux.htm The bug is on the firmware-library of the SDK, so there isn't to fix on kernel/driver side. I'm using the kernel compilde by ubuntu 12.04, $ uname -r 3.8.0-33-generic And i would like still using that, without recompile it, for this reason is my question, how can i disable xhci_hcd driver without recompile it. ? I hope the explanation of my problem be clear enough. Thanks in advance. Gustavo. On Mon, Dec 15, 2014 at 1:30 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
On Mon, Dec 15, 2014 at 01:04:57PM -0200, Gustavo Duarte wrote:
Hi guys,
I have a notebook with 2 ports USB 2.0 and one USB 3.0.
For some reason, kernel uses xhci_hcd module driver for all the three ports.
Then you really have 3 USB 3 ports in the system.
Since I have an application that isn't compatilbe with xhci_hcd driver, I need disable it, and force the use of ehci-pc driver.
What type of application isn't compatible with xhci-hcd? Shouldn't we fix something like this in the kernel as this isn't a good thing to have.
My question is, since xhci_hcd is compiled inside the kernel, how can i do to disable it, without re-compile the kernel ?
You control where the driver is compiled, why not change it if needed?
confused,
greg k-h
On Mon, Dec 15, 2014 at 02:50:32PM -0200, Gustavo Duarte wrote:
Hi Greg,
The Notebook has physically 2 port USB 2.0 and one port USB 3.0. The manufacturer specs says that and the output of the command lsusb says the same:
$ lsusb
Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 5986:024b Acer, Inc
Note that USB 3 controllers control USB 2 hubs, odds are there is just one controller chip in your laptop. What does 'lspci' show?
What type of application isn't compatible with xhci-hcd? Shouldn't we fix something like this in the kernel as this isn't a good thing to have.
The app, is a SDK of Robootic kits programming for kids. http://www.lejos.org/nxt/nxj/tutorial/Preliminaries/GettingStartedLinux.htm The bug is on the firmware-library of the SDK, so there isn't to fix on kernel/driver side.
I don't understand, what exact bug is there?
I'm using the kernel compilde by ubuntu 12.04,
$ uname -r 3.8.0-33-generic
Wow that's old and obsolete, sorry, no one can help you with something like that here :( Also, _lots_ of USB 3 bugs have been fixed in the 2 years since that kernel was released, please try updating and your issues should be resolve.
And i would like still using that, without recompile it, for this reason is my question, how can i disable xhci_hcd driver without recompile it. ?
You can unbind the driver from the device, but as I say above, I really think this driver also controls the USB 2 hubs as well. The output of 'lspci -k' will show this, can you provide the output of that? thanks, greg k-h
Greg, The lspci output is: ceibal@ceibal:~$ lspci -k 00:00.0 Host bridge: Intel Corporation ValleyView SSA-CUnit (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 00:02.0 VGA compatible controller: Intel Corporation ValleyView Gen7 (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 Kernel driver in use: i915 Kernel modules: i915 00:13.0 SATA controller: Intel Corporation ValleyView 6-Port SATA AHCI Controller (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 Kernel driver in use: ahci Kernel modules: ahci 00:14.0 USB controller: Intel Corporation ValleyView USB xHCI Host Controller (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 Kernel driver in use: xhci_hcd 00:1a.0 Encryption controller: Intel Corporation ValleyView SEC (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 00:1b.0 Audio device: Intel Corporation ValleyView High Definition Audio Controller (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 Kernel driver in use: snd_hda_intel Kernel modules: snd-hda-intel 00:1c.0 PCI bridge: Intel Corporation ValleyView PCI Express Root Port (rev 0e) Kernel driver in use: pcieport Kernel modules: shpchp 00:1c.1 PCI bridge: Intel Corporation ValleyView PCI Express Root Port (rev 0e) Kernel driver in use: pcieport Kernel modules: shpchp 00:1c.2 PCI bridge: Intel Corporation ValleyView PCI Express Root Port (rev 0e) Kernel driver in use: pcieport Kernel modules: shpchp 00:1c.3 PCI bridge: Intel Corporation ValleyView PCI Express Root Port (rev 0e) Kernel driver in use: pcieport Kernel modules: shpchp 00:1f.0 ISA bridge: Intel Corporation ValleyView Power Control Unit (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 00:1f.3 SMBus: Intel Corporation ValleyView SMBus Controller (rev 0e) Subsystem: CLEVO/KAPOK Computer Device 5471 01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5286 (rev 01) Subsystem: CLEVO/KAPOK Computer Device 5471 Kernel driver in use: rtsx_pci Kernel modules: rtsx_pci 01:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 06) Subsystem: CLEVO/KAPOK Computer Device 5471 Kernel driver in use: r8169 Kernel modules: r8169 02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188EE Wireless Network Adapter (rev 01) Subsystem: Realtek Semiconductor Co., Ltd. Device 0188 Kernel driver in use: rtl8188ee Kernel modules: rtl8188ee =================================================== Seems like here is happening you are saying, one host-controller (xHCI) manage the three USB port, right ? May be i have a confusion, and i sorry for that, may be what i am asking it is impossible or may be is a blunder, any way following is my thought: " I know that there are several PC, Notebooks with BIOS with the capability to enable/disable xHCI USB mode, where you can choice, xHCI or EHCI. For this reason i thought that could be possible, instead by BIOS, through some kernel configuration or passing a switch parameter at boot time achieve the same behaviour. " Do you are saying that, as this notebook has only one usb host-controller, these option isn't possible ? So the only remainder way to resolve this, is trying with a new one kernel ? Thanks in advance. Gustavo. On Mon, Dec 15, 2014 at 3:08 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
On Mon, Dec 15, 2014 at 02:50:32PM -0200, Gustavo Duarte wrote:
Hi Greg,
The Notebook has physically 2 port USB 2.0 and one port USB 3.0. The manufacturer specs says that and the output of the command lsusb says the same:
$ lsusb
Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 5986:024b Acer, Inc
Note that USB 3 controllers control USB 2 hubs, odds are there is just one controller chip in your laptop.
What does 'lspci' show?
What type of application isn't compatible with xhci-hcd? Shouldn't we fix something like this in the kernel as this isn't a good thing to have.
The app, is a SDK of Robootic kits programming for kids. http://www.lejos.org/nxt/nxj/tutorial/Preliminaries/GettingStartedLinux.htm The bug is on the firmware-library of the SDK, so there isn't to fix on kernel/driver side.
I don't understand, what exact bug is there?
I'm using the kernel compilde by ubuntu 12.04,
$ uname -r 3.8.0-33-generic
Wow that's old and obsolete, sorry, no one can help you with something like that here :(
Also, _lots_ of USB 3 bugs have been fixed in the 2 years since that kernel was released, please try updating and your issues should be resolve.
And i would like still using that, without recompile it, for this reason is my question, how can i disable xhci_hcd driver without recompile it. ?
You can unbind the driver from the device, but as I say above, I really think this driver also controls the USB 2 hubs as well. The output of 'lspci -k' will show this, can you provide the output of that?
thanks,
greg k-h
On Mon, Dec 15, 2014 at 06:47:21PM -0200, Gustavo Duarte wrote:
00:14.0 USB controller: Intel Corporation ValleyView USB xHCI Host Controller (rev 0e)
Subsystem: CLEVO/KAPOK Computer Device 5471
Kernel driver in use: xhci_hcd
One host controller.
Seems like here is happening you are saying, one host-controller (xHCI) manage the three USB port, right ?
Yes.
May be i have a confusion, and i sorry for that, may be what i am asking it is impossible or may be is a blunder, any way following is my thought: " I know that there are several PC, Notebooks with BIOS with the capability to enable/disable xHCI USB mode, where you can choice, xHCI or EHCI. For this reason i thought that could be possible, instead by BIOS, through some kernel configuration or passing a switch parameter at boot time achieve the same behaviour. "
Do you are saying that, as this notebook has only one usb host-controller, these option isn't possible ?
Looks like it. But I don't know what your bios looks like, poke around in there and see if you can find a setting like that. I've never heard of such a thing though. The xhci controller is a physical chip, it can't work like a ehci controller.
So the only remainder way to resolve this, is trying with a new one kernel ?
To see if the bug you are having with a USB 3 device is fixed, yes. You will not be able to ever get the ehci driver to work with this device no matter what kernel you change to, sorry. greg k-h
Greg, Thanks for confirm my thought. I tried with a kernel 3.16 builded by Ubuntu guys, http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-image-3.16.... And the same behaviour, the Roboot lego kit can't establishes the communication with the PC. Do you think that with 3.18 kernel I will have a chance to resolve this ? or there aren't significantly changes related tu USB between 3.16 and 3.18 version. I guess that the problem is on SDK library usb communication, (libusb) i'm going to make a research to this side. Although this issue isn't resolved your help was very helpful, it was like lightning. Regards. Gustavo . On Mon, Dec 15, 2014 at 7:01 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
On Mon, Dec 15, 2014 at 06:47:21PM -0200, Gustavo Duarte wrote:
00:14.0 USB controller: Intel Corporation ValleyView USB xHCI Host Controller (rev 0e)
Subsystem: CLEVO/KAPOK Computer Device 5471
Kernel driver in use: xhci_hcd
One host controller.
Seems like here is happening you are saying, one host-controller (xHCI) manage the three USB port, right ?
Yes.
May be i have a confusion, and i sorry for that, may be what i am asking it is impossible or may be is a blunder, any way following is my thought: " I know that there are several PC, Notebooks with BIOS with the capability to enable/disable xHCI USB mode, where you can choice, xHCI or EHCI. For this reason i thought that could be possible, instead by BIOS, through some kernel configuration or passing a switch parameter at boot time achieve the same behaviour. "
Do you are saying that, as this notebook has only one usb host-controller, these option isn't possible ?
Looks like it. But I don't know what your bios looks like, poke around in there and see if you can find a setting like that. I've never heard of such a thing though. The xhci controller is a physical chip, it can't work like a ehci controller.
So the only remainder way to resolve this, is trying with a new one kernel ?
To see if the bug you are having with a USB 3 device is fixed, yes. You will not be able to ever get the ehci driver to work with this device no matter what kernel you change to, sorry.
greg k-h
On Mon, Dec 15, 2014 at 07:32:52PM -0200, Gustavo Duarte wrote:
Greg,
Thanks for confirm my thought.
I tried with a kernel 3.16 builded by Ubuntu guys, http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-image-3.16....
And the same behaviour, the Roboot lego kit can't establishes the communication with the PC.
Do you think that with 3.18 kernel I will have a chance to resolve this ? or there aren't significantly changes related tu USB between 3.16 and 3.18 version.
I guess that the problem is on SDK library usb communication, (libusb) i'm going to make a research to this side.
There should not be any difference between USB 2 and USB 3 from your userspace program's point of view, so something is wrong in the kernel. libusb should be fine. I suggest posting the real problems you are having here on the linux-usb@vger.kernel.org mailing list and the developers there can help you out. thanks, greg k-h
As Greg mentioned, there's probably nothing that the software can do. You can possibly try using different hardware for your host....one that has a USB 2.0 root hub. On Mon, Dec 15, 2014 at 1:32 PM, Gustavo Duarte <gus.duarte@gmail.com> wrote:
Greg,
Thanks for confirm my thought.
I tried with a kernel 3.16 builded by Ubuntu guys, http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-image-3.16....
And the same behaviour, the Roboot lego kit can't establishes the communication with the PC.
Do you think that with 3.18 kernel I will have a chance to resolve this ? or there aren't significantly changes related tu USB between 3.16 and 3.18 version.
I guess that the problem is on SDK library usb communication, (libusb) i'm going to make a research to this side.
Although this issue isn't resolved your help was very helpful, it was like lightning.
Regards. Gustavo .
On Mon, Dec 15, 2014 at 7:01 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
On Mon, Dec 15, 2014 at 06:47:21PM -0200, Gustavo Duarte wrote:
00:14.0 USB controller: Intel Corporation ValleyView USB xHCI Host Controller (rev 0e)
Subsystem: CLEVO/KAPOK Computer Device 5471
Kernel driver in use: xhci_hcd
One host controller.
Seems like here is happening you are saying, one host-controller (xHCI) manage the three USB port, right ?
Yes.
May be i have a confusion, and i sorry for that, may be what i am asking it is impossible or may be is a blunder, any way following is my thought: " I know that there are several PC, Notebooks with BIOS with the capability to enable/disable xHCI USB mode, where you can choice, xHCI or EHCI. For this reason i thought that could be possible, instead by BIOS, through some kernel configuration or passing a switch parameter at boot time achieve the same behaviour. "
Do you are saying that, as this notebook has only one usb host-controller, these option isn't possible ?
Looks like it. But I don't know what your bios looks like, poke around in there and see if you can find a setting like that. I've never heard of such a thing though. The xhci controller is a physical chip, it can't work like a ehci controller.
So the only remainder way to resolve this, is trying with a new one kernel ?
To see if the bug you are having with a USB 3 device is fixed, yes. You will not be able to ever get the ehci driver to work with this device no matter what kernel you change to, sorry.
greg k-h
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (3)
-
Greg KH -
Gustavo Duarte -
Mandeep Sandhu