Grub2

Overview
GRUB2 needs patches to allow it to initialize video correctly and show the framebuffer console when booting. Another problem was that it did not have a TextModeHack.

For the technical side of these problems: GRUB2 did not pass correct video information in the linux kernel parameters due to it only supporting UGA video. Thanks to bean's patch, I was able to construct a working GRUB2. UPDATE: now with adq's updated patch, we no longer need to use screen.efi as it contains a TextModeHack now - thanks to him for the great hack!

Compile
To compile GRUB2:

cd grub-1.98/loader/i386/efi/ patch -p1 linux.c < grub-gop-video-v1.patch
 * Grab the source and untar it
 * Patch it with grub-gop-video-v1.patch


 * ./configure --with-platform=efi
 * Run 'make'

Once you have grub built you need to create a custom executable with all the modules you want ./grub-mkimage -d. -o ../grub.efi part_msdos part_gpt fat ext2 hfsplus normal sh chain boot configfile linux help reboot acpi pci search


 * part_msdos : reads msdos partition tables
 * part_gpt : gpt partition tables
 * fat : reads FAT filesystem
 * ext2 : reads ext2/3 filesystems
 * hfsplus : apple filesytems
 * normal : basic grub
 * sh : uses
 * chain : may be useful to run the original O2 boot.efi
 * boot : allow it to boot
 * configfile : reads the menu from a config
 * linux : understand the linux kernel
 * help : online help
 * reboot : !
 * acpi : May be needed to access internal acpi devices
 * cpi : May be needed to access internal pci devices
 * search : Enables searching for devices by label

Install
To use it on the device from an external stick: To make this automatic: fs1: grub fs1:boot2 fs0:boot
 * put grub.efi in the root of a usb fat partition on a stick
 * go through the tapping and type: "fs1:grub" blind
 * you can go to shell and edit the fs0:boot.nsh
 * Put in the root of the FAT partition, file boot.nsh:
 * And file startup.nsh:
 * Put in a grub.cfg file in \efi\tools (sample one linked, not working, you need to edit it). See elilo config in the other post for inspiration.
 * If you do not need interactivity with the menu (letting it time out to the default item), you do not have to press ESC at bootup.

Based on http://jogglerhacks.blogspot.com/2010/04/grub2-on-joggler.html