2013-10-25 16:33:44 +02:00
|
|
|
3 . 1 6 R E L E A S E N O T E S
|
2013-10-24 20:32:17 +02:00
|
|
|
===================================
|
|
|
|
|
|
|
|
QUICK CHANGE SUMMARY
|
|
|
|
====================
|
2013-10-25 16:33:44 +02:00
|
|
|
* Adds native x86x crossbuild functionality
|
|
|
|
build 32bit or 64bit versions from either environment via
|
|
|
|
make ARCH=ia32|x86_64 (the ARCH IS case sensitive).
|
|
|
|
make by itself will default to the native host arch.
|
|
|
|
* Add console reset call during initialization. thanks A. Steinmetz
|
|
|
|
* simplify output of no GOP warning text so it no longer looks like an error.
|
|
|
|
* MAJOR: Fixed Fault crash when EFI memory map changes from under elilo.
|
|
|
|
(from an outside interrupt in this case). When the EFI Memory map
|
|
|
|
changes after elilo has already built boot params to pass to the
|
|
|
|
kernel the EFI call to ExitBootSvcs just prior to boot will fail
|
|
|
|
because elilo has the old map key. This is valid EFI behavior, elilo
|
|
|
|
retries to pick up the new memory map and key but had already freed
|
|
|
|
the start params portion of boot params resulting in a NULL DEREF
|
|
|
|
crash reset once it hands the now bogus boot params to the kernel on
|
|
|
|
the 2nd successful call to exit efi and boot.
|
|
|
|
Thanks to Jerry Hoemann @ HP for reporting this bug.
|
|
|
|
* minor bugfix, fixed -m option broken. thanks Allan-lsk.
|
|
|
|
|
2013-10-24 20:32:17 +02:00
|
|
|
BUILD NOTES
|
|
|
|
====================
|
|
|
|
You will need the following toolchain to build elilo-3.14 from source
|
|
|
|
the elilo build environment is optimized for Debian and Debian based distros.
|
2013-10-25 16:33:44 +02:00
|
|
|
elilo-3.16 was built in the squeeze+(ubuntu 11.x) build environments except
|
|
|
|
for itanium which is unchanged to best support legacy enterprise configs.
|
2013-10-24 20:32:17 +02:00
|
|
|
Toolchain versions for this release were:
|
2013-10-25 16:33:44 +02:00
|
|
|
x86x(32 & 64bit versions)
|
|
|
|
* gnu-efi --> 3.0i-3
|
|
|
|
* gcc ------> 4:4.4.4-1ubuntu2
|
|
|
|
* binutils -> 2.20.51.20100908-0ubuntu2
|
2013-10-24 20:32:17 +02:00
|
|
|
ia64
|
|
|
|
* gnu-efi --> 3.0e-2
|
|
|
|
* gcc ------> 4.3.2-2
|
|
|
|
* binutils -> 2.18.1~cvs20080103-7
|
|
|
|
|
2013-10-25 16:33:44 +02:00
|
|
|
* if you use a debian based build environment you will have no problems
|
2013-10-24 20:32:17 +02:00
|
|
|
and setting it up is simple. you will be able to build elilo in 3 steps:
|
|
|
|
1. apt-get install gnu-efi, gcc, binutils
|
2013-10-25 16:33:44 +02:00
|
|
|
2. apt-get source elilo (or download elilo-3.16 source from SourceForge.)
|
|
|
|
3. extract source tarball and cd to ./$your-elilo-source and type $> make
|
2013-10-24 20:32:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
** If you use the upstream toolchain tarballs(i.e. pre distro) you will need
|
|
|
|
to move some files around for elilo build to work.
|
|
|
|
GNU-EFI (provides the efi 1.10 and uefi 2.x libraries & api)
|
|
|
|
-------
|
|
|
|
gnu-efi libraries are installed to /usr/local/lib by the
|
|
|
|
upstream gnu-efi source package. elilo expects them to be in system location
|
|
|
|
/usr/lib. efi includes may be located in /usr/local/include/efi. elilo
|
|
|
|
expects them to be in system location /usr/include/efi.
|
|
|
|
[ The reason is LSB compliance ].
|
|
|
|
|
|
|
|
BINUTILS (provides the elf conversion utility to produce efi bins)
|
|
|
|
--------
|
|
|
|
binutils provides objcopy which is installed to /usr/local/bin by binutils,
|
|
|
|
elilo source expects it to be in /usr/bin.
|
|
|
|
|
|
|
|
again this LSB compliance is taken care of by the distro's that fix
|
|
|
|
the toolchains to install to the correct compliant system locations
|
|
|
|
instead of the "user optional" location.
|
|
|
|
|
|
|
|
ELILO ON EFI X86_64
|
|
|
|
=====================
|
|
|
|
HARD REQUIREMENTS
|
|
|
|
EFI + x86_64 REQUIRES an efi64 enabled linux kernel i.e. 2.6.21 or newer
|
|
|
|
nothing earlier will work, 2.6.21 was the earliest kernel that efi64
|
|
|
|
support went into. You need to compile the kernel with CONFIG_EFI
|
|
|
|
kernel option ON.
|
|
|
|
x86_64 platforms with UEFI 2.0 firmware deprecate UGA protocol
|
|
|
|
and therefore only the Graphics Output Protocol (GOP) is supported. For
|
|
|
|
such platforms, the kernel must be compiled with EFI_FB option ON. This
|
|
|
|
will enable early boot messages on the console. Elilo for x86_64
|
|
|
|
attempts to query EFI for GOP support and if it fails it defaults to
|
|
|
|
text mode which may or may not show you early console ouput depends on
|
|
|
|
your efi console settings and physical setup. Elilo has no way to know
|
|
|
|
if your console settings are messed up.
|
|
|
|
|
|
|
|
WORKING ELILO.CONF FOR EFI X86_64 EXAMPLE
|
|
|
|
Here is my elilo.conf from my UEFI2.0/x86_64 (with nvidia pcie add on
|
|
|
|
card, i.e. your vga= kernel param may be different) workstation which uses GOP.
|
|
|
|
Here is a partial kernel vga table I was able to find and add here.
|
|
|
|
Colours 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
|
|
|
|
-------+--------------------------------------------------------------
|
|
|
|
4 bits | ? ? 0x302 ? ? ? ?
|
|
|
|
8 bits | 0x300 0x301 0x303 0x305 0x161 0x307 0x31C
|
|
|
|
15 bits | ? 0x310 0x313 0x316 0x162 0x319 0x31D
|
|
|
|
16 bits | ? 0x311 0x314 0x317 0x163 0x31A 0x31E
|
|
|
|
decimal | d785 d788 d791
|
|
|
|
24 bits | ? 0x312 0x315 0x318 ? 0x31B 0x31F
|
|
|
|
|
|
|
|
Additionally from ...kernel-source/Documentation/Boot.txt...
|
|
|
|
vga=<mode>
|
|
|
|
<mode> here is either an integer (in C notation, either
|
|
|
|
decimal, octal, or hexadecimal) or one of the strings
|
|
|
|
"normal" (meaning 0xFFFF), "ext" (meaning 0xFFFE) or "ask"
|
|
|
|
(meaning 0xFFFD). This value should be entered into the
|
|
|
|
vid_mode field, as it is used by the kernel before the command
|
|
|
|
line is parsed.
|
|
|
|
|
|
|
|
example below shows me console output, what elilo is doing, and kernel boot.
|
|
|
|
vga=normal with efi console input output directed to graphics card should
|
|
|
|
work as well.
|
|
|
|
|
|
|
|
default=UBUNTU
|
|
|
|
chooser=simple
|
|
|
|
verbose=5
|
|
|
|
delay=30
|
|
|
|
append="root=/dev/sda3 vga=0x31e splash showopts"
|
|
|
|
|
|
|
|
image=/vmlinuz-2.6.32-27-generic
|
|
|
|
label="UBUNTU"
|
|
|
|
description="Ubuntu 2.6.32-27-generic kernel"
|
|
|
|
initrd=/initrd.img-2.6.32-27-generic
|
|
|
|
|
|
|
|
|