[syslinux] Maximum line length of APPEND option in PXELINUX
Geert Stappers
stappers at stappers.nl
Thu Feb 24 02:29:00 PST 2005
On Thu, Feb 24, 2005 at 10:18:32AM +0100, Gebhardt Thomas wrote:
> On Wednesday 23 February 2005 19:52, you wrote:
>
> Hi,
>
> > > Is this intentional? What is the maximum length of the APPEND option
> > > line?
> >
> > 255 characters.
>
> Thank you very much for the quick answer!
>
> I can live with that. Just got surprised by the fact that my old pxelinux.0
> (vers 2.11?) worked while the new one (vers. 3.0.7) just hangs without
> an error message.
>
> The long kernel command line originate from the Knoppix Linux Live CD
> (or derived distributions) that (mis?)uses the kernel command line for
> system configuration options ("cheat codes"). There is even a Knoppix
> 2.4 kernel patch that expands the maximum length of the kernel command
> line.
>
> Since Knoppix is rather widespread, the problem with the overly large APPEND
> line might show up frequently when syslinux 3.x is adopted (Knoppix now uses
> syslinux 2.x).
I see the warning that you are telling,
but I'm almost clueless about the impact of the Request For Change.
>
> Cheers, Thomas
Cheers
Geert Stappers
--
stappers at bahrain:/usr/src/syslinux-3.07
$ grep 255 *
bcopy32.inc: mov byte [cs:A20Tries],255 ; Times to try to make this work
config.inc:max_cmd_len equ 255 ; Must be odd; 255 is the kernel limit
extlinux.doc: limited to 255 characters.
isolinux.doc:- The maximum length of any pathname is 255 characters.
lss16toppm: $r = int((shift @colorset) * 255 / 63 + 0.5);
lss16toppm: $g = int((shift @colorset) * 255 / 63 + 0.5);
lss16toppm: $b = int((shift @colorset) * 255 / 63 + 0.5);
lss16toppm:print "255\n";
NEWS: pathname is 255 characters. As a result, only 64 "label"
ppmtolss16: return (255,255,255) if ( $ch eq '0' ); # White
ppmtolss16: $maxcol = 255; # Internal convention
ppmtolss16: $erun = 255;
pxelinux.asm: cmp al,255 ; END option
rllpack.inc:; 129-255 = (x-126) times subsequent byte
rllpack.inc: cmp bl,255-126
stappers at bahrain:/usr/src/syslinux-3.07
$ grep max_cmd_len *
config.inc:max_cmd_len equ 255 ; Must be odd; 255 is the kernel limit
extlinux.asm:vk_append: resb max_cmd_len+1 ; Command line
isolinux.asm:vk_append: resb max_cmd_len+1 ; Command line
ldlinux.asm:vk_append: resb max_cmd_len+1 ; Command line
parsecmd.inc:AppendBuf resb max_cmd_len+1 ; append=
parsecmd.inc:Ontimeout resb max_cmd_len+1 ; ontimeout
parsecmd.inc:Onerror resb max_cmd_len+1 ; onerror
parseconfig.inc: mov cx,max_cmd_len+1
parseconfig.inc:command_line resb max_cmd_len+2 ; Command line buffer
parseconfig.inc:default_cmd resb max_cmd_len+1 ; "default"
command linepxelinux.asm:vk_append: resb max_cmd_len+1 ; Command line
ui.inc:.not_ctrl_f: cmp di,max_cmd_len+command_line ; Check there's space
ui.inc: mov cx,(max_cmd_len+4) >> 2
ui.inc: lea cx,[max_cmd_len+bx]
ui.inc: ; CX == max_cmd_len-[OnerrorLen]
ui.inc: mov di,command_line+max_cmd_len-1
stappers at bahrain:/usr/src/syslinux-3.07
$
More information about the Syslinux
mailing list