You are not logged in.
I noticed that if I install Arch on USB key on my Lenovo laptop (X201i with USB 2.0 only ports), it works fine as well as in other computers - but only in USB 2.0 ports. When plugged it in USB 3.0 port, it falls to recovery shell because it can't find root device by UUID (disk is also not visible in /dev/disk in recovery shell). While if I install Arch on USB key while plugged to USB 3.0 port on my desktop it works everywhere.
I dd'ed each installation and while there was no difference in /boot, /etc, /usr or /var, I noticed that initramfs-linux.img differed. After unpacking I found that the working initramfs contained hid-generic.ko, hid-logitech-dj.ko and most importantly xhci-hcd.ko
Neither in https://wiki.archlinux.org/index.php/In … _a_USB_key or https://wiki.archlinux.org/index.php/mkinitcpio is USB 3.0/xhci-hdc mentioned. It's said that HOOK block covers usb but it may not include xhci-hcd.ko if someone want's to create trully portable installation. Is this a expected behavior or a bug? This definitely should be mentioned somewhere.
Last edited by moneytoo (2014-05-10 22:23:46)
Offline
Please be aware that initramfs-linux.img contains only the kernel modules for devices needed for booting that were present on the system that the initramfs was built on.
See the information on the 'autodetect' hook at: https://wiki.archlinux.org/index.php/Mk … activation
If you want to use a truly portable initramfs, you need to boot the 'fallback' option. This loads initramfs-linux-fallback.img, which should contain all the modules reasonably expected to be needed for booting any system supported by Arch (you can add more by installing additional packages and adding their hooks to /etc/mkinitcpio.conf).
Last edited by ackalker (2014-05-12 15:45:23)
Offline
Thanks for clarification. So the hook 'block' adds support for various USB controllers but hook 'autodetect' removes those for which hardware is not present. I understand that but it just doesn't seem perfectly right solution. If that isn't bug, I will put a note about the autodetect hook in https://wiki.archlinux.org/index.php/In … stallation
Offline
Well, the link I posted above explains very well what 'autodetect' does:
The autodetect hook detects required modules and tailors the image for specific hardware, shrinking the initramfs.
so I see no reason to call this behaviour a bug. If you don't like what it does, you can always remove this hook from /etc/mkinitcpio.conf (in which case the fallback image becomes redundant).
Also, the Wiki link explaining USB installation which you provided contains this section:
The fallback image should be used for maximum compatibility.
Perhaps you could reword this to make it a bit more clear that one should use the fallback image when the 'minified' image fails to boot because of difference in hardware between the system which created that image and the system booting from it.
Last edited by ackalker (2014-05-12 19:33:06)
Offline
As far as I understand, accordingly with the experience I had, which I posted in here XHCI does need to be enabled and preloaded in order to allow booting from USB 3.0 pendrives inserted in USB 3.0 ports. However, I tried to preload that module on kernel parameters and didn't succeed. Only by going to UEFI settings and enabling XHCI Pre-Boot mode and then booting from fallback entry.
Last edited by dtmanduca (2015-07-05 04:40:16)
Offline
In my usb stick, I had to include xhci-pci and xhci-hcd in the MODULES section on mkinitcpio.conf in order to boot from usb 3.0.
Offline
I've consistently had trouble with USB 3.0 and booting. I think some motherboards that were quick to implement it require firmware installed to correctly use the USB 3.0 ports.
Good thing you've fixed your issue, though.
Offline