Hello, I am trying to setup a PXE server for two Debian releases (stretch and buster) using their respective network boot images (netboot.tar.gz), which I extracted into subdirectories of the TFTP server's root directory: ??? ??? debian ??? ??? ??? buster ??? ??? ??? ??? debian-installer ??? ??? ??? ??? ldlinux.c32 -> debian-installer/i386/boot-screens/ldlinux.c32 ??? ??? ??? ??? pxelinux.0 -> debian-installer/i386/pxelinux.0 ??? ??? ??? ??? pxelinux.cfg -> debian-installer/i386/pxelinux.cfg ??? ??? ??? ??? version.info ??? ??? ??? stretch ??? ??????? ??? debian-installer ??? ??????? ??? ldlinux.c32 -> debian-installer/i386/boot-screens/ldlinux.c32 ??? ??????? ??? pxelinux.0 -> debian-installer/i386/pxelinux.0 ??? ??????? ??? pxelinux.cfg -> debian-installer/i386/pxelinux.cfg ??? ??????? ??? version.info ??? ??? pxelinux.0 ??? ??? pxelinux.cfg ??? ??? ??? default ??? ??? syslinux ??? ??? ??? ldlinux.c32 ??? ??? ??? libutil.c32 ??? ??? ??? menu.c32 The directory syslinux contains files copied from the host's package syslinux-common. The host OS is Raspbian stretch. pxelinux.cfg/default looks like: ??? MENU TITLE PXE Remote Boot ??? DEFAULT syslinux/menu.c32 ??? PROMPT 0 ??? LABEL Debian_9_i386 ??????? MENU LABEL Debian 9 Stretch Network Installer (i386) ??????? CONFIG debian/stretch/debian-installer/i386/pxelinux.cfg/default debian/stretch/ ??? LABEL Debian_10_i386 ??????? MENU LABEL Debian 10 Buster Network Installer (i386) ??????? CONFIG debian/buster/debian-installer/i386/pxelinux.cfg/default debian/buster/ Booting Debian stretch on a PXE client works fine. But trying to boot Debian buster results in an error: ??? Undef symbol FAIL: init_fpu ??? Failed to load libcom32.c32 ??? Failed to load COM32 file debian-installer/i386/boot-screens/vesamenu.c32 Stretch and buster use incompatible versions of syslinux. And PXE is requesting ldlinux.c32 before switching to the working directory debian/buster specified by CONFIG. So instead of debian/buster/ldlinux.c32, syslinux/ldlinux.c32 is used. Here is and excerpt from the TFTP server's log: ??? in.tftpd[12160]: RRQ from 10.0.1.106 filename /ldlinux.c32 ??? in.tftpd[12161]: RRQ from 10.0.1.106 filename //syslinux/ldlinux.c32 ??? in.tftpd[12162]: RRQ from 10.0.1.106 filename /debian/buster/debian-installer/i386/pxelinux.cfg/default ??? in.tftpd[12163]: RRQ from 10.0.1.106 filename /debian/buster/debian-installer/i386/boot-screens/menu.cfg ??? ... ??? in.tftpd[12184]: RRQ from 10.0.1.106 filename /debian/buster/debian-installer/i386/boot-screens/vesamenu.c32 ??? in.tftpd[12185]: RRQ from 10.0.1.106 filename /debian/buster/libcom32.c32 ??? in.tftpd[12186]: RRQ from 10.0.1.106 filename /debian/buster/debian-installer/i386/boot-screens/libcom32.c32 How do I have to configure PXE to make it use the "right" version of ldlinux.c32? Thanks, Malte
Malte Forkel via Syslinux <syslinux at syslinux.org> writes:> How do I have to configure PXE to make it use the "right" version of > ldlinux.c32?Do it the other way around: Use the same syslinux installation for all Debian releases, and make all the modules match this version. Either replace all the *.c32 files in each release tree with links to the shared modules, or change the path in the debian-installer/i386/pxelinux.cfg files to point to a shared /syslinux directory where all the modules are found. Bj?rn
Am 03.09.2019 um 13:48 schrieb Bj?rn Mork:> Malte Forkel via Syslinux <syslinux at syslinux.org> writes: > >> How do I have to configure PXE to make it use the "right" version of >> ldlinux.c32? > Do it the other way around: Use the same syslinux installation for all > Debian releases, and make all the modules match this version. > > Either replace all the *.c32 files in each release tree with links to > the shared modules, or change the path in the > debian-installer/i386/pxelinux.cfg files to point to a shared > /syslinux directory where all the modules are found. >True, but I'm still hoping there is a solution that does not require changes to the release tree. I would have to re-apply those changes whenever I update one of the releases (including the often changing sid) and make sure there are no compatibility issues with the rest of the boot image. Why is the working directory specified by CONFIG not used to retrieve ldlinux.c32? Couldn't that be considered an error? I tried using PATH but found that it will add to the list of directories searched. Is there any way to specify a search path specific to the scope of each LABEL in pxelinux.cfg/default? Malte
> I am trying to setup a PXE server for two Debian releases (stretch and > buster) using their respective network boot images (netboot.tar.gz), > which I extracted into subdirectories of the TFTP server's root directory: > > ??? ??? debian > ??? ??? ??? buster > ??? ??? ??? ??? debian-installer > ??? ??? ??? ??? ldlinux.c32 -> > debian-installer/i386/boot-screens/ldlinux.c32 > ??? ??? ??? ??? pxelinux.0 -> debian-installer/i386/pxelinux.0 > ??? ??? ??? ??? pxelinux.cfg -> debian-installer/i386/pxelinux.cfg > ??? ??? ??? ??? version.info > ??? ??? ??? stretch > ??? ??????? ??? debian-installer > ??? ??????? ??? ldlinux.c32 -> > debian-installer/i386/boot-screens/ldlinux.c32 > ??? ??????? ??? pxelinux.0 -> debian-installer/i386/pxelinux.0 > ??? ??????? ??? pxelinux.cfg -> debian-installer/i386/pxelinux.cfg > ??? ??????? ??? version.info > ??? ??? pxelinux.0 > ??? ??? pxelinux.cfg > ??? ??? ??? default > ??? ??? syslinux > ??? ??? ??? ldlinux.c32 > ??? ??? ??? libutil.c32 > ??? ??? ??? menu.c32 > > The directory syslinux contains files copied from the host's package > syslinux-common. The host OS is Raspbian stretch. > > pxelinux.cfg/default looks like: > > ??? MENU TITLE PXE Remote Boot > ??? DEFAULT syslinux/menu.c32 > ??? PROMPT 0 > > ??? LABEL Debian_9_i386 > ??????? MENU LABEL Debian 9 Stretch Network Installer (i386) > ??????? CONFIG debian/stretch/debian-installer/i386/pxelinux.cfg/default > debian/stretch/ > > ??? LABEL Debian_10_i386 > ??????? MENU LABEL Debian 10 Buster Network Installer (i386) > ??????? CONFIG debian/buster/debian-installer/i386/pxelinux.cfg/default > debian/buster/ > > Booting Debian stretch on a PXE client works fine. But trying to boot > Debian buster results in an error: > > ??? Undef symbol FAIL: init_fpu > ??? Failed to load libcom32.c32 > ??? Failed to load COM32 file > debian-installer/i386/boot-screens/vesamenu.c32 > > Stretch and buster use incompatible versions of syslinux. And PXE is > requesting ldlinux.c32 before switching to the working directory > debian/buster specified by CONFIG. So instead of > debian/buster/ldlinux.c32, syslinux/ldlinux.c32 is used. Here is and > excerpt from the TFTP server's log: > > ??? in.tftpd[12160]: RRQ from 10.0.1.106 filename /ldlinux.c32 > ??? in.tftpd[12161]: RRQ from 10.0.1.106 filename //syslinux/ldlinux.c32 > ??? in.tftpd[12162]: RRQ from 10.0.1.106 filename > /debian/buster/debian-installer/i386/pxelinux.cfg/default > ??? in.tftpd[12163]: RRQ from 10.0.1.106 filename > /debian/buster/debian-installer/i386/boot-screens/menu.cfg > ??? ... > ??? in.tftpd[12184]: RRQ from 10.0.1.106 filename > /debian/buster/debian-installer/i386/boot-screens/vesamenu.c32 > ??? in.tftpd[12185]: RRQ from 10.0.1.106 filename > /debian/buster/libcom32.c32 > ??? in.tftpd[12186]: RRQ from 10.0.1.106 filename > /debian/buster/debian-installer/i386/boot-screens/libcom32.c32 > > How do I have to configure PXE to make it use the "right" version of > ldlinux.c32?For troubleshooting, are you willing to perform a minor test? To be clear, the following test does not completely resolve a/the (potential) conflict between Syslinux's versions, but perhaps it might still improve the current situation. 1_ Copy (not link, not move, actual copy) the file: debian/buster/debian-installer/i386/boot-screens/ldlinux.c32 to: debian/buster/debian-installer/i386/ldlinux.c32 (where pxelinux.0 is actually located) 2_ Change the link, from: ??? debian ? ??? buster ? ? ??? debian-installer ? ? ??? ldlinux.c32 -> debian-installer/i386/boot-screens/ldlinux.c32 to: ??? debian ? ??? buster ? ? ??? debian-installer ? ? ??? ldlinux.c32 -> debian-installer/i386/ldlinux.c32 (where pxelinux.0 is actually located) 3_ After performing the above two steps, please re-test netbooting Buster and report back. Any changes? Does it go further? Does it fail in the same exact manner as before? Is the TFTP server's log exactly the same as before? Regards, Ady.
Am 04.09.2019 um 22:18 schrieb Ady Ady via Syslinux:>> I am trying to setup a PXE server for two Debian releases (stretch and >> buster) using their respective network boot images (netboot.tar.gz), >> which I extracted into subdirectories of the TFTP server's root directory: >> >> ??? ??? debian >> ??? ??? ??? buster >> ??? ??? ??? ??? debian-installer >> ??? ??? ??? ??? ldlinux.c32 -> >> debian-installer/i386/boot-screens/ldlinux.c32 >> ??? ??? ??? ??? pxelinux.0 -> debian-installer/i386/pxelinux.0 >> ??? ??? ??? ??? pxelinux.cfg -> debian-installer/i386/pxelinux.cfg >> ??? ??? ??? ??? version.info >> ??? ??? ??? stretch >> ??? ??????? ??? debian-installer >> ??? ??????? ??? ldlinux.c32 -> >> debian-installer/i386/boot-screens/ldlinux.c32 >> ??? ??????? ??? pxelinux.0 -> debian-installer/i386/pxelinux.0 >> ??? ??????? ??? pxelinux.cfg -> debian-installer/i386/pxelinux.cfg >> ??? ??????? ??? version.info >> ??? ??? pxelinux.0 >> ??? ??? pxelinux.cfg >> ??? ??? ??? default >> ??? ??? syslinux >> ??? ??? ??? ldlinux.c32 >> ??? ??? ??? libutil.c32 >> ??? ??? ??? menu.c32 >> >> The directory syslinux contains files copied from the host's package >> syslinux-common. The host OS is Raspbian stretch. >> >> pxelinux.cfg/default looks like: >> >> ??? MENU TITLE PXE Remote Boot >> ??? DEFAULT syslinux/menu.c32 >> ??? PROMPT 0 >> >> ??? LABEL Debian_9_i386 >> ??????? MENU LABEL Debian 9 Stretch Network Installer (i386) >> ??????? CONFIG debian/stretch/debian-installer/i386/pxelinux.cfg/default >> debian/stretch/ >> >> ??? LABEL Debian_10_i386 >> ??????? MENU LABEL Debian 10 Buster Network Installer (i386) >> ??????? CONFIG debian/buster/debian-installer/i386/pxelinux.cfg/default >> debian/buster/ >> >> Booting Debian stretch on a PXE client works fine. But trying to boot >> Debian buster results in an error: >> >> ??? Undef symbol FAIL: init_fpu >> ??? Failed to load libcom32.c32 >> ??? Failed to load COM32 file >> debian-installer/i386/boot-screens/vesamenu.c32 >> >> Stretch and buster use incompatible versions of syslinux. And PXE is >> requesting ldlinux.c32 before switching to the working directory >> debian/buster specified by CONFIG. So instead of >> debian/buster/ldlinux.c32, syslinux/ldlinux.c32 is used. Here is and >> excerpt from the TFTP server's log: >> >> ??? in.tftpd[12160]: RRQ from 10.0.1.106 filename /ldlinux.c32 >> ??? in.tftpd[12161]: RRQ from 10.0.1.106 filename //syslinux/ldlinux.c32 >> ??? in.tftpd[12162]: RRQ from 10.0.1.106 filename >> /debian/buster/debian-installer/i386/pxelinux.cfg/default >> ??? in.tftpd[12163]: RRQ from 10.0.1.106 filename >> /debian/buster/debian-installer/i386/boot-screens/menu.cfg >> ??? ... >> ??? in.tftpd[12184]: RRQ from 10.0.1.106 filename >> /debian/buster/debian-installer/i386/boot-screens/vesamenu.c32 >> ??? in.tftpd[12185]: RRQ from 10.0.1.106 filename >> /debian/buster/libcom32.c32 >> ??? in.tftpd[12186]: RRQ from 10.0.1.106 filename >> /debian/buster/debian-installer/i386/boot-screens/libcom32.c32 >> >> How do I have to configure PXE to make it use the "right" version of >> ldlinux.c32? > > > For troubleshooting, are you willing to perform a minor test? > > To be clear, the following test does not completely resolve a/the > (potential) conflict between Syslinux's versions, but perhaps it might > still improve the current situation. > > 1_ Copy (not link, not move, actual copy) the file: > > debian/buster/debian-installer/i386/boot-screens/ldlinux.c32 > > to: > > debian/buster/debian-installer/i386/ldlinux.c32 > > (where pxelinux.0 is actually located) > > > 2_ Change the link, from: > > ??? debian > ? ??? buster > ? ? ??? debian-installer > ? ? ??? ldlinux.c32 -> > debian-installer/i386/boot-screens/ldlinux.c32 > > > to: > > ??? debian > ? ??? buster > ? ? ??? debian-installer > ? ? ??? ldlinux.c32 -> > debian-installer/i386/ldlinux.c32 > > (where pxelinux.0 is actually located) > > > 3_ After performing the above two steps, please re-test netbooting > Buster and report back. > > Any changes? Does it go further? Does it fail in the same exact manner > as before? Is the TFTP server's log exactly the same as before? > > Regards, > Ady. > >I'll happily run any test. Relocating ldlinux.c32 as you suggested didn't have any visible effect on the boot process. Error message and TFTP log entries are the same. Thanks, Malte