Hi all, In June 2007 Jerry Nelson started a thread on this mailing list about a problem he was seeing. The thread was http://syslinux.zytor.com/archives/2007-June/008673.html After several hours of searching through the list, I am still convinced that his problem was never solved and is very valid. I recently moved from the old syslinux config options model (all labels in 1 default config file) to having a main menu and submenus using vesamenu.c32. The main menu points to all of the submenus and also has a label for localboot. Each submenu has tons of labels that fit the category of the submenu. The problem is that not every user wants to navigate the menu structure to find the label they want to boot, but they would rather hit escape to get the boot: prompt and type in the memorized label like they used to in the old syslinux model. However, hitting escape and getting the boot: prompt only recognizes the label in the default config file and not in any of the submenu config files. I too have tried MANY attempts at using CONFIG and INCLUDE directives, but have been unsuccessful. Using just the INCLUDE option still dumps all of the labels from the included file into my main menu and really makes a mess of things. I would even be fine adding all the labels from all of the submenu config files into the main menu config if there was any way for them not to show up in the menu. Please help, my forehead hurts from pounding it on the keyboard..... Here is what my main menu config file that gets loaded by default looks like: ***************************************************************** # Graphical Menu Config... default vesamenu.c32 PROMPT 0 TIMEOUT 300 SAY Please enter boot label: F1 gfx/menu-help.conf #INCLUDE gfx/menu-all.conf MENU BACKGROUND back.jpg menu color title 1;37;40 #ffffffff #00000000 std menu color border 1;37;40 #ffffffff #00000000 std menu color tabmsg 1;31;40 #ff8fff89 #00000000 std menu color sel 7;37;40 #ffef0bd2 #ffa3d3f8 all menu color hotsel 7;37;40 #ffef0bd2 #ffa3d3f8 all menu color unsel 1;31;40 #b0ffcf00 #00000000 std menu color hotkey 1;31;40 #ffffff00 #00000000 std menu color timeout_msg 37;40 #80ffffff #00000000 std menu color timeout 1;31;40 #ffff0000 #00000000 std menu color help 1;37;40 #ffffffff #00000000 std menu color msg01 37;40 #80ffffff #00000000 std MENU WIDTH 55 MENU MARGIN 1 MENU PASSWORDMARGIN 3 MENU ROWS 21 MENU TABMSGROW 27 MENU HELPMSGROW 28 MENU HELPMSGENDROW 28 MENU CMDLINEROW 27 MENU ENDROW 28 #MENU PASSWORDROW 27 MENU TIMEOUTROW 28 MENU TITLE Welcome to the SLED PXE / Install System # Help menu label help MENU DISABLE MENU LABEL ^F1 - Help Screen KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-help.conf LABEL harddisk MENU DEFAULT MENU LABEL ^Boot from local disk localboot 1 MENU SEPARATOR # openSuSUE menu label opensuse #TEXT HELP #These are the installable openSuSE distributions #ENDTEXT MENU LABEL ^openSuSE Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-opensuse.conf # NLD menu label nld MENU LABEL ^Novell Linux Desktop Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-nld.conf # SLED menu label sled MENU LABEL ^SLED Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-sled.conf # SLES menu label sles MENU LABEL S^LES Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-sles.conf # Novell menu label novell MENU LABEL O^ther Novell Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-novell.conf # Redhat menu label redhat MENU LABEL ^Redhat & Fedora Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-redhat.conf # Other menu label other MENU LABEL Ot^her Distributions KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-other.conf # Misc menu label misc MENU LABEL ^Misc Options & Utilities KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-misc.conf MENU SEPARATOR # Main menu label main MENU LABEL M^ain Menu KERNEL vesamenu.c32 APPEND pxelinux.cfg/gfx-default ***************************************************************** An example of one of the submenu config files would be: ***************************************************************** # Default boot option to use DEFAULT vesamenu.c32 # Prompt user for selection PROMPT 0 # Help menu label help MENU DISABLE MENU LABEL F1 - Help Screen KERNEL vesamenu.c32 APPEND gfx/menu-default gfx/menu-help.conf # Boot Local Disk label harddisk MENU DEFAULT MENU LABEL Boot from local disk localboot 1 MENU SEPARATOR #Options Here # SuSE Linux 9.2 Professional - 32 Bit label suse9.2 MENU LABEL ^A. suse9.2 - SuSE Linux 9.2 - 32 Bit kernel kernels/suse9.2 append initrd=initrds/suse9.2.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse92 splash=silent showopts uSE Linux 9.2 Professional - 64 Bit label suse9.2-64 MENU LABEL ^B. suse9.2-64 - SuSE Linux 9.2 - 64 Bit kernel kernels/suse9.2-64 append initrd=initrds/suse9.2-64.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse92 splash=silent showopts # SuSE Linux 9.3 Professional - 32 Bit label suse9.3 MENU LABEL ^C. suse9.3 - SuSE Linux 9.3 - 32 Bit kernel kernels/suse9.3 append initrd=initrds/suse9.3.img ramdisk_size=65536 install=nfs://XXX.XXX.249.243/install/suse93 splash=silent showopts # SuSE Linux 9.3 Professional - 64 Bit label suse9.3-64 MENU LABEL ^D. suse9.3-64 - SuSE Linux 9.3 - 64 Bit kernel kernels/suse9.3-64 append initrd=initrds/suse9.3-64.img ramdisk_size=65536 install=nfs://XXX.XXX.249.243/install/suse93 splash=silent showopts # openSuSE 10.0 - 32 Bit label suse10 MENU LABEL ^E. suse10 - openSuSE 10.0 - 32 Bit kernel kernels/suse10 append initrd=initrds/suse10.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse10 splash=silent showopts # openSuSE 10.0 - 64 Bit label suse10-64 MENU LABEL ^F. suse10-64 - openSuSE 10.0 - 64 Bit kernel kernels/suse10-64 append initrd=initrds/suse10-64.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse10_64 splash=silent showopts # openSuSE 10.1 - 32 Bit label suse10.1 MENU LABEL ^G. suse10.1 - openSuSE 10.1 - 32 Bit kernel kernels/suse10.1 append initrd=initrds/suse10.1.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse101 splash=silent showopts # openSuSE 10.2 - 32 Bit label suse10.2 MENU LABEL ^H. suse10.2 - openSuSE 10.2 - 32 Bit kernel kernels/suse10.2 append initrd=initrds/suse10.2.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse102 splash=silent showopts # openSuSE 10.2 - 64 Bit label suse10.2-64 MENU LABEL ^I. suse10.2-64 - openSuSE 10.2 - 64 Bit kernel kernels/suse10.2-64 append initrd=initrds/suse10.2-64.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse102_64 splash=silent showopts # openSuSE 10.3 - 32 Bit label suse10.3 MENU LABEL ^J. suse10.3 - openSuSE 10.3 - 32 Bit kernel kernels/suse10.3 append initrd=initrds/suse10.3.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse103 splash=silent showopts # openSuSE 10.3 - 64 Bit label suse10.3-64 MENU LABEL ^K. suse10.3-64 - openSuSE 10.3 - 64 Bit kernel kernels/suse10.3-64 append initrd=initrds/suse10.3-64.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse103_64 splash=silent showopts # openSuSE 11.0 - 32 Bit label suse11 MENU LABEL ^L. suse11 - openSuSE 11.0 - 32 Bit kernel kernels/suse11 append initrd=initrds/suse11.img ramdisk_size=65536 insmod=e100 install=nfs://XXX.XXX.249.243/install/suse11 splash=silent showopts MENU SEPARATOR # Return to Main Menu LABEL MainMenu MENU LABEL Main Menu KERNEL vesamenu.c32 APPEND pxelinux.cfg/gfx-default ****************************************************************** Thanks in advance for any help in solving this little configuration dilema. -Bryan
Bryan Perry wrote:> Hi all, > > In June 2007 Jerry Nelson started a thread on this mailing list about a problem he was seeing. The thread was http://syslinux.zytor.com/archives/2007-June/008673.html > > After several hours of searching through the list, I am still convinced that his problem was never solved and is very valid. I recently moved from the old syslinux config options model (all labels in 1 default config file) to having a main menu and submenus using vesamenu.c32. The main menu points to all of the submenus and also has a label for localboot. Each submenu has tons of labels that fit the category of the submenu. > > The problem is that not every user wants to navigate the menu structure to find the label they want to boot, but they would rather hit escape to get the boot: prompt and type in the memorized label like they used to in the old syslinux model. However, hitting escape and getting the boot: prompt only recognizes the label in the default config file and not in any of the submenu config files. I too have tried MANY attempts at using CONFIG and INCLUDE directives, but have been unsuccessful. Using just the INCLUDE option still dumps all of the labels from the included file into my main menu and really makes a mess of things. > > I would even be fine adding all the labels from all of the submenu config files into the main menu config if there was any way for them not to show up in the menu. > > Please help, my forehead hurts from pounding it on the keyboard..... >It is ugly, but there is a way to do it (I have plans for a much cleaner implementation, but I'm being way too busy unfortunately.) This is how: have your main configuration file contain: ------------- # This is where we start the menu tree... default vesamenu.c32 main.cfg include main.cfg include submenu1.cfg include submenu2.cfg include submenu3.cfg -------------- The trick is that the root of the menu tree doesn't actually have to be your main configuration file (the one that's read by the CLI.) Thus, you can have the main configuration file include ALL your submenus, and therefore seeing all the labels (at least up to the 64K limit in the CLI.) -hpa