Mattias Schlenker
2013-Mar-13 12:14 UTC
[syslinux] Syslinux 5.10pre1 - Failed to load COM32 file .c32
Hello everyone, Since I have some some adventures in UEFI PXE booting ahead I tried to go with the latest syslinux development snapshot in this case 5.10pre1. But I already fail when booting from CD with Failed to load COM32 file .c32 I am a bit perplex since no name of COM32 files is given. I am trying to trace down the issue as good as I can. COM32 files present are: boot/isolinux/chain.c32 boot/isolinux/ifcpu.c32 boot/isolinux/ifcpu64.c32 boot/isolinux/ldlinux.c32 boot/isolinux/libcom32.c32 boot/isolinux/libgpl.c32 boot/isolinux/liblua.c32 boot/isolinux/libmenu.c32 boot/isolinux/libutil.c32 boot/isolinux/menu.c32 boot/isolinux/reboot.c32 boot/isolinux/vesamenu.c32 Every build gets fresh COM32 files and an isolinux.bin from the same syslinux version. The isolinux.cfg calls ifcpu64.c32 to select either a 64 bit kernel, a PAE enabled kernel or a kernel without PAE. isolinux.cfg reads: DEFAULT switch LABEL switch COM32 /boot/isolinux/ifcpu64.c32 APPEND sifomenu -- paemenu -- nopamenu LABEL paemenu COM32 /boot/isolinux/vesamenu.c32 APPEND /boot/isolinux/common/paemenu.cfg LABEL nopamenu COM32 /boot/isolinux/vesamenu.c32 APPEND /boot/isolinux/common/nopamenu.cfg LABEL sifomenu COM32 /boot/isolinux/vesamenu.c32 APPEND /boot/isolinux/common/sifomenu.cfg Manually calling the vesamenu.c32 COM32 at the boot prompt works with relative and absolute paths: boot: vesamenu.c32 common/sifomenu.c32 boot: /boot/isolinux/vesamenu.c32 /boot/isolinux/common/sifomenu.c32 I am scratching my head, since calling boot: sifomenu fails which indicates that isolinux itself does not find (or correctly interpretes) its isolinux.cfg. Syslinux was built with GCC 4.7.2 and NASM 2.10.7 - but the problem remains when using the .c32 files and isolinux.bin from the official release. 5.02pre3 (built with the same compilers) does not show this issue. There is no /isolinux directory, nor are there syslinux.cfg anywhere. Were there changed dependencies when moving from 5.02pre3 to 5.10pre1? The only added (binary) COM32 seems to be cptime.c32, but this does not mean that there a no new dependencies on already present COM32 files. Regards, Mattias -- Mattias Schlenker - Redaktion + EDV-Beratung + Linux-CD/DVD-Konzepte Dietrich-Bonhoeffer-Str. 3 - 40667 MEERBUSCH - GERMANY Telefon (VoIP "ueberall"), geschaeftlich: +49 341 39290767 Telefon (Festnetz), privat und Fax: +49 2132 9952906 Mobil: +49 163 6953657 Mobil (SIM in Testgeraeten): +49 1578 3499550 Bitte fuer geschaeftliche Telefonate vorzugsweise die VoIP-Telefonnummer +49 341 39290767 verwenden, da ich diese aufs Mobiltelefon routen kann! http://blog.rootserverexperiment.de/ http://news.mattiasschlenker.de/
> Hello everyone, > > Since I have some some adventures in UEFI PXE booting ahead I tried to > go with the latest syslinux development snapshot in this case 5.10pre1. > But I already fail when booting from CD with > > Failed to load COM32 file .c32 > ...I am only guessing here, but it is possible that your problem is related to a bug introduced after 5.02pre1 (see http://www.syslinux.org/archives/2013-February/019597.html ) which is not yet solved in 5.10pre1. I could, of course, be wrong. Although the original bug report is about the CONFIG directive, in your isolinux.cfg file you also change to a new cfg file, located in a different directory, loading [vesa]menu.c32 again. Although 5.02pre1 has its own issues too, I would suggest testing your isolinux.cfg with 5.02-pre1, at least to confirm whether the behavior is the same or not. Note: Your isolinux.cfg will fail with 5.01 too (but not for the same reasons). That's why I suggest testing with 5.02-pre1. HTH, Ady.
Matt Fleming
2013-Mar-15 17:17 UTC
[syslinux] Syslinux 5.10pre1 - Failed to load COM32 file .c32
On Wed, 2013-03-13 at 13:14 +0100, Mattias Schlenker wrote:> Hello everyone, > > Since I have some some adventures in UEFI PXE booting ahead I tried to > go with the latest syslinux development snapshot in this case 5.10pre1. > But I already fail when booting from CD with > > Failed to load COM32 file .c32 > > I am a bit perplex since no name of COM32 files is given. I am trying to > trace down the issue as good as I can. COM32 files present are: > > boot/isolinux/chain.c32 > boot/isolinux/ifcpu.c32 > boot/isolinux/ifcpu64.c32 > boot/isolinux/ldlinux.c32 > boot/isolinux/libcom32.c32 > boot/isolinux/libgpl.c32 > boot/isolinux/liblua.c32 > boot/isolinux/libmenu.c32 > boot/isolinux/libutil.c32 > boot/isolinux/menu.c32 > boot/isolinux/reboot.c32 > boot/isolinux/vesamenu.c32 > > Every build gets fresh COM32 files and an isolinux.bin from the same > syslinux version. The isolinux.cfg calls ifcpu64.c32 to select either a > 64 bit kernel, a PAE enabled kernel or a kernel without PAE. > isolinux.cfg reads: > > DEFAULT switch > > LABEL switch > COM32 /boot/isolinux/ifcpu64.c32 > APPEND sifomenu -- paemenu -- nopamenu > > LABEL paemenu > COM32 /boot/isolinux/vesamenu.c32 > APPEND /boot/isolinux/common/paemenu.cfg > > LABEL nopamenu > COM32 /boot/isolinux/vesamenu.c32 > APPEND /boot/isolinux/common/nopamenu.cfg > > LABEL sifomenu > COM32 /boot/isolinux/vesamenu.c32 > APPEND /boot/isolinux/common/sifomenu.cfg > > Manually calling the vesamenu.c32 COM32 at the boot prompt works with > relative and absolute paths: > > boot: vesamenu.c32 common/sifomenu.c32 > boot: /boot/isolinux/vesamenu.c32 /boot/isolinux/common/sifomenu.c32 > > I am scratching my head, since calling > > boot: sifomenu > > fails which indicates that isolinux itself does not find (or correctly > interpretes) its isolinux.cfg. Syslinux was built with GCC 4.7.2 and > NASM 2.10.7 - but the problem remains when using the .c32 files and > isolinux.bin from the official release. 5.02pre3 (built with the same > compilers) does not show this issue. There is no /isolinux directory, > nor are there syslinux.cfg anywhere. Were there changed dependencies > when moving from 5.02pre3 to 5.10pre1? The only added (binary) COM32 > seems to be cptime.c32, but this does not mean that there a no new > dependencies on already present COM32 files.Thanks for the report. I've queued up the following patch and will push a new prerelease early next week. --->From ba45539416c804ed65a129ae3fd07f585f6a61ff Mon Sep 17 00:00:00 2001From: Matt Fleming <matt.fleming at intel.com> Date: Fri, 15 Mar 2013 16:32:52 +0000 Subject: [PATCH] ldlinux: Fixup lwip merge botch The lwip merge changed the code for copying cmdline arguments from, strcpy(q, p); to this, do { *q++ = ch = *p++; } while (ch); which means 'p' no longer points at 'args'. Use 'args' explicitly for the case where we need to apply a filename extension, otherwise users end up seeing errors like, Failed to load COM32 file .c32 Reported-by: Mattias Schlenker <ms at mattiasschlenker.de> Signed-off-by: Matt Fleming <matt.fleming at intel.com> --- com32/elflink/ldlinux/execute.c | 1 + 1 file changed, 1 insertion(+) diff --git a/com32/elflink/ldlinux/execute.c b/com32/elflink/ldlinux/execute.c index 49a0de5..bf0bd8c 100644 --- a/com32/elflink/ldlinux/execute.c +++ b/com32/elflink/ldlinux/execute.c @@ -101,6 +101,7 @@ __export void execute(const char *cmdline, uint32_t type, bool sysappend) * filename extension if COM32 and * retry. */ + p = args; if (t->type == IMAGE_TYPE_COM32) { p = apply_extension(p, ".c32"); if (!p) -- 1.7.11.7 -- Matt Fleming, Intel Open Source Technology Center
Mattias Schlenker
2013-Mar-21 14:36 UTC
[syslinux] Syslinux 5.10pre2 - Failed to load COM32 file ldlinux.c32
Hi everyone, this is a follow up to: http://www.syslinux.org/archives/2013-March/019666.html Same config, same .c32 files are present, same directory structure. With 5.10pre2 I get the error "Failed to load COM32 file ldlinux.c32". At least now I know which file cannot be loaded. But ldlinux.c32 is present! Should I try with isolinux-debug.bin? Should I move everything from /boot/isolinux to /isolinux? Regards, Mattias -- Mattias Schlenker - Redaktion + EDV-Beratung + Linux-CD/DVD-Konzepte Dietrich-Bonhoeffer-Str. 3 - 40667 MEERBUSCH - GERMANY Telefon (VoIP "ueberall"), geschaeftlich: +49 341 39290767 Telefon (Festnetz), privat und Fax: +49 2132 9952906 Mobil: +49 163 6953657 Mobil (SIM in Testgeraeten): +49 1578 3499550 Bitte fuer geschaeftliche Telefonate vorzugsweise die VoIP-Telefonnummer +49 341 39290767 verwenden, da ich diese aufs Mobiltelefon routen kann! http://blog.rootserverexperiment.de/ http://news.mattiasschlenker.de/
Ady
2013-Mar-21 16:31 UTC
[syslinux] Syslinux 5.10pre2 - Failed to load COM32 file ldlinux.c32
> Hi everyone, > > this is a follow up to: > > http://www.syslinux.org/archives/2013-March/019666.html > > Same config, same .c32 files are present, same directory structure. With > 5.10pre2 I get the error "Failed to load COM32 file ldlinux.c32". At > least now I know which file cannot be loaded. But ldlinux.c32 is > present! Should I try with isolinux-debug.bin? Should I move everything > from /boot/isolinux to /isolinux? > > Regards, > MattiasI would suggest adding "PROMPT 1" to you cfg files for troubleshooting. If the first "boot:" prompt shows up without any other messages, then the initial isolinux.bin + ldlinux.c32 are found. If there are additional messages under this situation, please report them. Now, if the initial "boot:" prompt shows up correctly with no additional messages, and further steps (executing the default label) leads you to some "ldlinux.c32 not found" (or similar), then you would probably need to also post here the additional cfg files, and the specific (error) messages. In order to narrow down the source of the problem, you could also try testing ifcpu64.c32 with and without using vesamenu.c32 and comparing both results. I mean something like: *** isolinux.cfg start *** DEFAULT switch PROMPT 1 LABEL switch COM32 /boot/isolinux/ifcpu64.c32 APPEND sifomenu -- paemenu -- nopamenu LABEL paemenu COM32 /boot/isolinux/hello.c32 LABEL nopamenu COM32 /boot/isolinux/hello.c32 LABEL sifomenu COM32 /boot/isolinux/hello.c32 *** isolinux.cfg end *** in addition to your original isolinux.cfg (of course, adding all the relevant c32 files to /boot/isolinux/). It would be useful to use the official binaries for these tests, so any reports from you can be replicated as close as possible. HTH, Ady.
Thomas Schmitt
2013-Mar-22 10:42 UTC
[syslinux] xorriso issue? - Failed to load COM32 file ldlinux.c32
Hi,> Guess I better contact Thomas SchmittHere i am. :))> When I build the ISO with different parameters for xorriso it works (omit > EFI boot image and isohybrid boot sector).So it does not work from CD or DVD if you let xorriso give it MBR and GPT ? If so, then try what happens with such an MBR+GPT-enhanced image after you zeroized its first 32 KiB. E.g. by ( dd bs=1024 if=/dev/zero count=32 ; \ dd bs=1024 skip=32 if=image_with_mbr_gpt.iso ) \ >zeroized_mbr_gpt.iso This zeroizing will remove MBR and GPT but keep any damage that might have been done to El Torito. If this partly zeroized image boots properly from CD or DVD, then your BIOS/EFI/whatever is confused by the presence of the hard disk partition tables. Maybe because they are wrong. Question then: Does the not-zeroized image boot from USB stick ? If the zeroized image does not boot (and if your zeroizing really only hit the first 32 KiB), then xorriso spoiled El Torito somehow, or your EFI El Torito "boot image" partition is bad in some way. Next tests would be to produce - El Torito for BIOS and EFI by options -b and -e but no isohybrid options. - El Torito for BIOS only but with -b and -isohybrid-mbr but without -e and -isohybrid-gpt-basdat or -isohybrid-gpt-hfsplus. I could need a link to an un-zeroized image in any case. Best would be if the image is small but demonstrates the problem. Regrettably i have no system that boots via EFI. But i can do some theoretical examinations. Have a nice day :) Thomas
Ady
2013-Mar-22 10:45 UTC
[syslinux] xorriso issue? - Failed to load COM32 file ldlinux.c32
> Am 22.03.2013 10:49, schrieb Mattias Schlenker: > > When I build the ISO with different parameters for xorriso it works > (omit EFI boot image and isohybrid boot sector). It was just remarkable > that it stopped working when updating Syslinux pre versions - this set > me on the wrong track. > > Guess I better contact Thomas Schmitt from xorriso/libburnia on the > issue to track down the behaviour. > > Regards, > Mattias >Try with isohybrid but without EFI and review your results. Syslinux 5.xx has no EFI support, so maybe this is part of your problem.