Virtualisation basically means Running multiple pretend-computers on one real computer
. Most people have heard of VMWare, a program which pretends to be a standard i386 or amd64 PC and lets you run GNU/Linux on Windows or vice-versa; there's also Parallels which is some Mac thing, and a host of other programs right down to QuickTransit which lets you run individual Solaris/SPARC apps on an amd64 system running Solaris or GNU/Linux. Virtualisation is big business, and modern Intel and AMD CPUs include hardware support to make your virtualisation go faster.
Over in the free software world, for a long time we've had User Mode Linux which lets you run a (modified) Linux kernel as a standard application on your GNU/Linux system. The big thing a few years ago however was Xen, one of the first high-performance free software virtualisation applications.
I've got a Xen setup on my desktop, which is still running the currently-stable version of Debian GNU/Linux. I use a virtual machine to connect to work, which keeps my work stuff and home stuff entirely separate. Given my plans to turn that desktop into a media player, I want to upgrade it to the soon-to-be-released (honest) Debian Lenny, which has more tightly integrated MythTV software.
Unfortunately, since the release of Etch, Xen has fallen out of favour in the Linux world; I understand that while other projects like OpenVZ and even VMWare were working on a consistent virtualisation interface in the kernel, which would improve interoperability between virtualisation technologies, Xen basically said Hang on, we invented this stuff in Linux, you lot should do it our way
. Linux evolved without Xen, and now cramming Xen support back into Linux is a bit of a bodge job. OpenSUSE did it first, and Debian has recently started including their patch.
I started off by installing linux-image-2.6.26-1-xen-amd64, which set up a bootable kernel entry which didn't actually boot, hence this bug. It eventually transpires, after lots of Googling and asking on IRC, that I was supposed to install xen-linux-system-2.6.26-1-xen-amd64 which sets up a working kernel entry (as well as leaving a broken one but that's a separate bug).
Unfortunately, the Xen kernel in Lenny breaks both the vesa and nv drivers for the X Window System, meaning that you can't have both Xen virtualisation and a GUI at the same time:
Fatal server error: xf86MapVidMem: Could not mmap framebuffer (0xd0000000,0x10000000) (Invalid argument)
It's been suggested that I can disable iommu to fix this, but I can't find out how to do that, and have read several things which suggest that it's impossible. Given how little success I've had in finding documentation about Xen in Lenny, which is a large part of the reason for me trying to file more bugs and write this blog post, I'm pretty much giving up hope of trying to get the technology I'm already familiar with to work. Next stop is going to be new kid on the block kvm.
Comments for this post were locked by the author