Slackware64-current(>14.2): bug with UEFI install onto DELL Inspiron 14-3452 laptop ( eMMC 32GB drive ) from usb-stick image
BUG-REPORT:
Laptop: DELL Inspiron 14-3452 UEFI/BIOS rev 4.0.9(latest) eMMC (embedded MultiMediaCard) One embedded MultiMediaCard as main hard drive(32-GB) Info: http://www.dell.com/us/p/inspiron-14-3452-laptop/pd http://www.dell.com/support/home/us/...laptop/manuals CHALLENGE: Installer initrd.img loads modules(mmc_core,mmc_block,sdhci,sdhci_acpi) needed for drive discovery, partitioning & selection in TARGET of install. However, the "eliloconfig" script does _not_ see the EFI partition(/dev/mmcblk0p1) during boot loader installation and silently fails through to the next setup step. CAUSE: Perhaps the drive sensing logic of the eliloconfig script does not include the eMMC sections in its evaluation of the /dev/ directory? Line #10 of the Code:
/usr/lib/setup/SeTEFI Code:
sda..sdp Code:
/dev/mmcblk0p1 = EFI(512-MB VFAT ESP) SOLUTION: 1. Rebuild the vmlinuz-huge kernel to include: Code:
CONFIG_MMC=y 3. Rebuild the SeTEFI script to also probe /dev/mmcblk0...mmcblk16. 4. Add the 'rootwait' kernel parameter to the elilo.conf append line for eMMC installs. 5. Install and enjoy(not tested). OR 4. Chroot into TARGET after install, but _before_ rebooting and build an initrd.gz with the needed modules for the eMMC drive and adjust the elilo.conf, accordingly. NOTE: 'rootwait' is _not_ needed if using the vmlinuz-generic with an initrd.gz. 5. Install and enjoy(not tested). OR 4. If you choose _not_ to rebuild the probing function in the SeTEFI script, then -- after install, but _before_ reboot: a. Code:
#mkdir -p /mnt/boot/efi/EFI/Slackware Code:
elilo.conf* elilo.efi* vmlinuz*(<-- this is your rebuilt vmlinuz-huge copied into this folder and referenced in your elilo.conf) Code:
append="root=/dev/mmcblk0p3 rootwait" Code:
/dev/mmcblk0p1 /boot/efi vfat defaults 1 0 |
UPDATE:
1. Just to clarify, the SeTEFI script will prolly need to probe for something more like this " /dev/mmcblk{0..16}p " in order to match the logic of the " /dev/sd{a..p} ". [ IANAP ;-) ] 2. I have now tested the ' chroot ' before reboot idea and it works well. However, it is *important* to first mount your EFI(ESP) partition onto /boot/efi _before_ you create the subdirectories it needs(i.e. ' # mkdir -p /boot/efi/EFI/Slackware/). And then, Code:
# /usr/share/mkinitrd/mkinitrd_command_generator.sh |
I ran into this problem installing on my HP Stream 13 netbook (13-c110nr) which has a similar mmcblk0 device though I'm still having some issues. Getting the system to boot after install was complicated, because I wasn't sure if I had done something wrong with my ELILO installation (true, since the installer fails to check the mmcblk0 device for an EFI partition it never attempts to configure it) or if the kernel couldn't read the root disk upon reboot (this was true also). After a lot of muddling I managed to manually configure ELILO and to get the system to boot by compiling a new huge kernel using the existing huge config plus the following changes as suggested above:
CONFIG_MMC=y CONFIG_MMC_BLOCK=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PCI=y CONFIG_MMC_SDHCI_ACPI=y However, despite many attempts I haven't been able to make a generic kernel + initrd see the root device and boot successfully on this machine. Here is what mkinitrd_command_generator.sh puts out once booted under the newly-compiled huge kernel, but this combination of modules doesn't work: mkinitrd -c -k 4.4.29 -f ext4 -r /dev/mmcblk0p3 -m mmc_core:iosf_mbi:sdhci:sdhci-acpi:xhci-pci:ohci-pci:ehci-pci:xhci-hcd:uhci-hcd:ehci-hcd:hid:usbhid:i2c-hid:hid_generic:hid-cherry:hid-logitech:hid-logitech-dj:hid-logitech-hidpp:hid-lenovo:hid-microsoft:hid_multitouch:jbd2:mbcache:ext4 -u -o /boot/initrd.gz I've also tried recompiling a generic kernel with the above config options (e.g. built into the kernel as opposed to modules) and that didn't boot either though I don't know why. How do I track down which modules or config options I actually need to include to access the root device? dmesg output: pastebin.com/raw/anhD9W8S |
Update:
After a lot more experimentation I was able to make a generic kernel work on my device (HP Stream 13) by: 1) Upgrading to kernel 4.8.7 2) In addition to the above kernel config options, setting CONFIG_PINCTRL_BAYTRAIL=y in config |
Quote:
|
All times are GMT -5. The time now is 06:13 PM. |