Pierre-Philipp Braun
2020-Jul-21 06:48 UTC
[syslinux] extlinux - Failed to load ldlinux.c32
Hello there I built development version of syslinux from git 6.04-pre3-3-(sometag) and I am trying to boot a slackware-current system with it. I do not use a separated partition for `/boot`. It's just `/dev/sda1` here for `/` and `/boot` is just a folder. I simply use `mbr.bin` against a DOS partition table and the first partition having the bootable flag. With this layout, the only way I manage to get syslinux/extlinux up and running, has always been to use `/` as installation directory. extlinux --install / When ever I try one of the following extlinux --install /boot or extlinux --install /boot/syslinux the boot process fails to find `ldlinux.c32`. Is this a known problem? A I doing something wrong? Why can't I use `/boot` or `/boot/syslinux` instead of `/`? It's not a very big issue, as I just use `/` as a workaround, but I feel this prevents syslinux/extlinux to be used as a default bootloader for distros that would consider it as an alternative to LILO or GRUB. One usually wants things to be in `/boot` on GNU/Linux, though the UNIX tradition rather let's the kernel live in `/`. Thanks -- Pierre-Philipp
> I built development version of syslinux from git 6.04-pre3-3-(sometag) > and I am trying to boot a slackware-current system with it. I do not > use a separated partition for `/boot`. It's just `/dev/sda1` here for > `/` and `/boot` is just a folder. I simply use `mbr.bin` against a DOS > partition table and the first partition having the bootable flag. > > With this layout, the only way I manage to get syslinux/extlinux up and > running, has always been to use `/` as installation directory. > > extlinux --install / > > When ever I try one of the following > > extlinux --install /boot > or > > extlinux --install /boot/syslinux > > the boot process fails to find `ldlinux.c32`. > > Is this a known problem? A I doing something wrong? Why can't I use > `/boot` or `/boot/syslinux` instead of `/`?Please try 6.04-pre1. FWIW, official binaries from 6.04-pre2 and pre3 _will_ fail. I would suggest trying first the official binaries that are already included in the official distribution archive (6.03-pre1). Let me emphasize: first test official binaries, not your own build. If the official binaries fail, I would then suggest testing with the binaries from Debian Sid. Only as a last resort, try you own build. Please be aware that there are some building issues ATM. In any case, _avoid_ mixing binaries from different versions / builds (e.g. c32 modules from one version with the installer from another; that's a "no-no"). BTW, I would also suggest searching the official Syslinux wiki. Regards, Ady.
Pierre-Philipp Braun
2020-Jul-23 07:05 UTC
[syslinux] extlinux - Failed to load ldlinux.c32
Thank you for your answer. I need to correct some information from my previous post: booting from `/` did not work either. I just assumed it did based on previous experience. But with that successful build on development branch, it did not either.> I would suggest trying first the official binaries that are already > included in the official distribution archive (6.03-pre1). Let me > emphasize: first test official binaries, not your own build.I do not succeed building 6.03 nor 6.04-pre1 on slackware current with GCC 9 anyway. This is why I was using the development branch. v6.04-pre1 make install and installers were complaining so I used its binaries right away as such (I tried both / and /boot/syslinux/) dd if=./bios/mbr/mbr.bin of=/dev/sda ./bios/extlinux/extlinux --install / cp -f ./bios/com32/lib/libcom32.c32 / cp -f ./bios/com32/mboot/mboot.c32 / but in the end I got the same error as previously: Failed to load ldlinux.c32 Thanks -- Pierre-Philipp
Pierre-Philipp Braun
2020-Jul-24 08:12 UTC
[syslinux] extlinux - Failed to load ldlinux.c32
> If the official binaries fail, I would then suggest testing with the > binaries from Debian Sid.I finally tried building syslinux with the patches I got from Debian and it worked. https://sources.debian.org/patches/syslinux/ --> and chose those against 6.03 so I don't need to play with GIT tags. https://sources.debian.org/patches/syslinux/3:6.03+dfsg-14.1+deb9u1/ For the record - 6.03 build --> coulnt build on slackware-current - 6.03 binaries --> Failed to load ldlinux.c32 - 6.03 debian patched build --> works! - 6.04-pre1 binaries --> Failed to load ldlinux.c32 - 6.04 git build --> Failed to load ldlinux.c32 Didier, when it works, SYSLINUX is in fact easier than GRUB. What a nice syntax we have there! And the bootcode install process is not particularly hard either. Oh and for my originating question on `/` vs `/boot/booting` on a single root partition, it's also solved. I now host the second stage bootcode in `/boot/syslinux` without an issue. dd if=./bios/mbr/mbr.bin of=/dev/sda ./bios/extlinux/extlinux --install /boot/syslinux/ cp -f ./bios/com32/lib/libcom32.c32 /boot/sysliunx/ cp -f ./bios/com32/mboot/mboot.c32 /boot/syslinux/ and if one also wants the menu to show up, `libutil.c32` and `menu.c32`. vi /boot/syslinux/syslinux.cfg default XEN prompt 1 timeout 50 label Linux linux /boot/vmlinuz append root=/dev/sda1 ro vt.default_utf8=0 mitigations=off vga=791 #initrd=/boot/initrd.img label XEN kernel mboot.c32 append /boot/xen.gz dom0=pvh dom0_mem=1024M,max:8192M loglvl=info noreboot=true --- /boot/vmlinuz console=tty0 root=/dev/sda1 ro vt.default_utf8=0 mitigations=off vga=791 #pv-linear-pt=true #--- /boot/initrd.img Thank you both for your support -- Pierre-Philipp