Xen FAQ Linux Distributions
- 1 Linux Distributions
- 1.1 What Debian packages do I need for Xen?
- 1.2 Why does Fedora Core 3 stop working after printing the line "Freeing unused kernel memory: ..."?
- 1.3 Why can't I save VM instances or migrate with Fedora Core 3 or Debian Sarge? I get a connection refused error from twisted referring to port 111.
- 1.4 How do I fix the 4gb seg fixup messages in my syslog?
What Debian packages do I need for Xen?
To run Xen and a single OS from a binary release you need install no extra packages. To build Xen, XenLinux and documentation from source you will need: make, libncurses5-dev, libncurses5, gcc, libc6-dev, zlib1g-dev, python, python-dev, python-twisted, openssl, openssl-dev, bridge-utils, iproute, libcurl3, libcurl3-dev, bzip2, module-init-tools, latex, latex2html, transfig, and tgif.
Why does Fedora Core 3 stop working after printing the line "Freeing unused kernel memory: ..."?
FC3 uses the new udev system for managing device nodes in
/dev. To successfully boot, and to get any console output from
init, you either need to manually create some device nodes or you need to load and run a suitable initrd. The former solution requires you to mount the root filesystem and then:
# mknod /path/to/dev/null c 1 3 # mknod /path/to/dev/console c 5 1
If you instead wish to load an initrd file then you can use one provided in the
/boot directory of your FC3 filesystem, or you can use the slightly-modified one that we supply. To load and run your initrd file, or to modify it, see this and this above.
You may also want to disable X by editing
/etc/inittab if you do not use X, or if X is configured incorrectly and is causing your boot to fail. To do this, change "id:5:initdefault:" to "id:3:initdefault:".
Why can't I save VM instances or migrate with Fedora Core 3 or Debian Sarge? I get a connection refused error from twisted referring to port 111.
Fedora Core 3 and DebianSarge are missing
/usr/lib/libcurl.so.2 (they come with
libcurl.so.3.0.0 instead when updated to the latest RPMs as of 5/2/2005). This causes
/usr/sbin/xfrd to fail and it is required for save (and other) operations. A workaround tried on both FC3 and Sarge is to just set up a symlink for
libcurl.so.2 which points at
libcurl.so.3.0.0. With Debian, you can instead try installing the libcurl2 package from oldstable, though this workaround is untested and may cause you other problems.
The problem does not occur in xen-testing, which uses curl3.
How do I fix the 4gb seg fixup messages in my syslog?
These messages are from a glibc that was built with negative GS register offsets. Xen can run with negative GS register references, but it must "trap and emulate" this condition, which is relatively resource intensive, and quite slow.
If you don't have a patched glibc, see the no-tls-direct-seg-refs patch mentioned in XenSpecificGlibc.
Most newer distributions are shipped with a "-mno-tls-direct-seg-refs" compiled glibc, but it might not be enabled by default.
Some newer distributions like the RHEL5 Beta1/Beta2 require the ld.so.conf.d trick below to refer to the patched glibc.
Some slightly older distributions like Ubuntu Dapper can be fixed with a simple rebuild of glibc: (see UbuntuDapperHowTo).
echo 'hwcap 0 nosegneg' > /etc/ld.so.conf.d/libc6-xen.conf && ldconfig