OpenBIOS: Difference between revisions
(Initial OpenBIOS build instructions.) |
(More detailed build instructions.) |
||
Line 2: | Line 2: | ||
== Building == | == Building == | ||
=== OpenBIOS === | |||
First you need to manually install [http://openbios.org/FCODE_suite fcode-utils]. Your distribution may provide a ready-made package for fcode-utils -- on Debian systems you can do '''apt-get install fcode-utils''' for instance. Then you can build OpenBIOS as follows: | |||
$ svn co svn://openbios.org/openbios/openbios-devel | $ svn co svn://openbios.org/openbios/openbios-devel | ||
Line 8: | Line 12: | ||
$ make | $ make | ||
The file '''obj-x86/openbios-builtin.elf''' is your final OpenBIOS payload to be used with coreboot. Alternatively, you can use '''obj-x86/openbios-plain.elf''', which does not contain a built-in dictionary and is thus a lot smaller. | The file '''obj-x86/openbios-builtin.elf''' is your final OpenBIOS payload to be used with coreboot. Alternatively, you can use '''obj-x86/openbios-plain.elf''', which does not contain a built-in dictionary and is thus a lot smaller (but not too useful). | ||
=== coreboot === | |||
Finally, you have to build coreboot (v3 in this example) with OpenBIOS as payload: | |||
$ cd .. | |||
$ svn co svn://coreboot.org/repository/coreboot-v3 | |||
$ cp openbios-devel/obj-x86/openbios-builtin.elf coreboot-v3/payload.elf | |||
$ cd coreboot-v3 | |||
$ make menuconfig | |||
Now enter the '''Payload''' menu and select '''Payload type''' and then '''An ELF executable payload file'''. Now exit the menu, save your settings, and build coreboot: | |||
$ make | |||
The file '''build/coreboot.rom''' (or '''build/bios.bin''') is your final coreboot v3 image, which also contains the payload. | |||
== Running OpenBIOS in QEMU == | |||
For running the coreboot+OpenBIOS image in QEMU, you need a patched version of '''vgabios-cirrus.bin''' in your '''build''' directory first: | |||
$ cd build | |||
$ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip | |||
$ unzip Vgabios-cirrus.zip | |||
$ cd .. | |||
You can now run it in QEMU: | |||
$ qemu -L build -hda /dev/zero -serial stdio | |||
== Ready-made QEMU image == | |||
Please follow [http://www.coreboot.org/QEMU#coreboot_v3_.2B_OpenBIOS these instructions] if you want to try out coreboot and OpenBIOS in [[QEMU]]. | |||
{{PD-self}} | {{PD-self}} |
Revision as of 13:45, 30 April 2008
OpenBIOS is an IEEE 1275-1994 compliant firmware which can also be used as a coreboot payload.
Building
OpenBIOS
First you need to manually install fcode-utils. Your distribution may provide a ready-made package for fcode-utils -- on Debian systems you can do apt-get install fcode-utils for instance. Then you can build OpenBIOS as follows:
$ svn co svn://openbios.org/openbios/openbios-devel $ cd openbios-devel $ config/scripts/switch-arch x86 $ make
The file obj-x86/openbios-builtin.elf is your final OpenBIOS payload to be used with coreboot. Alternatively, you can use obj-x86/openbios-plain.elf, which does not contain a built-in dictionary and is thus a lot smaller (but not too useful).
coreboot
Finally, you have to build coreboot (v3 in this example) with OpenBIOS as payload:
$ cd .. $ svn co svn://coreboot.org/repository/coreboot-v3 $ cp openbios-devel/obj-x86/openbios-builtin.elf coreboot-v3/payload.elf $ cd coreboot-v3 $ make menuconfig
Now enter the Payload menu and select Payload type and then An ELF executable payload file. Now exit the menu, save your settings, and build coreboot:
$ make
The file build/coreboot.rom (or build/bios.bin) is your final coreboot v3 image, which also contains the payload.
Running OpenBIOS in QEMU
For running the coreboot+OpenBIOS image in QEMU, you need a patched version of vgabios-cirrus.bin in your build directory first:
$ cd build $ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip $ unzip Vgabios-cirrus.zip $ cd ..
You can now run it in QEMU:
$ qemu -L build -hda /dev/zero -serial stdio
Ready-made QEMU image
Please follow these instructions if you want to try out coreboot and OpenBIOS in QEMU.
I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.
In case this is not legally possible: |