LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - Installation
User Name
Password
Slackware - Installation This forum is for the discussion of installation issues with Slackware.

Notices


Reply
  Search this Thread
Old 08-23-2016, 06:05 PM   #1
ckrzen
LQ Newbie
 
Registered: Nov 2015
Location: Tulsa, OK, U.S.A.
Distribution: Slackware64-current
Posts: 4

Rep: Reputation: 2
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
script only probes for drives
Code:
sda..sdp
The partitions needing detection, in my case, are:

Code:
/dev/mmcblk0p1 = EFI(512-MB VFAT ESP)

/dev/mmcblk0p2 = LINUX-SWAP(4-GB SWAP)

/dev/mmcblk0p3 = LINUX(24.6-GB EXT4 /)

SOLUTION:

1. Rebuild the vmlinuz-huge kernel to include:

Code:
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PCI=y
CONFIG_MMC_SDHCI_ACPI=y
2. Replace the pre-existing huge.s file on the root of the usb-stick with the new vmlinuz-huge.

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
b. Populate /mnt/boot/efi/EFI/Slackware with elilo boot files
Code:
elilo.conf*  elilo.efi*  vmlinuz*(<-- this is your rebuilt vmlinuz-huge copied into this folder and referenced in your elilo.conf)
c. Change elilo.conf to include 'rootwait', i.e.
Code:
append="root=/dev/mmcblk0p3 rootwait"
d. Edit /etc/fstab and add just below the '/' mount entry:
Code:
/dev/mmcblk0p1    /boot/efi    vfat    defaults    1  0
5. Reboot and enjoy(tested).
 
Old 08-25-2016, 11:09 AM   #2
ckrzen
LQ Newbie
 
Registered: Nov 2015
Location: Tulsa, OK, U.S.A.
Distribution: Slackware64-current
Posts: 4

Original Poster
Rep: Reputation: 2
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

# { insert output of previous cmd here }

# cp vmlinuz-generic initrd.gz /boot/efi/EFI/Slackware/

# vi /boot/efi/EFI/Slackware/elilo.conf
 
2 members found this post helpful.
Old 11-12-2016, 11:12 AM   #3
lka
LQ Newbie
 
Registered: Nov 2016
Posts: 2

Rep: Reputation: Disabled
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-pcihci-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
 
Old 11-19-2016, 03:21 PM   #4
lka
LQ Newbie
 
Registered: Nov 2016
Posts: 2

Rep: Reputation: Disabled
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
 
Old 11-27-2016, 08:24 AM   #5
Chuck56
Member
 
Registered: Dec 2006
Location: Colorado, USA
Distribution: Slackware
Posts: 930

Rep: Reputation: 479Reputation: 479Reputation: 479Reputation: 479Reputation: 479
Quote:
Originally Posted by lka View Post
...
mkinitrd -c -k 4.4.29 -f ext4 -r /dev/mmcblk0p3 -m mmc_core:iosf_mbi:sdhci:sdhci-acpi:xhci-pcihci-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 run into this same shortcoming on my Kangaroo PC with eMMC drives. In your mkinitrd command either add mmc_block or change the mmc_core to mmc_block (mmc_core loads auto-magically from mmc_block).
 
  


Reply

Tags
dev, kernel config, mmc, modules, uefi



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Thunar does not automount USB stick in Windowmaker on Slackware64-current allend Slackware 4 04-18-2016 08:29 AM
Cannot boot Mint usb while in UEFI mode, using Dell Inspiron 5548 laptop Creepy Linux - Newbie 14 11-07-2015 10:04 PM
Slackware64 13.137 on Dell Inspiron 14z: USB 3.0 TwinReverb Slackware 0 10-29-2011 05:36 PM
Slackware64-current installation via usb stick hangs before setup mr_mandrill Slackware - Installation 9 09-11-2009 09:21 AM
Getting a Dell A940 USB printer to work on Dell Inspiron 1100 Laptop benrose111488 Linux - Hardware 12 09-24-2007 12:04 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - Installation

All times are GMT -5. The time now is 02:21 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration