AVATT: Difference between revisions

From coreboot
Jump to navigation Jump to search
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