#1244 PR merged
: Add USB .hci_pci modules for broader hardware support¶
Labels: enhancement
, fixed / solved / done
ProBackup-nl opened issue at 2017-03-15 00:24:¶
mkrescue
on a source computer with both USB 2.0 and 3.0 port might run
with the xhci
module only.
When the (USB) boot device is used to start a USB 2.0 computer that
requires the ehci
module, both the ehci_hcd
and ehci_pci
modules,
to boot with USB keyboard and mouse support. Tested with Arch Linux
4.9.11-1 on an Intel DE3815TYKHE (USB2+3 where lsmod
only show the
xhci
module), then ReaR will not have keyboard support when booted on
a machine with USB 2.0 only. After adding the 4 (u|e|x|o)hci_pci
modules, the USB keyboard and mouse do function again with the USB 2.0
only mainboard. Also see
https://github.com/rear/rear/issues/519#issuecomment-286579288
jsmeix commented at 2017-03-15 09:39:¶
@ProBackup-nl
many thanks for your continuous work!
Almost with each of your issues you find a new spot
where ReaR could need general enhancement.
This helps a lot to make ReaR more stable in general.
Regarding this particular issue:
On my SUSE systems the kernel modules are named different
and not all of them exist on each system:
On SLE11 SP3
# find /lib/modules/ | grep xhci /lib/modules/3.0.101-0.47.71-pae/kernel/drivers/usb/host/xhci-hcd.ko
On SLE12 SP2
# find /lib/modules/ | grep xhci /lib/modules/4.4.21-69-default/kernel/drivers/usb/host/xhci-hcd.ko /lib/modules/4.4.21-69-default/kernel/drivers/usb/host/xhci-pci.ko
On openSUSE Leap 42.1
# find /lib/modules/ | grep xhci /lib/modules/4.1.15-8-default/kernel/drivers/usb/host/xhci-hcd.ko /lib/modules/4.1.15-8-default/kernel/drivers/usb/host/xhci-pci.ko /lib/modules/4.1.13-5-default/kernel/drivers/usb/host/xhci-hcd.ko /lib/modules/4.1.13-5-default/kernel/drivers/usb/host/xhci-pci.ko
On openSUSE Tumbleweed 20170304
# find /lib/modules/ | grep xhci /lib/modules/4.10.1-1-default/kernel/drivers/usb/host/xhci-hcd.ko /lib/modules/4.10.1-1-default/kernel/drivers/usb/host/xhci-pci.ko
I think the ResolveModules function in lib/linux-functions.sh
needs to be enhanced to find modules independent of
minor spelling issues like 'foo-bar' versus 'foo_bar'.
jsmeix commented at 2017-03-15 09:43:¶
Only as a reference:
In general regarding what kernel modules get included
in the recovery system see also the related issue
https://github.com/rear/rear/issues/1202
ProBackup-nl commented at 2017-03-15 10:58:¶
@jsmeix Your system does list the modules with a minus (-
) sign on the
filesystem. But how are the modules listed by lsmod
?
On Arch the file system also lists with a minus sign:
/usr/lib/modules/4.9.11-1-ARCH/kernel/drivers/usb/host/xhci-pci.ko.gz
On the other hand lsmod does:
lsmod | grep hci
ahci 36864 0
libahci 28672 1 ahci
xhci_pci 16384 0
xhci_hcd 172032 1 xhci_pci
And even by specifying the underscore (_
) form at
usr/share/rear/conf/GNU/Linux.conf, will make the module name with the
minus (-
) copied to rootfs. At least that is what happens on Arch
Linux.
Side note: not adding USB2.0 module to init on USB3.0 systems is
also/still an issue for the mkinitcpio
utility that is build-in to
Arch Linux itself.
jsmeix commented at 2017-03-15 11:44:¶
@ProBackup-nl
you are absolutely right.
Now I think I better understand how the ResolveModules
function works and even why it is implemented as it is.
I even found why '-' versus '_' does not matter
because "man modprobe" reads:
there is no difference between _ and - in module names
which seems to also apply for "modinfo".
I think there is a small issue in ResolveModules because
there is a difference between _ and - in module names
in EXCLUDE_MODULES versus MODULES and MODULES_LOAD
i.e. module names in EXCLUDE_MODULES must exactly
match module names in MODULES and MODULES_LOAD.
FYI my results:
On SLE11 SP3
# lsmod | grep hci firewire_ohci 35267 0 firewire_core 60704 1 firewire_ohci uhci_hcd 31410 0 ehci_hcd 55542 0 usbcore 199862 4 usb_storage,uhci_hcd,ehci_hcd
On SLE12 SP2
# lsmod | grep hci ahci 36864 0 libahci 36864 1 ahci libata 270336 4 ahci,libahci,ata_generic,ata_piix ehci_pci 16384 0 uhci_hcd 49152 0 ehci_hcd 81920 1 ehci_pci usbcore 258048 3 uhci_hcd,ehci_hcd,ehci_pci
On openSUSE Leap 42.1
# lsmod | grep hci xhci_pci 16384 0 ehci_pci 16384 0 xhci_hcd 184320 1 xhci_pci ehci_hcd 81920 1 ehci_pci usbcore 262144 6 usblp,ehci_hcd,ehci_pci,usbhid,xhci_hcd,xhci_pci
On openSUSE Tumbleweed 20170304
# lsmod | grep hci ehci_pci 16384 0 uhci_hcd 49152 0 ehci_hcd 86016 1 ehci_pci usbcore 266240 3 ehci_hcd,uhci_hcd,ehci_pci
jsmeix commented at 2017-03-15 11:48:¶
I think USB keyboard function on any replacement hardware
is a must nowadays so that I think ReaR should by default
include all needed USB modules in its recovery system.
I.e. I think this pull request should be merged.
ProBackup-nl commented at 2017-03-19 11:58:¶
@jsmeix
xhci_pci # USB 3.1, 3.0, 2.0, 1.1
ehci_pci # USB 2.0
ohci_pci # USB 1.1 non Intel or VIA chipset, like NEC
uhci_pci # USB 1.x Intel or VIA chipset
Regarding your USB modules loaded results, do they all run on identical hardware?
jsmeix commented at 2017-03-21 11:13:¶
I did all on "indentical hardware" which is actually
"identical virtual machines" i.e. virtual machines
which I set up in the same way.
[Export of Github issue for rear/rear.]