[syslinux] [RFC][PATCH] Gfxboot COMBOOT module

Sebastian Herbszt herbszt at gmx.de
Mon Nov 24 11:32:17 PST 2008


Gene Cumm wrote:
> 2008/11/22 Sebastian Herbszt <herbszt at gmx.de>:
>> So here it is. Ugly and far from acceptable shape but nonetheless it seems to
>> work. Parts are borrowed from syslinux core and of course the gfxboot patch for
>> syslinux 3.63.
>>
>> Syntax: gfxboot.com <bootlogo file>
>>
>> - Sebastian
>>
> 
> Hmmm... gfxboot as a COMBOOT?  Sounds appealing.  Doesn't modify the
> core yet allows the eye candy of gfxboot.  Seems like it should have
> been this way from the beginning.
> 
> As far as the code that is borrowed (at least for I/O), what about using:
> %include "../core/getc.inc"
> (or something else similar/more appropriate)?  The COMBOOT module has
> an extremely limited awareness of the config, which does help for code
> simplicity so including the parsing code might not be appropriate.

Yes, it only recognizes the LABEL keyword.

Instead of parsing the config file again (syslinux core did it already) i was
thinking about some COMBOOT interface to request label count, label names and more,
e.g. INT 22h AX=001Eh "get config" with input register BX and something like
BX=0 - get label count (change VKernel to a counter and return it)
BX=1 - get label info, CX points to the wanted label entry with output ES:BX which
points to VKernelBuf after finding the proper label and running rllunpack. Unfortunatelly
pxelinux has a different vkernel structure (contains ipappend).

> After changing modules/Makefile to read:
> BINS = pxechain.com gfxboot.com
> I attempted to compile:
> 
> $ make
> nasm -O9999 -f bin -o gfxboot.com -l gfxboot.lst gfxboot.asm
> gfxboot.asm:479: error: symbol `gfx_media_type' undefined
> gfxboot.asm:882: error: phase error detected at end of assembly.
> make: *** [gfxboot.com] Error 1
> 
> Looking around, I think you may have missed one character on line 860,
> gfx_media_typ instead of gfx_media_type.  Changing this it compiles.

Yes, sorry. I messed it up while fixing indent style.

--- gfxboot.asm.bad 2008-11-10 07:57:22.000000000 +0100
+++ gfxboot.asm 2008-11-24 20:21:31.000000000 +0100
@@ -857,7 +857,7 @@
 gfx_sysconfig          equ $
 gfx_bootloader         db 1                    ;  0: boot loader type (0: lilo, 1: syslinux, 2: grub)
 gfx_sector_shift       db 9                    ;  1: sector shift
-gfx_media_typ          db 0                    ;  2: media type (0: disk, 1: floppy, 2: cdrom)
+gfx_media_type         db 0                    ;  2: media type (0: disk, 1: floppy, 2: cdrom)
 gfx_failsafe           db 0                    ;  3: turn on failsafe mode (bitmask)
                                                ;     0: SHIFT pressed
                                                ;     1: skip gfxboot

- Sebastian




More information about the Syslinux mailing list