Page 1 of 4 123 ... LastLast
Results 1 to 10 of 39

Thread: Fancy menu for GRUB EFI

  1. #1
    Join Date
    May 2007
    Beans
    465

    Fancy menu for GRUB EFI

    Hi,

    This is based on Colin's fancy menu patch, with my latest fb driver that provides graphics mode for efi.

    Binary package:
    http://grub4dos.sourceforge.net/gfxmenu.zip

    Just extract the files to the root directory, and select grub64.efi from rEFIt boot menu. It's a little slow, but the menu looks much better than the original.

    There are four themes in grub.cfg, you can use # to comment out the ones you don't want, the default theme is winter.

    Here are some screen shot from Colin's project page:
    http://grub.gibibit.com/Themes

    Source code can be downloaded from my github branch at:
    http://github.com/bean123/grub/

  2. #2
    Join Date
    May 2008
    Beans
    745

    Re: Fancy menu for GRUB EFI

    Cool menus, but I can't seem to get it to work on my setup. Where is grub64.efi looking for the fonts and themes? On the same partition, relative to any particular directory, or something else?

  3. #3
    pxwpxw's Avatar
    pxwpxw is offline Chocolate Ubuntu Mocha Blend
    Join Date
    Apr 2006
    Beans
    Hidden!
    Distro
    Ubuntu 9.04 Jaunty Jackalope

    Re: Fancy menu for GRUB EFI

    Placed in the OSX partition root /
    Code:
    /boot/
    grub64.efi
    grub.cfg
    Nice first screen, promises great stuff, then getting lost.

    Gets the initial graphical boot screen, then 'c' gets nice black window and shell prompt sh:grub>
    (with painfully slow response).

    No success so far trying to edit menuentry for actual boot, dont know why.
    e.g. could not use 'configfile /grub2.cfg' to get sub-menu.
    Do we need to read about classes?

    Missing commaands in the demo grub64.efi include 'echo' 'read' 'videotest' so selections from first screen fail on these.

    Will try more later.
    Last edited by pxwpxw; August 25th, 2009 at 07:01 AM.

  4. #4
    Join Date
    May 2007
    Beans
    465

    Re: Fancy menu for GRUB EFI

    Quote Originally Posted by pxwpxw View Post
    Placed in the OSX partition root /
    Code:
    /boot/
    grub64.efi
    grub.cfg
    Nice first screen, promises great stuff, then getting lost.

    Gets the initial graphical boot screen, then 'c' gets nice black window and shell prompt sh:grub>
    (with painfully slow response).

    No success so far trying to edit menuentry for actual boot, dont know why.
    e.g. could not use 'configfile /grub2.cfg' to get sub-menu.
    Do we need to read about classes?

    Missing commaands in the demo grub64.efi include 'echo' read' 'videotest' so selections from first screen fail on these.

    Will try more later.
    There are still problem with colin's patch, it's not quite optimized and the screen needs to be redrawn a lot. I plans to rework the menu system soon, this is just a demo of what the fancy menu looks like.

  5. #5
    Join Date
    May 2007
    Beans
    465

    Re: Fancy menu for GRUB EFI

    The new graphic menu system is almost done now, you can use menuentry to add boot items, for example, grub.cfg could be like this:

    menuentry "AAA" {
    set root=(hd0,1)
    chainloader +1
    }

    menuentry "BBB" --class ubuntu {
    true
    }

    . /menu/menu_efi.cfg

    You can also use config file format, which allows you to construct sub menu as well:

    menu
    {
    Linux
    {
    command = "linuz .. \n initrd .."
    }

    "Sub Menu"
    {
    Halt
    {
    class = "Other"
    command = "halt"
    }

    Reboot
    {
    command = "reboot"
    }
    }
    }

    Save this to a file like my_menu.txt, then use merge_config to append it to the menu list:

    merge_config /my_menu.txt

    The menu.cfg file appends a Tools menu, it contains the following tools:

    Toggle Mode
    Switch between text and graphic mode

    Terminal
    Open a terminal window, ESC to quit

    Change Theme
    Change menu theme

    Layout Demo
    Run the layout demo, ESC to quit

    Halt
    shutdown

    Reboot
    reboot

    The resource file is at:

    http://grub4dos.sourceforge.net/menu.zip
    Attached Files Attached Files

  6. #6
    pxwpxw's Avatar
    pxwpxw is offline Chocolate Ubuntu Mocha Blend
    Join Date
    Apr 2006
    Beans
    Hidden!
    Distro
    Ubuntu 9.04 Jaunty Jackalope

    Re: Fancy menu for GRUB EFI

    After editing several files to get a working gfx menu I liked, looking good, all OS booting ok. The background picture makes it necessary to tweak terminal background and some other colours. Lots of options to understand.
    Terminal is good, still missing history and tab completion, also paging option (like efi shell -b on individual command). Other multiple terminal configurations work well (not popup).

    Screen 1920x1200.

    Not tried on text screen, default is too small, refit efi shell can change text mode to max native resolution (mode command), but IDK why one would need to use text mode on Apple.

    Attached pictures and detail on edited files.
    This was grub.cfg
    Code:
    . /menu/pxw1x.cfg
    . /menu/menu_efi.cfg
    Attached Images Attached Images
    Attached Files Attached Files
    Last edited by pxwpxw; October 19th, 2009 at 05:00 AM.

  7. #7
    Join Date
    May 2007
    Beans
    465

    Re: Fancy menu for GRUB EFI

    Update:

    TAB completion for term.

    Support key mapping, for example, you can map F5 to ctrl-x using this:

    mapkey {
    f5 = ctrl-x
    }

    Support user defined hotkey, for example, in the demo:

    onkey {
    c = "menu_popup term_window"
    e = "menu_popup edit_window edit.text=command"
    f7 = "menu_popup layout_test"
    f8 = menu_toggle_mode
    f9 = halt
    f10 = reboot
    }

    c open a terminal window, e open a edit box to edit the current
    command, use ctrl-x to save it. f7 runs the layout demo test, f8
    toggle between text and graphic mode, f9 shutdown, f10 reboot.

    Optimize screen update algorithm, the menu should run more smoothly.

    The demo file at http://grub4dos.sourceforge.net/menu.zip is updated.
    Attached Files Attached Files

  8. #8
    pxwpxw's Avatar
    pxwpxw is offline Chocolate Ubuntu Mocha Blend
    Join Date
    Apr 2006
    Beans
    Hidden!
    Distro
    Ubuntu 9.04 Jaunty Jackalope

    Re: Fancy menu for GRUB EFI

    Quote Originally Posted by bean123 View Post
    Update:

    TAB completion for term.

    Support key mapping, for example, you can map F5 to ctrl-x using this:

    mapkey {
    f5 = ctrl-x
    }

    Support user defined hotkey, for example, in the demo:

    onkey {
    c = "menu_popup term_window"
    e = "menu_popup edit_window edit.text=command"
    f7 = "menu_popup layout_test"
    f8 = menu_toggle_mode
    f9 = halt
    f10 = reboot
    }

    c open a terminal window, e open a edit box to edit the current
    command, use ctrl-x to save it. f7 runs the layout demo test, f8
    toggle between text and graphic mode, f9 shutdown, f10 reboot.

    Optimize screen update algorithm, the menu should run more smoothly.

    The demo file at http://grub4dos.sourceforge.net/menu.zip is updated.
    All good so far on IMAC81, aluminium keyboard,

    Terminal TAB completion is great.
    (history?).

    All works well with all the keys in mapkey, onkey (right from the startup screen), still to checkout editing boot command. (just using your menu and grub64.efi).

    terminal scroll back buffer seems to be about 140 lines, seems to also need paging option for long output.

    All this with no significant increase in grub64.efi size.

  9. #9
    Join Date
    May 2007
    Beans
    465

    Re: Fancy menu for GRUB EFI

    Quote Originally Posted by pxwpxw View Post
    terminal scroll back buffer seems to be about 140 lines, seems to also need paging option for long output.
    This can be configured via max_lines property, for example:

    term_window {
    panel {
    class = frame
    width = 100%
    height = 100%
    term {
    width=100%
    height=100%
    max_lines=500
    }
    }
    }

    You can also set max_lines=0 to indicate infinite history, when output gets too long, use clear command to reset screen.

    If max_lines is not set, default value 100 would be used.

  10. #10
    pxwpxw's Avatar
    pxwpxw is offline Chocolate Ubuntu Mocha Blend
    Join Date
    Apr 2006
    Beans
    Hidden!
    Distro
    Ubuntu 9.04 Jaunty Jackalope

    Re: Fancy menu for GRUB EFI

    Yes max_lines works nicely. gfx terminal is very fast now, but text terminal wins for debuggiing - try set debug=all with command line boot linux /vmlinuz (debian lenny).

Page 1 of 4 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •