FILO
The wiki is being retired!
Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!
FILO is a bootloader which loads boot images from a local filesystem, without help from legacy BIOS services.
Expected usage is to flash it into the BIOS ROM together with LinuxBIOS.
Download FILO
Download the latest version of FILO from Subversion with
$ svn co svn://openbios.org/filo/trunk/filo-0.5
You can also browse the source code online at http://openbios.org/viewvc/trunk/?root=FILO
Features
- Supported boot devices: IDE hard disk, CD-ROM, and system memory (ROM)
- Supported filesystems: ext2, fat, jfs, minix, reiserfs, xfs, and iso9660
- Supported image formats: ELF and [b]zImage (a.k.a. /vmlinuz)
- Supports boot disk image of El Torito bootable CD-ROM. "hdc1" means the boot disk image of the CD-ROM at hdc.
- Supports loading image from raw device with user-specified offset
- Console on VGA + keyboard, serial port, or both
- Line editing with ^H, ^W and ^U keys to type arbitrary filename to boot
- Full support for the ELF Boot Proposal (where is it btw, Eric)
- Auxiliary tool to compute checksum of ELF boot images
- Full 32-bit code, no BIOS calls
Requirements
Only i386 PC architecture is currently supported. Some efforts have been made to get FILO running on PPC. Contact the LinuxBIOS mailinglist for more information.
x86-64 (AMD 64) machines in 32-bit mode also work. (LinuxBIOS uses 32-bit mode and Linux kernel does the transition to 64-bit mode)
Recent version of GNU toolchain is required to build. We have tested with Debian/woody (gcc 2.95.4, binutils 2.12.90.0.1, make 3.79.1), Debian/sid (gcc 3.3.2, binutils 2.14.90.0.6, make 3.80) and different versions of SUSE Linux from 9.0 to 10.0.
Install
First invocation of make creates the default Config file.
$ make
Edit this file as you like. It's fairly straightforward (I hope).
$ vi Config
Then running make again will build filo.elf, the ELF boot image of FILO.
$ make
Use filo.elf as your payload of LinuxBIOS, or a boot image for Etherboot.
If you enable MULTIBOOT_IMAGE option in Config, you can also boot filo.elf from GNU GRUB or other Multiboot bootloader. This feature is intended for testing or development purpose.
Credits
This software was originally developed by SONE Takeshi <ts1@tsn.or.jp>