LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Observations on Slackware-current UEFI install 'glitch' on MSI X99S motherboard (https://www.linuxquestions.org/questions/slackware-14/observations-on-slackware-current-uefi-install-%27glitch%27-on-msi-x99s-motherboard-4175552860/)

kingbeowulf 09-07-2015 02:02 PM

Observations on Slackware-current UEFI install 'glitch' on MSI X99S motherboard
 
This is a perfect example to to why, when our BDFL recommends, to make a USB boot stick "just in case". Its a bit lengthy for the tl;dr crowd, but may be useful to some as it also shows that UEFI implementations can vary.

I have set up on old Slackware-14.1 server to allow PXE boot via syslinux menu of both Slackware64-current and Slackware-current. This avoids the need to update an install DVD or USB stick, or in case one's laptop does not have an optical drive. TFTP boot was set up as per instructions in README_PXE.TXT and syslinux docs. This has worked well. So far:

Asus x200CA Intel notebook PC UEFI, safe boot off
This system does not provide a legacy boot mode. PXE boots works, set up GPT partitions, installer runs to completion. skip lilo and elilo config prompts normally. Slackware64-current boots normally in UEFI via elilo.

MSI U123 Atom netbook BIOS
PXE boots works, set up standard partitions, installer runs to completion. lilo prompts run normally. Slackware-current boots normally from MBR via lilo.

MSI X99S SLI Krait motherboard UEFI, UEFI+Legacy, safe boot off
This motherboard allows UEFI only boot or simultaneous UEFI+Legacy boot. With UEFI+legacy setting, PXE boot works, I set up the appropriate GPT partitions, setup runs and completes. However, only the lilo setup prompt occurs; no elilo prompts occur. The usb stick, however, is set up for UEFI boot. In summary:
  • LILO boots old Slackware-14.1 (/dev/sdb1) ok with UEFI+legacy setting.
  • PXE boots ok on UEFI+legacy setting
  • PXE does NOT boot on UEFI only setting
  • USB stick only boots via UEFI and NOT UEFI+legacy
  • eliloconfig does not run under UEFI+legacy mode (no error message)
At this point, I needed to set the X99 to boot UEFI only, plug in the USB stick, and I can now boot into the new Slackware64-current install on /dev/sda2. At this point, I note that /boot/efi/EFI/Slackware is empty. Being in UEFI only, run eliloconfig, which now works, and I can boot into Slackware64-currect without the USB stick.

However, in UEFI only, I cannot boot onto the old /dev/sdb1 Slackware partition. Howver, in UEFI+legacy mode, all the boot options are available. I can copy a 14.1 kernel and initrd over from /dev/sdb1 and set up elilo.conf:
Code:

prompt
chooser=simple
delay=1
timeout=50
default=slack64c
#
image=vmlinuz-generic
        label=slack64c
        initrd=initrd.gz
        read-only
        append="root=/dev/sda2 vga=normal ro"
image=vmlinuz-generic-3.10.17
        label=slackwarew64
        initrd=initrd2.gz
        read-only
        append="root=/dev/sdb1 vga=normal ro"

I can now boot into either Slackware installation without converting /dev/sdb to GPT partitions.

It may not be worth while determining why setup and liloconfig are a bit brittle on this particular motherboard UEFI firmware implementation. Going forward, I doubt many of us will need a legacy boot mode for much longer.

j_v 09-07-2015 02:36 PM

So this must be the answer to http://www.linuxquestions.org/questi...ad-4175552092/? Very cool you sorted it out. Thanks for sharing the solutions here. Much appreciated.

Didier Spaier 09-07-2015 02:41 PM

Thanks for sharing your findings kingbeowulf. Yes of course UEFI implementation vary.

If you get no elilo prompt during installation, that's because /usr/sbin/eliloconfig didn't find a /sys/firmware/efi directory, that efibootmgr needs to work (it is through that interface that it modifies the firmware's menu IIRC).

In some cases (e.g. here) the firmware can give priority to UEFI or legacy booting if it proposes both. I don't know if this is the case for your MSI X99S motherboard. It is possible that its firmware advertize its UEFI interface to the OS only in case of UEFI only, or maybe also when both are enabled but then when priority is set to UEFI.

You could check that yourself: just start the Slackware installer and as soon as logged in as (fake) root, check the existence of the directory /sys/firmware/efi.

Rinndalir 09-07-2015 04:39 PM

Try out rEFInd sometime.

ReaperX7 09-07-2015 04:42 PM

Make sure you report this to the motherboard manufacturer as well so they can fix it in a firmware update, also.

Didier Spaier 09-07-2015 04:51 PM

Quote:

Originally Posted by Rinndalir (Post 5417196)
Try out rEFInd sometime.

rEFINd helps a lot, especially in case of buggy or faulty or incomplete implementation of the UEFI specification in the provided firmware. In an ideal world (certainly not to morrow morning, alas) we shouldn't need it...

kingbeowulf 09-07-2015 06:05 PM

1 Attachment(s)
Quote:

Originally Posted by ReaperX7 (Post 5417198)
Make sure you report this to the motherboard manufacturer as well so they can fix it in a firmware update, also.

Good idea. When in the (BIOS) setup screen, the firmware shows what available boot devices are available, and highlights those with a detected boot partition or flag. With UEFI+legacy, that's a whole mess o' boot device icons, with, now, HD-u, HD, NET icons lit up (see attached photograph). Pretty damn silly to have it force legacy installation when obviously it can boot both.


All times are GMT -5. The time now is 04:29 AM.