Installation

  • Status Closed
  • Percent Complete
    100%
  • Task Type Implementation Request
  • Category Firrmware
  • Assigned To
    Emulatorman
  • Operating System All
  • Severity Medium
  • Priority Very Low
  • Reported Version Milky Way v0.2
  • Due in Version Starfix
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Installation
Opened by Megver83 - 12/03/2019
Last edited by Emulatorman - 15/03/2019

FS#1366 - [ISO][UEFI] Replace Syslinux with rEFInd

Actual v0.2 ISOs use Syslinux UEFI Boot Manager for supporting EFI systems. However, I wanted to request its replacement by rEFInd, which is much, much better.

Here is why Syslinux should not be used, at least for more advanced tasks than just booting the OS:

  • UEFI Syslinux application syslinux.efi cannot be signed by sbsign (from sbsigntools) for UEFI Secure Boot. Bug report: [3]
  • Using TAB to edit kernel parameters in UEFI Syslinux menu might lead to garbaged display (text on top of one another). Bug report: [4]
  • UEFI Syslinux does not support chainloading other EFI applications like UEFI Shell or Memtest86+. Enhancement request: [5]
  • In some cases, UEFI Syslinux might not boot in some Virtual Machines like QEMU/OVMF or VirtualBox or some VMware products/versions and in some UEFI emulation environments like DUET. A Syslinux contributor has confirmed no such issues present on VMware Workstation 10.0.2 and Syslinux-6.02 or later. Bug reports: [6], [7] and [8]
  • Memdisk is not available for UEFI. Enhancement request: [9]

The citations are from the ArchWiki, check it out for more info.

From all of those points, I have confirmed the 3rd and 4th ones. These are a PITA, because EFI Shell is super useful (Parabola and Arch has it in its ISOs) and not being able to test it in VMs make it harded for ISO testers since they’ve to take more time on writing the image to the USB... etc.

rEFInd doesn’t have these issues, plus, it can be easily testes with QEMU. Try this:

  1. install ovmf package
  2. run the following, and specify the latest Milky Way ISO:
/bin/qemu-system-x86_64 -soundhw ac97 \
      -k es -machine accel=kvm -m 1024 \
      -boot once=d,menu=off -net nic -net user -rtc base=localtime \
      -bios /usr/share/ovmf/x64/OVMF_CODE.fd -cdrom /path/to/file.iso

You will see errors in the CLI. Now, try with my customized ISO (dir with ISO file, sign [key: 6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78], and sha512 checksum), the same steps as above. You’ll see that it successfully boots, and has UEFI Shell apps.

Here is my hyperiso fork. Take a look at the refind/* branches. The refind/with-uefi-shell has EFI Shell from Tianocore EDK2 latest stable tag, and refind/without-uefi-shell, well, doesn’t have it. Note that the binary files from refind/with-uefi-shell are downloaded from upstream and they’re sha512 checksumed. If for any reason you cannot do that way, there’s the other branch as an alternative.

P.S.: I see that actual configs have configured syslinux.efi to show other boot menus rather than the “Boot Hyperbola” option, but I tested it in my PC with UEFI enabled and it just showed the mentioned option

Closed by  Emulatorman
15.03.2019 21:39
Reason for closing:  Implemented
Admin

I would add the EFI Shell v1 and v2 applications, however both should be built from source. We are distributing the edk2-uefi-shell-v2, however i'm trying build the edk2-uefi-shell-v1 package that contains some issues in Shell/Library/IA32/math.c:

/build/edk2-uefi-shell-v1/src/edk2-vUDK2017/Shell/Library/IA32/math.c: In function ‘LShiftU64’:
/build/edk2-uefi-shell-v1/src/edk2-vUDK2017/Shell/Library/IA32/math.c:52:3: error: ‘_asm’ undeclared (first use in this function)

Distribute only x86_64 could be a way to ignore it, however i would distribute 32-bit support for other tasks such as virtualization, testing, etc. Would you help us solve this issue?

Admin

I made a new PKGBUILD with some fixes and new patch for testing, however it still unstable since x86_64 can be built but application contains issues (eg. no keyboard support). If you can find a way to fix it, please let me know. Meanwhile, we will distribute the UEFI Shell v2 only.

Date User Effort (H:M)
watch my effort tracking timers

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing