Mythic Beasts

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.mythic-beasts.com/macmini/elilo/elilo-ext2.patch
--15:38:26--  http://www.mythic-beasts.com/macmini/elilo/elilo-ext2.patch
           => `elilo-ext2.patch'
[...]
[root@server walkthrough]# wget http://www.mythic-beasts.com/macmini/elilo/elilo-powerup.patch
--15:38:33--  http://www.mythic-beasts.com/macmini/elilo/elilo-powerup.patch
           => `elilo-powerup.patch'
[...]
[root@server walkthrough]# wget http://www.mythic-beasts.com/macmini/elilo/elilo-textmode.patch
--15:38:40--  http://www.mythic-beasts.com/macmini/elilo/elilo-textmode.patch
           => `elilo-textmode.patch'
[...]
[root@server walkthrough]# wget http://www.mythic-beasts.com/macmini/vga/elilo-vga.patch
--15:38:50--  http://www.mythic-beasts.com/macmini/vga/elilo-vga.patch
           => `elilo-vga.patch'
[...]
[root@server walkthrough]# wget http://www.mythic-beasts.com/macmini/vga/elilo-vga-0.1.tar.gz
--15:38:58--  http://www.mythic-beasts.com/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.

Copyright © 2000-2011 Mythic Beasts Ltd. All Rights Reserved.