In Slackware64-14.1, the huge kernel has both
echi_hcd and
ehci_pci configured as modules. After booting with the huge kernel,
lsmod suggests
ehci_hcd is used by ehci_pci, and
lspci -k shows the USB controller using
ehci_pci,
not ehci_hcd.
Code:
# grep -i ehci /boot/config-huge-3.10.17
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
# lsmod | grep ehci
echi_pci 3688 0
ehci_hcd 39725 1 ehci_pci
# lspci -k | grep -B 2 ehci
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
Subsystem: Hewlett-Packard Company Device 30e7
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci
--
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
Subsystem: Hewlett-Packard Company Device 30e7
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci
If
mkinitrd_command_generator.sh is run in this setting, it gives a cmdline which misses
echi_hcd:
Code:
mkinitrd -c -k 3.10.17 -f ext4 -r /dev/sda1 -m usbhid:hid_generic:uhci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz
It misses
echi_hcd, because it uses
ls -Ld /sys/module/*_hcd/drivers/* to pick modules for the USB Host Controller, and there is no
/sys/module/ehci_hcd/drivers/ subdir, only a
/sys/module/ehci_pci/drivers/.
After booting with this
initrd, without the
ehci_hcd, and the generic kernel, the kernel issues a warning in
dmesg:
Code:
<4>[ 5.640786] Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after
Of course, including manually the
ehci_hcd module in the above cmdline results in an
initrd which boots without repeating the kernel warning.
It seems kernel 3.10.17 handles
ehci differently from previous Slackware kernels and hopefully a next version of the
mkinitrd_command_generator.sh will address this. This is
not intended as criticism, I am indebted to alienBOB for his on-going contribution to Slackware.
Two similar threads I could locate,
here, and
here.