AVATT: Difference between revisions
Line 22: | Line 22: | ||
Then you must follow the [[QEMU Build Tutorial]] to see how you can use [[QEMU]] to run the resulted BIOS image. | Then you must follow the [[QEMU Build Tutorial]] to see how you can use [[QEMU]] to run the resulted BIOS image. | ||
== What's inside the BIOS ROM image == | |||
* Linux kernel version 2.6.22.2 with tiny patches and a custom config | |||
* uClibc 0.9.28.3 with some patches applied (aio, fenv, long double math) and a custom config - only the .so files is included | |||
* zlib 1.2.3 - only the .so file included | |||
* ncurses 5.6 - the .so file and some other small necessary files are included | |||
* kvm-72 with some small patches - the extra BIOSes, the nbd tool and the docs are missing | |||
== Current status == | == Current status == | ||
Line 34: | Line 41: | ||
* integrate the virt-manager daemon inside the ROM image, if it and its dependencies fit the remaining free space. | * integrate the virt-manager daemon inside the ROM image, if it and its dependencies fit the remaining free space. | ||
* fix compilation on x86_64 boxes by compiling everything in 64bit mode. | * fix compilation on x86_64 boxes by compiling everything in 64bit mode. | ||
* keep the versions as up-to-date as possible but also compatible with each other | |||
== Contact == | == Contact == | ||
cristi.magherusan NO@SPAM net.utcluj.ro or alien on IRC | cristi.magherusan NO@SPAM net.utcluj.ro or alien on IRC |
Revision as of 19:24, 26 August 2008
This page is about the "All Virtual All The Time" GSoC 2008 project. This project aims to create a modified Linux-As-Bootloader coreboot payload that contains a Linux kernel modified to include KVM support, uClibc, a custom busybox image, and whatever is needed to get KVM-qemu up and running in the ROM image.
Needed tools
In order to build this, you need a modified version of buildrom, that can be cloned from my git repo like this:
git clone git://repo.or.cz/kvm-coreboot.git buildrom
In order for it to work, you need to have installed the prerequisites of buildrom.
You need a x86 version of Linux, since currently the build fails on x86-64.
How to build
Just type
make
If you wish to make some adjustments, you may do it by running one of these commands, at will:
make menuconfig (for buildrom) make kernel-config make uclibc-config make busybox-config
Then you must follow the QEMU Build Tutorial to see how you can use QEMU to run the resulted BIOS image.
What's inside the BIOS ROM image
- Linux kernel version 2.6.22.2 with tiny patches and a custom config
- uClibc 0.9.28.3 with some patches applied (aio, fenv, long double math) and a custom config - only the .so files is included
- zlib 1.2.3 - only the .so file included
- ncurses 5.6 - the .so file and some other small necessary files are included
- kvm-72 with some small patches - the extra BIOSes, the nbd tool and the docs are missing
Current status
- everything compiles fine on x86 but fails on x86-64. I have tested it on Ubuntu 8.04, Debian Lenny and Gentoo current, all on x86.
- kvm crashes due to Thread Local Store(TLS) issues in Clibc.
TODO
- fix the TLS issues or migrate to another version of uClibc which hopefully has a fixed implementation of TLS so that the kvm userspace tool doesn't crash anymore.
- user-friendly tool that can create and run virtual machines.
- automated startup of the virtual machines at boot.
- get the network to work.
- integrate the virt-manager daemon inside the ROM image, if it and its dependencies fit the remaining free space.
- fix compilation on x86_64 boxes by compiling everything in 64bit mode.
- keep the versions as up-to-date as possible but also compatible with each other
Contact
cristi.magherusan NO@SPAM net.utcluj.ro or alien on IRC