FS#12009 - Load ehci-hcd before uhci_hcd and ohci_hcd
Attached to Project:
Arch Linux
Opened by Peter Csepely (Thief_hu) - Wednesday, 05 November 2008, 19:19 GMT
Last edited by Thomas Bächler (brain0) - Monday, 19 January 2009, 10:07 GMT
Opened by Peter Csepely (Thief_hu) - Wednesday, 05 November 2008, 19:19 GMT
Last edited by Thomas Bächler (brain0) - Monday, 19 January 2009, 10:07 GMT
|
Details
Description:
There is a warning in system log: "Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after" Maybe an udev rule can fix it, but I don't know how :) Thank you very much. Additional info: * package version(s) kernel26: 2.6.27.4-1 * config and/or log files etc. dmesg output attached |
This task depends upon
install ohci_hcd modprobe ehci_hcd && modprobe ohci_hcd
install uhci_hcd modprobe ehci_hcd && modprobe uhci_hcd
The "install" command says "hey when you modprobe X, do this instead". I don't think we can use modprobe -a here, because the order might not be guaranteed.
BUT, as others have pointed out, the problem appears to be in mkinitcpio more than anything.
I don't like the modprobe magic. The ehci should only be loaded on machines that support usb 2.0. This worked great until now, I vote for kernel bug (see my previous comment).
commit 9beeee6584b9aa4f9192055512411484a2a624df
Author: Alan Stern <stern@rowland.harvard.edu>
Date: Thu Oct 2 11:48:13 2008 -0400
USB: EHCI: log a warning if ehci-hcd is not loaded first
This patch (as1139) adds a warning to the system log whenever ehci-hcd
is loaded after ohci-hcd or uhci-hcd. Nowadays most distributions are
pretty good about not doing this; maybe the warning will help convince
anyone still doing it wrong.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@kernel.org> [2.6.27]
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
1) The above commit doesn't give a reason why ehci should be loaded first, it just says that this is the way it is
2) ehci-hcd would then be loaded also on systems with no ehci controller. That doesn't fit into my understanding of how module autoloading should work, but then, any other distribution probably does it this way, or not at all.
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install ohci_hcd $CMDLINE_OPTS
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install uhci_hcd $CMDLINE_OPTS
changes from the above are:
* use absolute paths to modprobe
* try to load uhci_hcd even if "modprobe ehci_hcd" fails (; instead of &&)
* use the proper --ignore-install to avoid recursive loop
* supply the user requested command line options to the modprobe command