[syslinux] Upgraded to Syslinux 5.00 - Failed to load ldlinux.c32

Paulo Alcantara pcacjr at zytor.com
Wed Dec 19 04:44:49 PST 2012


Ady <ady-sf at hotmail.com> writes:

> Since the error message is about ldlinux.c32 not being found, this 
> should indicate that ldlinux.sys is found correctly. Thus, the 
> problem seems to be related to the paths where ldlinux.sys expects to 
> find ldlinux.c32.

OK, we're about talking about Syslinux 5.00x. I looked at the wrong
source file in the first place -- the correct one is actually
core/elflink/load_env32.c.

The only possible paths (hard-coded in search_directories string array)
that ldlinux.c32 could be found are "/boot/isolinux", "/isolinux",
"/boot/syslinux", "/syslinux" and "/".

> Also, could you check whether ldlinux.c32 was effectively indeed 
> installed in both raid disks? I wonder if the installer is the one 
> not installing ldlinux.c32 correctly in a raid system.

The ldlinux.c32 could be installed in any path, however Syslinux won't
be able to find it in paths other than those in search_directories
array.

If either Peter or Matt feels that "/boot/extlinux" should be supported,
here goes a patch that adds such support:

>From 9deac7ffb9ea0fbd07e9faefa4004383db1048e8 Mon Sep 17 00:00:00 2001
From: Paulo Alcantara <pcacjr at profusion.mobi>
Date: Wed, 19 Dec 2012 10:42:16 -0200
Subject: [PATCH] core: Add "/boot/extlinux" path support

Add "/boot/extlinux" path to be looked up when finding ldlinux.c32 and
Syslinux config files.

Signed-off-by: Paulo Alcantara <pcacjr at profusion.mobi>
---
 core/elflink/load_env32.c | 1 +
 core/fs/lib/loadconfig.c  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/core/elflink/load_env32.c b/core/elflink/load_env32.c
index 7c0afac..6dc5c89 100644
--- a/core/elflink/load_env32.c
+++ b/core/elflink/load_env32.c
@@ -112,6 +112,7 @@ void load_env32(com32sys_t * regs __unused)
 		"/boot/isolinux",
 		"/isolinux",
 		"/boot/syslinux",
+		"/boot/extlinux",
 		"/syslinux",
 		"/",
 		NULL
diff --git a/core/fs/lib/loadconfig.c b/core/fs/lib/loadconfig.c
index 95e6f3f..60e4cad 100644
--- a/core/fs/lib/loadconfig.c
+++ b/core/fs/lib/loadconfig.c
@@ -16,6 +16,7 @@ int generic_open_config(struct com32_filedata *filedata)
     static const char *search_directories[] = {
 	NULL,			/* CurrentDirName */
 	"/boot/syslinux",
+	"/boot/extlinux",
 	"/syslinux",
 	"/",
 	NULL
-- 
1.8.0.2


-- 
Paulo Alcantara,    ProFUSION Embedded Systems


More information about the Syslinux mailing list