Finnix Forums » Ideas & Suggestions
VERY Minor Request: Menu.c32 interface for bootup.
-
Submitted by SourceForge user nazo
I posted about this to the mailling list a while back, but, it received no response either for or against (or even neutral.) Actually, now that I think about it, this is the more appropriate place (at the time I posted I wasn't aware that requests went into the "Bugs " forum and thought there was no official location for requests.)
I'm not sure if you already know about it or not, but, one nice thing Syslinux offers is a COM32 module called the simple menu (not to be confused when doing searches with the simpler advanced menu sample file which is often called simple menu by accident.) To use it, simply place the menu.c32 file from /com32/ modules in the syslinux archive in the /isolinux folder of the cd-rom (or root of anything using syslinux rather than isolinux, such as a flash drive) and add a few minor extra options to the configuration file. Menu.c32 has one catch unfortunately, and that' s the lack of support for displaying images/text. Meaning no F1-F4 pages describing options and such. However, it also has an advantage of making things enough easier on the end user that such pages are often no longer necessary. For example, no longer does the end user have to type, say, "finnix acpi=off noapic pci=bios" for example, but, instead they would see an option something along the lines of "Finnix - Buggy BIOS Workaround" (I don't recall the exact text size limit before text gets cut off, but, I think that would fit.) There has actually been talk of a text pager module based on some of the code used in the advance menu's help system, but, right now it hasn't happened (I suppose a special menu could be built that doesn't present the user with choices, but, simply displays hard-coded text, then loads the menu.c32 module again, but, that's clearly no permanent solution.) Still, it seems to me that enough menu items could be provided to make the help text unnecessary except for some of those "cheat codes" that I think aren't even all listed in the help menu. Oh, and the user can highlight a menu item, then hit tab to change the command line if they want to add or remove options.
Here is a really simple isolinux.cfg configuration for trying out the simple menu based on the current 87.0 configuration (remember to put the menu.c32 file in there, oh, and I use chain.c32 for the harddrive loading because localboot is kind of unofficially depreciated in it's favor due to BIOSes not fully implementing localboot often):
DEFAULT menu.c32
TIMEOUT 600
ONTIMEOUT chain.32 hd0 0
PROMPT 0
DISPLAY f1
F1 f1
F2 f2
F3 f3
MENU TITLE Finnix 87.0 Stable - Boot Menu
LABEL finnix
MENU LABEL Finnix - Standard Bootup
MENU DEFAULT
KERNEL linux
APPEND apm=power-off vga=791 initrd=minirt quiet
LABEL text
MENU LABEL Finnix - Text (no-fb) Mode
KERNEL linux
APPEND apm=power-off vga=normal initrd=minirt
quiet
LABEL debug
MENU LABEL Finnix - Debug Mode
KERNEL linux
APPEND apm=power-off vga=normal initrd=minirt
debug
LABEL failsafe
MENU LABEL Finnix - Failsafe Mode
KERNEL linux
APPEND vga=normal atapicd nosound noapic noacpi
pnpbios=off acpi=off nofstab noscsi nodma noapm nousb
nopcmcia nofirewire noagp nomce nodhcp xmodule=vesa
initrd=minirt
LABEL userdef
MENU HIDE
KERNEL linux
APPEND
###############################################
###############################################
###############################################
###############################################
###############################################
###############################################
###############################################
###############################################
###############################################
###############################################
#########################################
LABEL memtest
MENU LABEL Memtest86+ (Tests RAM Hardware)
KERNEL memtest
APPEND -
LABEL hda
MENU LABEL Boot First Harddrive
KERNEL chain.c32
APPEND hd0 0
LABEL fd0
MENU LABEL Boot First Floppy Drive
KERNEL chain.c32
APPEND fd0
http://sourceforge.net/tracker/index.php?func=detail&aid=1464396&group_id=3892&atid=103892Posted Wed, 21 Jun 2006 15:45:20 -0700 -
Do you know if there is a way to keep the boot banner as well?Posted Thu, 22 Jun 2006 05:39:39 -0700
-
Unfortunately, it can't keep the banner so far as I know. The menu clears the screen when it's loaded. Perhaps a slight modification of the code would allow you to stop the clearing and to move the menu down, but, I have no idea how to do this. Alternately, they have an advanced menu system which can get really complicated filling the entire screen with something that looks like a real program and having the complexity to support things such as passwords and such, but, again, this advanced menu is non-graphical so the most you could do with it graphically is maybe put up ascii art in the background. I haven't gotten around to trying it, but, I am told there is a generator to simplify the production of the advanced menu now.
I'll admit, menu.c32 is nice in that it simplifies things with a simple menu controlled by up and down arrows rather than the user paging through information to figure out what label they want, but, it's not pretty and it likely never will be. It has it's disadvantages such as the fact that you can't really show the user pages of information, so you have to create a seperate label for each major situation (just don't forget you can hit tab and add or remove stuff on the command line should you need to, but, the idea is that you can't expect the average user to know what to type in there without pages of information telling them.)
It's up to you whether you like it or not or whether you think Finnix would benefit or not. (I might add that if you want to just test, you can always just put the extra data in there like menu lables -- which can be a lot more detailed and long than the normal syslinux lables -- and put the menu.c32 file on the disc, then just manually load menu.c32 rather than having it come up by default.)Posted Thu, 22 Jun 2006 09:07:10 -0700 -
Check this out:
H. Peter Anvin to SYSLINUX
More options 3:36 am (11 hours ago)
Hi all,
I have pushed out a SYSLINUX 3.30-pre1. The main difference versus
earlier versions is that this version contains a *preview* of a VESA
graphical menu system (vesamenu.c32); it's used the same way as
menu.c32, with the addition of a few more commands (which can also be
used in menu.c32 in this new version):
MENU BACKGROUND file.png
... loads a background image in PNG format.
MENU COLOR name ansi fg bg
... sets color <name> to <ansi> when used in text mode, or on the serial
console, and to ARGB colors <fg> and <bg> in graphics mode. For
example, #ffffffff is white with full opacity; #00000000 is fully
transparent. One of the defaults (see below) would thus be written:
menu color sel 0;7;37;40 #cf101010 #20ff8000
The current color names and defaults are currently as follows (from the
source code):
/*
* The color/attribute indexes (\1#XX) are as follows
*
* 00 - screen Rest of the screen
* 01 - border Border area
* 02 - title Title bar
* 03 - unsel Unselected menu item
* 04 - hotkey Unselected hotkey
* 05 - sel Selection bar
* 06 - hotsel Selected hotkey
* 07 - scrollbar Scroll bar
* 08 - tabmsg Press [Tab] message
* 09 - cmdmark Command line marker
* 10 - cmdline Command line
* 11 - pwdborder Password box border
* 12 - pwdheader Password box header
* 13 - pwdentry Password box contents
* 14 - timeout_msg Timeout message
* 15 - timeout Timeout counter
*/
static const struct color_table default_color_table[] = {
{ "screen", "0;37;40", 0x80ffffff, 0x00000000 },
{ "border", "0;30;44", 0x40000000, 0x00000000 },
{ "title", "1;36;44", 0xc00090f0, 0x00000000 },
{ "unsel", "0;37;44", 0x90ffffff, 0x00000000 },
{ "hotkey", "1;37;44", 0xffffffff, 0x00000000 },
{ "sel", "0;7;37;40", 0xcf101010, 0x20ff8000 },
{ "hotsel", "1;7;37;40", 0xff353535, 0x20ff8000 },
{ "scrollbar", "0;30;44", 0x40000000, 0x00000000 },
{ "tabmsg", "0;31;40", 0x90ffff00, 0x00000000 },
{ "cmdmark", "1;36;40", 0xc000ffff, 0x00000000 },
{ "cmdline", "0;37;40", 0xc0ffffff, 0x00000000 },
{ "pwdborder", "0;30;47", 0x80ffffff, 0x20ffffff },
{ "pwdheader", "0;31;47", 0x80ff8080, 0x20ffffff },
{ "pwdentry", "0;30;47", 0x80ffffff, 0x20ffffff },
{ "timeout_msg", "0;37;40", 0x80ffffff, 0x00000000 },
{ "timeout", "1;37;40", 0xc0ffffff, 0x00000000 },
};
_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
The short of it is, it has now become possible with Syslinux 3.30-pre1 to have a graphical menu including a background, which could feature a logo or whatever else you wanted. As he says, it's a "preview" so perhaps we may need to wait a little while for the chinks to be worked out, but, it's something to keep an eye on.
EDIT: Vesamenu.c32 is now more or less out of the alpha stages. It's pretty simple and stable at this point. Using vesamenu you can show your logo as well as any text you would like to use.Posted Fri, 01 Sep 2006 06:40:55 -0700 -
I thought I'd build a sample ISO using 0.89.1 to show what it would be like. I know that the menu isn't terribly important, but I think it's pretty nice for new users since it simplifies things as well as experienced users since when you hit tab you can much more easily edit the command line to add/remove "cheat codes." Also, it just plain looks nice IMO. None of the images really seemed quite right for it, so I just tossed something together to make the background image -- I hope this is ok since I did use the logo, but it's just a sample really, intended only for this site. Also, I couldn't think of a better way to host it than to put it up on RapidShare (sorry!) which also required me to split it up since it's just a smidge over their 100MB limit, so I've also compressed it with RAR (just use the opensource unrar to decompress and it will be fine -- I tested it myself just to be sure and it worked 100%. Unrar comes standard on just about every linux distro, so you probably already have it. Windows users will probably want to get WinRAR instead of using one of the console clients though.) Overall I think it suceeds in showing off some of the niceties of the simple menu and the newer vesamenu (which, btw, is no longer even a little bit alpha.) Here are the two parts to the archive:
http://rapidshare.com/files/30854283/finnix.rar.html
http://rapidshare.com/files/30857083/finnix.r00.htmlPS. I didn't change Finnix itself, but I did change a few filenames for easier placement of multiple things on the one disc (mostly out of habit since I usually just add it onto my tools disc along a number of other things.) Again, this is just a sample, so no big deal if you don't like it. Also, I tossed in a tiny minimalist distro that does nothing more than run Prime95 to go along with Memtest86+. It's more convenient for testing a CPU because it's even more minimalistic and doesn't even touch much hardware other than the CPU and memory. This wasn't built by me though, someone on Mersenne.org's forums was nice enough to build it and put it up for others (though I did put in a newer version of Prime95, it is otherwise unchanged.) Oh, and I saved the delete links, so if you don't like that being up, just say so and I'll remove it.
Posted Sat, 12 May 2007 02:30:17 -0700