elilo/release.notes

116 lines
4.9 KiB
Text
Raw Normal View History

3 . 1 4 R E L E A S E N O T E S
===================================
QUICK CHANGE SUMMARY
====================
* Fixes for newly emerging x86_64 UEFI-2 boxes where long standing old
assumptions are borked.
* Uptake of SUSE and community patches
- add sysfs support for efi vars (formerly /proc/efi/vars)
- fix strncpy overflow
- fix bzimage alloc
- cleanups
- support longer command line
- yet some more mac fixes
- align elilo with latest kernel boot protocol format.
- new memory management strategy for initrd and kernel image loading.
* add text-mode command line option, force text-mode (bypass graphics probes).
* replace error output on GOP handle failed, downgraded to normal
print status with more informative output.
* Fix ia32 build issue with new gcc due to stack protector enforcement.
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.
elilo-3.14 was built in the Debian Lenny (Ubuntu 10.04) build environment.
Toolchain versions for this release were:
x86x(32 &64)
* gnu-efi --> 3.0i-2ubuntu1
* gcc ------> 4.4.3-1ubuntu1
* binutils -> 2.20.1-3ubuntu7
ia64
* gnu-efi --> 3.0e-2
* gcc ------> 4.3.2-2
* binutils -> 2.18.1~cvs20080103-7
* if you use a debian based (lenny)build environment you will have no problems
and setting it up is simple. you will be able to build elilo in 3 steps:
1. apt-get install gnu-efi, gcc, binutils
2. apt-get source elilo (or download elilo-3.14.tar.gz from SourceForge.)
3. extract source tarball and cd ./elilo-3.14 and type $> make
** 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