AVATT

From coreboot
Jump to navigation Jump to search

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!

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
  • busybox 1.1.3 with a custom config - NEEDS UPDATE

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