[ipxe-devel] vesamenu.c32 freezes

Michael Brown mbrown at fensystems.co.uk
Fri Oct 21 12:41:20 UTC 2011


On Thursday 20 Oct 2011 14:47:19 Pereira wrote:
> When a user has successfully logged-in, he gets a menu with a list of
> groups he is member of. After choosing a group another
> vesamenu is loaded with the specific bootmenu of that group. He also has
> the choice to switch group or log-out bz returning to the previous menu.
> Every option in the loginmenu or groupmenu loads an ipxe script which
> then loads vesamenu.c32 with a new menu.cfg.
> <snip>
> The problem: I can switch between the different menus exactly 5 times,
> then the computer freezes,

This sounds similar to an issue previously addressed:

  http://git.ipxe.org/ipxe.git/commitdiff/8904cd5

The above fix relies upon vesamenu.c32 directly loading a new .c32 image.  
Since you have vesamenu.c32 loading a script which then loads a .c32 image, I 
suspect you're not triggering the tail-recursion behaviour.

iPXE allows images to replace themselves (analogous to using exec() rather 
than system() under Linux), but this self-replacing functionality is not 
currently exposed via any iPXE command and so is not available to scripts.  
(To do so would require an additional command that would call image_replace() 
or register_and_replace_image() and then call shell_stop() to terminate the 
current script.)

Try eliminating the iPXE script between invocations of vesamenu.c32; that 
should allow you to switch between different menus as many times as you like.

Michael



More information about the ipxe-devel mailing list