The problem with GRUB2 was that it did not initialize video correctly and hence did now 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!
To compile GRUB2:
- Grab the source and untar it
- Patch it with this patch (grub-gop-video-v1.patch, patch -p1 it)
- ./configure --with-platform=efi
- Run 'make'
- Make a .efi file: ./grub-mkimage -d . -o grub.efi part_msdos hfsplus fat ext2 normal sh chain boot configfile linux
- If you're too lazy or incapable of building, use this grub.efi
To use it in practice:
- Make a efi\grub directory and put grub.efi in there
- 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.
Enjoy - if you're a Joggler hacker, come to #mer on irc.freenode.net, a good bunch of us there by now. Webchat here.