[syslinux] Booting second label

Bjørn Damstedt Rasmussen bjra at terma.com
Tue Aug 13 06:32:36 PDT 2013


Hi Gene

Thanks for your response!

> What string would the above config pass to syslinux_run_command()?
> Does it have a trailing line end character?  terminating NUL character?

What is being passed to syslinux_run_command() is "linuxfoo", i.e. with a terminating 0.

Here's the Kontron string copy from kontron_wdt.c:

if (!strncmp(argv[i], "default_label=", 14)) {
  strlcpy(default_label, argv[i] + 14, sizeof(default_label));
}

Later they call:

printf("Executing default label = '%s'\n",default_label);
syslinux_run_command(default_label);

The printf I get in the terminal shows the right label (linuxfoo) so I figure the call fails somewhere in the underlying functions. Unfortunately I don't get any error printouts, so I have no idea what's wrong. I've also tried copying all *.c32 files to /boot and it still doesn't work.


What I'm trying to do is execute two labels. First start the watchdog (wdt label) and afterwards boot the OS (linuxfoo). Is there a simple way to do this?

-- Bjoern

default wdt
timeout 5
prompt 1

label linuxfoo
kernel /vmlinuz
append root=/dev/sda2 #.... more options

label wdt
com32 kontron_wdt.c32
append timeout=120 default_label=linuxfoo





Bjørn Damstedt Rasmussen
Developer, Software
Processing
Terma A/S

-----Original Message-----
From: syslinux-bounces at zytor.com [mailto:syslinux-bounces at zytor.com] On Behalf Of Gene Cumm
Sent: 13. august 2013 13:12
To: For discussion of Syslinux and tftp-hpa
Subject: Re: [syslinux] Booting second label

On Tue, Aug 13, 2013 at 3:21 AM, Bjørn Damstedt Rasmussen <bjra at terma.com> wrote:
> Hi
>
> I'm using syslinux 5.01 and is installing our bootloader using "extlinux --install /boot". In the extlinux.conf I've specified that the kontron_wdt.c32 program should boot another label once it has been executed but it never calls the second label.

Did you build all of the COM32s and extlinux?  Do you ever see an error?

> Here's my extlinux.conf:
>
> default wdt
> timeout 5
> prompt 1
>
> label linuxfoo
> kernel /vmlinuz
> append root=/dev/sda2 #.... more options
>
> label wdt
> com32 kontron_wdt.c32
> append timeout=120 default_label= linuxfoo
>
> When I try to debug the kontron_wdt.c32 I can see that syslinux_run_command(..) returns -1. What could cause this?

What string would the above config pass to syslinux_run_command()?
Does it have a trailing line end character?  terminating NUL character?

> I've tried the ifcpu.c32 application as well (which is a bit similar to kontron_wdt.c32) and it also cannot call syslinux_run_command().
>
> I can see that syslinux_run_command() call create_args_and_load() but if I put any printf's there they're not printed to screen, so it's pretty hard to debug what's causing the error.

Are you using printf() or dprintf()?

> If someone knows a way to call two labels that would also work as a workaround for the problem I'm trying to solve.

Are you just looking to append additional parameters to another LABEL?
 Try this:

LABEL wdt
COM32 cmd.c32
APPEND linuxfoo timeout=120

--
-Gene

_______________________________________________
Syslinux mailing list
Submissions to Syslinux at zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.




More information about the Syslinux mailing list