Saturday 3 April 2010

Building and using ELILO for the Joggler

One of the initial problems I had with Joggler was the source-less ELILO, which I could not seem to replicate. I've succeeded in doing that now, thanks to a patch from TonyHoyle.

First off, you will need at least GCC 4.3.3 (what I tested with), as well as gnu-efi 3.0i from http://sourceforge.net/projects/gnu-efi/files/ (This is a toolchain for EFI binaries)

In gnu-efi 3.0i you will need to edit Make.defaults:

INSTALLROOT=/usr/local

to

INSTALLROOT=/usr

and then make; make install

Then you need to grab elilo-3.12-source.tar.gz from http://sourceforge.net/projects/elilo/files/ and apply (patch -p1) this patch against it (patch -p1) I have provided a elilo.efi that works on my Joggler (not in the 'screen.efi' trick), downloadable here.

You need to after putting elilo.efi in place, in your boot.nsh put the following lines (only lines in the file):

fs1:
cd \efi\elilo
elilo

And provide in \efi\elilo , a elilo.conf not unlike the following. legacy-free is a VERY IMPORTANT OPTION and is required because there is no 'real' BIOS on the joggler. Hope this works for you, otherwise, show up on #mer at irc.freenode.net :)


# Command line options understood here are
#
# fixup - Apply fixups so the default joggler OS can boot the new kernel.
# recovery - Instead of booting stop in a diagnostic shell

legacy-free
default=usb

image=vmlinuz-2.6.30
label=linux2
read-only
initrd=initrd-2.6.30
append="acpi=force root=/dev/mmcblk0p2 fixup"
description="Standard joggler OS with new kernel"

image=vmlinuz-2.6.30
label=usb
initrd=initrd-2.6.30
append="acpi=force root=/dev/sda2"
description="Boot from USB"

image=vmlinuz
label=testing
read-only
append="acpi=force root=/dev/mmcblk0p2"
description="Test vmlinuz, no initrd"

image=vmlinuz-2.6.24-19-lpia
label=test
initrd=initrd-2.6.30
append="acpi=force root=/dev/sda2"
description="Boot from Test"

3 comments:

  1. Hi, thanks for providing that textmode patch; I thought I was going to have to reverse engineer one of the other random binaries to find out what it was doing!

    I'm wondering about the binary kernel you supplied though; is it from vanilla sources, or does it need extra patches (e.g. to the efifb code)?

    ReplyDelete
  2. Ah, elilo isn't a kernel, but read my newest post for how to get a working kernel :)

    ReplyDelete
  3. Ah yeah, I know :) I was trying to figure out why none of the (>2.6.30) kernels I built were not working.

    ReplyDelete