Intel Mac Mini elilo walk through

Instructions for building elilo with VGA support, and some other misc patches to fix ext2 handling, set the mac to always power up after a power cut, and to switch to text mode.

NB: many people seem to have trouble with GNU-EFI, if your elilo doesn't work try a different machine. I've had success with CentOS-4.1 running on ia32.
Download and unpack elilo:

[root@server walkthrough]# wget http://heanet.dl.sourceforge.net/sourceforge/elilo/elilo-3.6.src.tgz
--15:20:21--  http://heanet.dl.sourceforge.net/sourceforge/elilo/elilo-3.6.src.t
gz
           => `elilo-3.6.src.tgz'
[...]
[root@server walkthrough]# tar xfz elilo-3.6.src.tgz 
[root@server walkthrough]# 
Fetch the various patches:
[root@server walkthrough]# wget http://www.madingley.org/macmini/elilo/elilo-ext2.patch
--15:38:26--  http://www.madingley.org/macmini/elilo/elilo-ext2.patch
           => `elilo-ext2.patch'
[...]
[root@server walkthrough]# wget http://www.madingley.org/macmini/elilo/elilo-powerup.patch
--15:38:33--  http://www.madingley.org/macmini/elilo/elilo-powerup.patch
           => `elilo-powerup.patch'
[...]
[root@server walkthrough]# wget http://www.madingley.org/macmini/elilo/elilo-textmode.patch
--15:38:40--  http://www.madingley.org/macmini/elilo/elilo-textmode.patch
           => `elilo-textmode.patch'
[...]
[root@server walkthrough]# wget http://www.madingley.org/macmini/vga/elilo-vga.patch
--15:38:50--  http://www.madingley.org/macmini/vga/elilo-vga.patch
           => `elilo-vga.patch'
[...]
[root@server walkthrough]# wget http://www.madingley.org/macmini/vga/elilo-vga-0.1.tar.gz
--15:38:58--  http://www.madingley.org/macmini/vga/elilo-vga-0.1.tar.gz
           => `elilo-vga-0.1.tar.gz'
[...]
[root@server walkthrough]#
apply the patches:
[root@server walkthrough]# cd elilo
[root@server elilo]# patch -p1 < ../elilo-ext2.patch 
patching file fileops.c
[root@server elilo]# patch -p1 < ../elilo-textmode.patch 
patching file efi110/efiConsoleControl.h
patching file efi110/efiUgaDraw.h
patching file elilo.c
[root@server elilo]# patch -p1 < ../elilo-powerup.patch 
patching file Makefile
patching file io.h
patching file power_up.c
patching file elilo.c
Hunk #1 succeeded at 442 (offset 1 line).
[root@server elilo]# patch -p1 < ../elilo-vga.patch 
patching file ia32/system.c
patching file Makefile
[root@server elilo]# tar xfz ../elilo-vga-0.1.tar.gz 
[root@server elilo]# 
Configure and build elilo:
edit the Make.defaults file and set: Then build it:
[root@server elilo]# make
make -C fs
make[1]: Entering directory `/home/root/projects/macmini/walkthrough/elilo/fs'
/usr/bin/gcc -I. -I/home/root/projects/macmini/walkthrough/elilo/fs/.. -I/software/include/efi -I/software/include/efi/ia32 -I/software/include/efi/protocol -O2  -fpic -fshort-wchar -Wall -DENABLE_MACHINE_SPECIFIC_NETCONFIG -DCONFIG_LOCALFS -DCONFIG_NETFS -DCONFIG_CHOOSER_SIMPLE -DCONFIG_CHOOSER_TEXTMENU -DCONFIG_ia32  -c localfs.c -o localfs.o
[... and quite a few warnings ...]
/usr/bin/objcopy -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
           -j .rela -j .reloc --target=efi-app-ia32 elilo.so elilo.efi
[root@server elilo]# 
You should now have an elilo.efi file, if this was all a bit much you can get a pre-built one.