[syslinux] Dialog Menu System ?

H. Peter Anvin hpa at zytor.com
Mon Nov 13 17:57:39 PST 2006


Darryl L. Miles wrote:
> I would like to create a dialog menu system.  That offered a little bit 
> more than just select of what to boot.
> 
> 
> Outline Requirements (ideals):
> 
>  * That would boot from pxe and keep using the basic ethernet card 
> support (so are zero issues with future ethernet card compatibility, 
> this rules out using a full operating systems like linux/dos/win32 
> unless of course those OSes can be booted and retain the generic BIOS 
> ethernet driver interface for their eth0 ?).

In theory it's possible, but many PXE stacks will crash if you try.

>  * The dialog would be simple, based on 80x25 like text mode, looking 
> much like Red Hat linux installs in text mode, or "make menuconfig" on 
> Linux.
> 
>  * Simple widgets: menu / nagivation, command buttons, editable controls 
> for: textbox, paragraphbox, radio, drop down, checkbox, ipaddress.
> 
> * The engine would load and execute as the operating system, like 
> pxelinux.0 does, then load up a
> 
>  * The whole thing would be driven off TFTP which would load instruction 
> scripts via a TFTP server for the current dialog.  Some minor 
> modification might be made to the HPA TFTP server to allow CGI like 
> execution of a server side script that generates the content of the file 
> being "get".  Various environment variables would be passed to the CGI 
> script, for example the MAC addr, IP addresses, ports numbers, etc...

I've looked into this, and there turns out to be necessary to make a 
modification to the TFTP protocol to make this practical.  I have 
somewhere on my list of things to do to write an Internet Draft for this 
extension.

>  * The instruction sheet has a basic concept of variables, would be text 
> based, kept simple like "default" is right now.
> 
> * There would be a simple mechanism to get and put variable values using 
> a bespoke UDP protocol.  Maybe TFTP is an option here too.  This allows 
> persisting of settings and state to the server.

Yes, TFTP can be used for this.

> Sound impossible ?  The hardest missing pieces from what I can see are 
> mainly dialog widget/control related.

Would Murali's complex menu system be decent starting point?

> Is there an easy development environment for writing pxelinux.0 OS code 
> ?  Is it possible to run a network boot inside an PC architecture 
> emulator.  Can GDB be used in anyway (serial/network) to debug things ?  
> Or is the only way to compile, reboot and crash your victim test system?

"Easy development environment" -- that's in the eye of the beholder.

I usually use a simulator to do this, usually using Etherboot.  Some 
simulators (e.g. Bochs and qemu) allow you to use gdb, you can use the 
.elf file to get the symbol table.

	-hpa




More information about the Syslinux mailing list