[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