[syslinux] real serial port output from pxelinux.0

Geert Stappers stappers at stappers.nl
Sun Aug 9 06:19:22 PDT 2009


Hello,

On a computer with a real serial port do I mis some output.
It is 'real serial port' as opposed to virtual hardware.
The text that I mis is 'My IP address seems to be' and
the decreasing hexadecimal IP-adress staircase.

The banner and the copyright message are displayed.
pxelinux.cfg/default is fetched and its "SAY command" is shown.

Have a look at this <screenshot>
PXELINUX 3.83 pre6-2-g8e01231*  Copyright (C) 1994-2009 H. Peter Anvin et al
About to boot Debian Installer
Loading di/linux..
Loading di/initrd.gz...ready.
</screenshot>

Being curious why only the banner is shown, I dived in core/pxelinux.asm.

Modifing the banner string was easy
and did prove that my modified pxelinux.0 was being run.

Then it did took me several hours of in loop of
 edit-compile-client_reboot-dhcp-pxelinux_run
to find out that I was modifing death code.

With <patch>
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -259,15 +259,6 @@ _start1:
 %include "init.inc"
 
 ;
-; Tell the user we got this far
-;
-               mov si,syslinux_banner
-               call writestr_early
-
-               mov si,copyright_str
-               call writestr_early
-
-;
 ; Assume API version 2.1, in case we find the !PXE structure without
 ; finding the PXENV+ structure.  This should really look at the Base
 ; Code ROM ID structure in have_pxe, but this is adequate for now --
</patch> I got the same output as in <screenshot/>

What is needed to get something like <patch>
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -261,6 +261,9 @@ _start1:
 ;
 ; Tell the user we got this far
 ;
+               mov si,sfsg
+               call writestr_early
+
                mov si,syslinux_banner
                call writestr_early
 
@@ -2597,6 +2600,7 @@ tftpprefix_msg    db 'TFTP prefix: ', 0
 localboot_msg  db 'Booting from local disk...', CR, LF, 0
 trying_msg     db 'Trying to load: ', 0
 default_str    db 'default', 0
+sfsg           db 'So far, so good...', CR, LF, 0
 syslinux_banner        db CR, LF, 'PXELINUX ', VERSION_STR, ' ', DATE_STR, ' ', 0
 cfgprefix      db 'pxelinux.cfg/'              ; No final null!
 cfgprefix_len  equ ($-cfgprefix)
</patch> working?


Cheers
Geert Stappers




More information about the Syslinux mailing list