release 3.10
https://sourceforge.net/projects/elilo/files/elilo/elilo-3.10/ (sans a few CVS directories)
This commit is contained in:
parent
34d8003a54
commit
4e87874a03
35 changed files with 412 additions and 235 deletions
165
release.notes
165
release.notes
|
@ -1,94 +1,93 @@
|
|||
3 . 1 0 R E L E A S E N O T E S
|
||||
===================================
|
||||
|
||||
SUBMIT BUG REPORTS HERE --> http://sourceforge.net/tracker/?group_id=91879&atid=598709
|
||||
BUILD NOTES
|
||||
====================
|
||||
You will need the following toolchain to build elilo-3.10 from source
|
||||
the elilo build environment is optimized for Debian and Debian based distros.
|
||||
1. gnu-efi3.0d or greater, elilo-3.10 binaries were built with gnu-efi3.0e-2
|
||||
shipping in Lenny
|
||||
2. gcc-4.1.1 or greater, elilo-3.10 binaries were built with:
|
||||
x86 -> 4.2.3-1ubuntu6
|
||||
x86_64 -> 4.2.3-1ubuntu6
|
||||
ia64 -> 4.3.2-1.1
|
||||
3. binutils-2.17.50.0.14 or greater, elilo-3.10 binaries were built with:
|
||||
x86 -> 2.18.1-cvs20080103-0ubuntu1
|
||||
x86_64 -> 2.18.1~cvs20080103-0ubuntu1
|
||||
ia64 -> 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.10.tar.gz from SourceForge.)
|
||||
3. cd ./elilo-3.10 and type make
|
||||
|
||||
IMPORTANT NOTE FOR BUILDS ON ALL ARCHS:
|
||||
-------------------------
|
||||
** If you use the upstream tarballs for the toolchain you will need to move
|
||||
some files around.
|
||||
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.
|
||||
|
||||
You will need the following toolchain to build elilo with the 3.7 source tarball
|
||||
(for all archs due to the new uefi call wrappers).
|
||||
|
||||
1. gnu-efi-3.0d or > .... http://sourceforge.net/project/showfiles.php?group_id=163609&package_id=185019&release_id=508306
|
||||
|
||||
2. gcc-4.1.1 or >
|
||||
3. binutils-2.17.50.0.14 or > with Intel64 EFI support
|
||||
|
||||
*BuildNote: efi libraries are installed to /usr/local/lib
|
||||
by the default gnu-efi source package. elilo expects them to
|
||||
be in standard linux system location /usr/lib. efi includes
|
||||
may be located in /usr/local/include/efi. elilo expects
|
||||
them to be in standard linux system location /usr/include/efi.
|
||||
likewise objcopy may be installed to /usr/local/bin by binutils,
|
||||
elilo source expects it to be in /usr/bin. On distributions
|
||||
using standard linux system conventions such
|
||||
as Debian and Ubuntu this is corrected in the binutils and gnu-efi packages.
|
||||
BINUTILS (provides the elf conversion utility to produce efi bins)
|
||||
--------
|
||||
likewise objcopy may be installed to /usr/local/bin by binutils,
|
||||
elilo source expects it to be in /usr/bin.
|
||||
|
||||
|
||||
Implementation:
|
||||
--------------
|
||||
Calls to EFI services in x86_64 require a wrapper to pass the arguments
|
||||
in the appropriate manner. This is implemented with efi wrapper.
|
||||
For IA32 and IA64, the wrapper is a macro that merely calls the
|
||||
EFI services directly. The elilo source has been modified to use the
|
||||
efi wrapper implemented in the gnu-efi-3.0d library.
|
||||
elilo for x86_64 and its dependent libraries are built and the final
|
||||
ELF image is converted into PE-COFF image using the objcopy supported
|
||||
by binutils-2.17.50.0.14 or above with Intel64 EFI support.
|
||||
ELILO ON EFI X86_64
|
||||
=====================
|
||||
HARD REQUIREMENTS
|
||||
Elilo/x86_64 requires 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 and physical setup. If efi default console ouput is set to
|
||||
serial and you dont have anything attached to the serial port then youre
|
||||
not going to see messages from elilo, duh.
|
||||
|
||||
On UEFI 2.0 firmware, only Graphics Output Protocol (GOP) is supported.
|
||||
The x86_64 elilo first queries video information from GOP failing which
|
||||
it queries for text mode support. The video information is passed to
|
||||
Linux kernel via boot parameter. The GOP support requires
|
||||
Linux kernel EFI framebuffer driver (kernel configuration option).
|
||||
WORKING ELILO.CONF FOR EFI X86_64 EXAMPLE
|
||||
Here is my elilo.conf from my UEFI2.0/x86_64 workstation which uses GOP.
|
||||
shows me console output, what elilo is doing, and kernel boot.
|
||||
|
||||
Booting on EFI/x86_64 platforms
|
||||
-----------------------------
|
||||
default=UBUNTU
|
||||
chooser=simple
|
||||
verbose=5
|
||||
delay=30
|
||||
append="root=/dev/sda3 vga=0x31e splash showopts"
|
||||
|
||||
To use elilo on x86_64, you can put it on a floppy and
|
||||
on a FAT32 partition (msdos partition). You can also
|
||||
netboot if your network adapter has support for UNDI/PXE.
|
||||
image=/vmlinuz-2.6.24-23-generic
|
||||
label="UBUNTU"
|
||||
description="Ubuntu 2.6.24-23-generic kernel"
|
||||
initrd=/initrd.img-2.6.24-23-generic
|
||||
|
||||
Elilo/x86_64 requires efi64 enabled linux kernel (> 2.6.21).
|
||||
You need to compile the kernel with CONFIG_EFI option.
|
||||
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 configured with EFI_FB option. This
|
||||
will enable early boot messages on the console. The elilo for x86_64
|
||||
attempts to query the firmware for GOP and if it fails it defaults to
|
||||
text mode.
|
||||
|
||||
The x86_64 implementation converts the EFI memory map into E820 map and
|
||||
passes it in the bootparameter supplied to the kernel. For details on
|
||||
bootparameter, see x86_64/sysdeps.h.
|
||||
CHANGES FROM 3.8 TO 3.10
|
||||
========================
|
||||
Patch contributions from David Lombard @ Intel and Stuart Hayes @ Dell
|
||||
thank you.
|
||||
|
||||
* added PTR_FMT 32bit & 64bit pointer translation for correct output
|
||||
* elilo hang bugfix x86_64 non-standard kernels with non-traditional start
|
||||
address elilo will pull the start address from the kernel elf header for 2.6
|
||||
or newer kernels, map memory and use that start address, else use standard
|
||||
1MB default start address. And handle case of overlapping kernels
|
||||
and initrds in memory.
|
||||
* ported kernel start adress and memory overlap handling to ia32
|
||||
* eliminated all possible compiler warnings except those actually
|
||||
caused by gnu-efi that cant be fixed here.
|
||||
* Debug output improvement, added pauses with visual feedback when
|
||||
user sets debug or verbose options.
|
||||
* bugfix added missing find_bits function definition back into ia32
|
||||
subtree
|
||||
* bugfix loader_probe now correctly errors out if no loaders
|
||||
registered.
|
||||
|
||||
CHANGES BETWEEN 3.6 & 3.8
|
||||
-------------------------
|
||||
- options parsing changed to append root= after append="-- options" to
|
||||
accomodate xen ia64 support. without this change the option is
|
||||
passed to the hypervisor instead of the kernel resulting in the
|
||||
standard kernel panic.
|
||||
INTEL PATCHES
|
||||
- E820 memory map is added to IA32 to make it possible for
|
||||
Linux kernel not to depend on EFI memory map on EFI 32.
|
||||
- The EFI framebuffer type ID is changed in Linux kernel to
|
||||
conform to Linux kernel framebuffer type ID grouping rules. So the
|
||||
EFI framebuffer type ID setting code in ELILO is changed accordingly.
|
||||
- The boot loader signature of IA32 and x86_64 is redefined to
|
||||
make it possible for Linux kernel to distinguish whether the
|
||||
underlying firmware is EFI 32 or EFI 64.
|
||||
- updates for EFI-2.0 boot support going into linux kernel 2.6.24-rc4
|
||||
- CL_MAGIC is not supported by 32-bit boot protocol. So, the kernel
|
||||
command line passing code is changed accordingly.
|
||||
- bugfix, on some machines efi memmap entries exceed the 128 maximum
|
||||
for e820 map entries, so consecutive memmap entries with the same
|
||||
type are merged to bring the count below 128.
|
||||
- bugfix, uninitialized e820 _nr_map in fill_e820map.
|
||||
- fixed compile warning for cmdline_addr assignment.
|
||||
ADDITIONAL CHANGES
|
||||
- version string updated to 3.8
|
||||
- fixed x86_64 hang created by initrd images larger than 7mb due
|
||||
to the code always using the same efi region which on some machines
|
||||
is only 7mb. code changed to properly have the efi allocator decide
|
||||
which regions to use based on the total pagecount required by the
|
||||
size of the initrd to be loaded.
|
||||
- bugfix, for ia32 and x86_64 code, e820_map[x-1] accesses memory
|
||||
out of bounds when x=0.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue