AVATT: Difference between revisions

From coreboot
Jump to navigation Jump to search
Line 36: Line 36:


=== TODO ===
=== 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.
* make the kvm userspace tool not to crash anymore. Possible solutions:
** fix the TLS issues from on our uClibc version
** migrate to another version of uClibc which hopefully has a fixed implementation of TLS. This would imply removing the long double math function calls from kvm or maybe even porting the uClibc-nptl branch to x86 if the linuxthreads branch proves to be too broken for us.
* user-friendly tool that can create and run virtual machines.
* user-friendly tool that can create and run virtual machines.
* automated startup of the virtual machines at boot.
* automated startup of the virtual machines at boot.

Revision as of 20:48, 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 2MB 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

  • make the kvm userspace tool not to crash anymore. Possible solutions:
    • fix the TLS issues from on our uClibc version
    • migrate to another version of uClibc which hopefully has a fixed implementation of TLS. This would imply removing the long double math function calls from kvm or maybe even porting the uClibc-nptl branch to x86 if the linuxthreads branch proves to be too broken for us.
  • 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

If you find anything incomplete or wrong about this page please don't hesitate to fix it. If you can't, please drop me an email at cristi.magherusan NO@SPAM net.utcluj.ro and I'll do it myself.

You can also find me on IRC most of the time. My nick is "alien".


Thanks for passing by,

Cristi