Open Firmware: Difference between revisions
No edit summary |
No edit summary |
||
Line 44: | Line 44: | ||
+create linuxbios-loaded | +create linuxbios-loaded | ||
\ Load and run in qemu | |||
-\ create qemu-loaded | |||
+create qemu-loaded | |||
== Building == | == Building == | ||
Software Requirements: | |||
qemu-0.9.0 + ROMSIZE-patch | |||
Open Firmware rev. >= 500 | |||
LinuxBIOS >= v2 | |||
=== Patch and build qemu === | |||
Get the patch from http://www.freimann.org/qemu_biossize.patch and apply it against qemu-0.9.0. | |||
tar xvfz qemu-0.9.0.tar.gz | |||
cd qemu-0.9.0 | |||
wget http://www.freimann.org/qemu_biossize.patch | |||
patch -p1 < qemu_biossize.patch | |||
Make sure that you have gcc-3.x installed, then | |||
./config && make && make install | |||
=== Build Open Firmware === | |||
Get Open Firmware from Subversion | |||
svn co svn://openbios.org/openfirmware | |||
Change to the build directory of the biosload build. | |||
cd cpu/x86/pc/biosload/ | |||
To change the config file of Open Firmware you can either use the above patch, or you can edit config.fth with your favorite editor (vi!!1!). Uncomment the lines | |||
create linuxbios-loaded | |||
create qemu-loaded | |||
Comment out the line with | |||
create syslinux-loaded | |||
Now change to the build directory and type "make" | |||
cd build | |||
make | |||
After make is finished there should be a file "ofwlb.elf" in the same directory. Copy this to your LinuxBIOSv[x] directory. | |||
=== Building LinuxBIOS === | |||
Follow the instructions in the LinuxBIOS documentation. Make sure that you use the ofwlb.elf file as your payload. | |||
It is also very imortant that the ROMSIZE for LinuxBIOS and qemu correspond with each other. | |||
=== Running it === | |||
qemu -L LinuxBIOSv3/build -hda path/to/disk.img -serial `tty` -nographic | |||
__NOEDITSECTION__ | __NOEDITSECTION__ |
Revision as of 19:55, 14 August 2007
Introduction
In 2006 the company of Open Firmware inventor Mitch Bradley, Firmworks, Inc, released their Open Firmware implementation under a BSD license. This code shares some code with SUN's OpenBOOT implementation. It supports the x86 architecture and runs, amongst others, as a LinuxBIOS payload. It is the firmware implementation on the OLPC.
Download
The code can be browsed online with the ViewVC facility.
The repository is available through Subversion:
You can check it out as follows:
$ svn co svn://openbios.org/openfirmware/
if you want a specific revision:
$ svn co svn://openbios.org/openfirmware -r 35
If your company installed a firewall that blocks the svn port (3690) you can also check out using the webdav frontend:
$ svn co https://www.openbios.org/openfirmware-svn/ openfirmware
LinuxBIOS
You should change openfirmware/cpu/x86/pc/biosload/config.fth:
Index: config.fth =================================================================== --- config.fth (revision 533) +++ config.fth (working copy) @@ -9,7 +9,7 @@ \ - Image Format - Example Media - previous stage bootloader \ - (Syslinux) COM32 format - USB Key w/ FAT FS - Syslinux -create syslinux-loaded +\ create syslinux-loaded \ - Linux kernel format - USB Key w/ FAT FS - LinuxBIOS w/ stripped Linux payload \ create bzimage-loaded @@ -19,7 +19,7 @@ \ create etherboot-variant \ Enable additional tweaks for Etherboot \ - ELF format (no pheader) - ROM - LinuxBIOS direct -\ create linuxbios-loaded +create linuxbios-loaded \ Load and run in qemu -\ create qemu-loaded +create qemu-loaded
Building
Software Requirements:
qemu-0.9.0 + ROMSIZE-patch Open Firmware rev. >= 500 LinuxBIOS >= v2
Patch and build qemu
Get the patch from http://www.freimann.org/qemu_biossize.patch and apply it against qemu-0.9.0.
tar xvfz qemu-0.9.0.tar.gz cd qemu-0.9.0 wget http://www.freimann.org/qemu_biossize.patch patch -p1 < qemu_biossize.patch
Make sure that you have gcc-3.x installed, then
./config && make && make install
Build Open Firmware
Get Open Firmware from Subversion
svn co svn://openbios.org/openfirmware
Change to the build directory of the biosload build.
cd cpu/x86/pc/biosload/
To change the config file of Open Firmware you can either use the above patch, or you can edit config.fth with your favorite editor (vi!!1!). Uncomment the lines
create linuxbios-loaded create qemu-loaded
Comment out the line with
create syslinux-loaded
Now change to the build directory and type "make"
cd build make
After make is finished there should be a file "ofwlb.elf" in the same directory. Copy this to your LinuxBIOSv[x] directory.
Building LinuxBIOS
Follow the instructions in the LinuxBIOS documentation. Make sure that you use the ofwlb.elf file as your payload. It is also very imortant that the ROMSIZE for LinuxBIOS and qemu correspond with each other.
Running it
qemu -L LinuxBIOSv3/build -hda path/to/disk.img -serial `tty` -nographic