[syslinux] efi config hang

Carl Karsten carl at personnelware.com
Thu Dec 13 17:33:09 PST 2018


On Thu, Dec 13, 2018 at 10:57 AM Ady Ady via Syslinux
<syslinux at zytor.com> wrote:
>
> @Carl,
>
> I'll repeat what I said in my prior email: you don't have to keep
> looking, we already achieved what you want (considering that you are
> willing to "disregard" the screen problems and similar issues, at least
> for now, according to your own emails).
>
> In short:
>
> 1_ Re-read my email from 2018Dec05:
>
>  www.syslinux.org/archives/2018-December/026247.html
>
> where I posted step-by-step instructions.
>
> 2_ Amendment to those instructions:
>
> 2.1_ In 'target/EFI/BOOT/SYSLX64.CFG', patch:
>
> - PATH SYSLINUX/EFI64/
> + PATH EFI/BOOT/SYSLINUX/EFI64/
>
> 2.2_ In 'target/EFI/BOOT/SYSLIA32.CFG' (which is part of the
> "optional"steps in the aforementioned email), patch:
>
> - PATH SYSLINUX/EFI32/
> + PATH EFI/BOOT/SYSLINUX/EFI32/
>
> 2.3_ In 'target/boot/syslinux/syslinux.cfg', patch:
>
> - PATH ./
> + PATH BOOT/SYSLINUX/
>
>
> 3_ There are additional potential improvements and corrections (I mean
> in addition to the instructions + amendment), and there are alternative
> ways too.
>
> Since the instructions (in the email I linked-to above) start by:
>
>  "Starting from an _original_ (so-called "hd-media") boot.img..."
>
> then it should be relatively simple to get a diff/patch to send to
> Debian, I would guess.
>
> Unless there are complaints or disagreements or different opinions in
> Debian as to how to get this done, your original goal has been achieved
> (with the caveats I already mentioned in this same email).
>

ah ha... now that I have all the pices in place, this is what I was missing:

# EFI/BOOT/SYSLX64.CFG
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
PATH EFI/BOOT/SYSLINUX/EFI64/
DEFAULT common
PROMPT 0
LABEL common
CONFIG ../../syslinux.cfg ../../

The syslinux.cfg and all the other .cfg files don't need to be touched.

The help under efi is broken (I'm pretty sure it crashes) but I'm
somewhat convinced the binaries are broken, and I'm going to submit
what I have.  It's pretty small, so that;s good.

Here is the whole patch:

diff --git a/build/config/x86.cfg b/build/config/x86.cfg
index 9f25316..b145025 100644
--- a/build/config/x86.cfg
+++ b/build/config/x86.cfg
@@ -57,7 +57,7 @@ endif
  mkfs.msdos -v -i $(DOS_VOLUME_ID) -n $(DOS_VOLUME_LABEL) -C
$(TEMP_BOOT) $(FLOPPY_SIZE)

  # syslinux is used to make the image bootable
- syslinux $(SYSLINUX_OPTS) $(TEMP_BOOT)
+ syslinux $(SYSLINUX_OPTS) $(TEMP_BOOT) --directory /boot/syslinux/
  mcopy -i$(TEMP_BOOT) $(TEMP_KERNEL) ::linux
  mcopy -i$(TEMP_BOOT) $(TEMP_INITRD) ::initrd.gz

@@ -110,9 +110,19 @@ endif
  fi

  if [ "$(SYSLINUX_CFG)" != prompt ]; then \
- mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/bios/vesamenu.c32
::vesamenu.c32; \
- mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/bios/libcom32.c32
::libcom32.c32; \
- mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/bios/libutil.c32
::libutil.c32 ; \
+ mmd -i$(TEMP_BOOT) ::/boot ; \
+ mmd -i$(TEMP_BOOT) ::/boot/syslinux ; \
+ mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/bios/vesamenu.c32
::/boot/syslinux/vesamenu.c32; \
+ mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/bios/libcom32.c32
::/boot/syslinux/libcom32.c32; \
+ mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/bios/libutil.c32
::/boot/syslinux/libutil.c32 ; \
+ mmd -i$(TEMP_BOOT) ::/EFI ; \
+ mmd -i$(TEMP_BOOT) ::/EFI/BOOT ; \
+ mmd -i$(TEMP_BOOT) ::/EFI/BOOT/SYSLINUX; \
+ mmd -i$(TEMP_BOOT) ::/EFI/BOOT/SYSLINUX/EFI64 ; \
+ mcopy -i$(TEMP_BOOT) /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi
::/EFI/BOOT/BOOTX64.EFI ; \
+ mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/efi64/ldlinux.e64
::/EFI/BOOT/ldlinux.e64 ; \
+ mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/modules/efi64/*.c32
::/EFI/BOOT/SYSLINUX/EFI64 ; \
+ mcopy -i$(TEMP_BOOT) boot/x86/EFI/BOOT/SYSLX64.CFG ::/EFI/BOOT ; \
  if [ -e $(TEMP_BOOT_SCREENS)/splash.png ]; then \
  mcopy -i$(TEMP_BOOT) $(TEMP_BOOT_SCREENS)/splash.png ::splash.png; \
  fi; \
diff --git a/debian/control b/debian/control
index 2870210..ad67d75 100644
--- a/debian/control
+++ b/debian/control
@@ -80,6 +80,7 @@ Build-Depends:
 # still called debian-boot..
  syslinux [i386 amd64],
  syslinux-utils [i386 amd64],
+ syslinux-efi [i386 amd64],
  isolinux [i386 amd64],
  pxelinux [i386 amd64],
  syslinux-common (>= 3:6) [i386 amd64],

# boot/x86/EFI/BOOT/SYSLX64.CFG
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
PATH EFI/BOOT/SYSLINUX/EFI64/
DEFAULT common
PROMPT 0
LABEL common
CONFIG ../../syslinux.cfg ../../

Thanks again for all your help and cross your fingers.


-- 
Carl K


More information about the Syslinux mailing list