You are not logged in.

#1 2006-03-23 15:52:58

From: Stockholm/Sweden
Registered: 2006-01-11
Posts: 70

Arch with Xen-server patch

Okey, here's my problem:

I want to run Arch with the Xen patch, unfortunatly the latest version if it only supports kernel 2.6.13.x.

This means that I somehow need to get udev to work with this kernel setup, my problem right now is that downgradeing udev to a version that doesn't require 2.6.15 reaks havoc over my system since it seems the initscripts are not adjusted to handle this. I tried downgradeing udev resulting in a machine that went ballistic whenever I booted it.

Does anyone have a nice, simple and good solution on how to make Archlinux run with 2.6.13, the Xen patch and a udev version that's satisfactory by todays standards and requirements?

PS. I heard a rumor about a patch that gave the 2.6.13 kernel the uevent stuff needed for running newer versions of udev, is this just a rumor or is there acctually such a patch? (And ofcourse I've googled around quite abit before I asked here) DS.

Swedish Archlinux Mirror Administrator -


#2 2006-04-04 18:09:58

From: Munich, Germany
Registered: 2005-04-19
Posts: 85

Re: Arch with Xen-server patch

I might have an answer to your problem, but not exactly what you are expecting.
- I found on xen newsgroups that as soon as the kernel 2.6.16 is available they will update their binary packages, so you can wait for this one to happen.
- I modified xen-unstable package from AUR, so it compiles Xen kernel 2.6.15 in the process and one does not have to change almost anything (one has to rename /lib/tls to improve Xen performance).

If you have time give a try to the following package (maintainer is the name of the guy who put it in AUR - don't ask him for help please). As you can see I'm building full kernel with /usr/src/ stuff so one can compile modules for Xen. I have not tested it fully, I compiled it, booted and started creating virtual machine and then went snowboarding and came back last weekend. I give absolutely no warranty that it will work it did for me though:


# $Id$
# Maintainer: Charles Mauch <>
pkgdesc="Enterprise Open-Source Virtualization, unstable branch"
depends=( 'iproute' 'bridge-utils' 'zope' 'python' 'twisted-web' )
source=($pkgname-$pkgver-src.tgz xend xen_Makefile.patch vsyscall-note-xen.S.patch)

build() {
  cd $startdir/src/$pkgname-$pkgver
  # patch to build full xen kernel with all modules
  patch < ../xen_Makefile.patch
  # patch vsyscall-note-xen.S to get it working with ArchLinux
  patch -p0 < ../vsyscall-note-xen.S.patch
  make world
  cp -a $startdir/src/$pkgname-$pkgver/dist/install/* $startdir/pkg
  mv $startdir/pkg/etc/init.d $startdir/pkg/etc/rc.d
  mv $startdir/pkg/usr/lib/python $startdir/pkg/usr/lib/python2.4
  install -m0755 $startdir/src/xend $startdir/pkg/etc/rc.d/xend

  _kernver=`find . -name linux-2.6.*-xen | sed 's|./linux-||'` 
  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}
  # copy files necessary for later builds, like nvidia and vmware
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/Module.symvers $startdir/pkg/usr/src/linux-${_kernver}/
  cp -a $startdir/src/$pkgname-$pkgver/linux-${_kernver}/scripts/ $startdir/pkg/usr/src/linux-${_kernver}/
  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions
  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/kernel
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/arch/i386/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/arch/i386/Makefile.cpu $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/arch/i386/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/kernel/
  # add headers for lirc package
  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/drivers/media/video/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/
  # add dm headers
  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/drivers/md/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/md/
  # add inotify.h
  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/linux
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/include/linux/inotify.h $startdir/pkg/usr/src/linux-${_kernver}/include/linux/
  # copy in Kconfig files
  cd $startdir/src/$pkgname-$pkgver/linux-${_kernver}/
  for i in `find . -name "Kconfig*"`; do 
    mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
    cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/Makefile $startdir/pkg/usr/src/linux-${_kernver}/
  cp $startdir/src/$pkgname-$pkgver/linux-${_kernver}/.config $startdir/pkg/usr/src/linux-${_kernver}/
  cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-i386 asm
  chown -R root.root $startdir/pkg/usr/src/linux-${_kernver}

         '9c6b2a6dd88e4ca68689dd063ff51a72' '00dd41afa731a0f6a1bbc4cb90e75b02')

I created 2 patches to have usable package. The source code from the xen website builds linux-2.6-xen0 and linux-2.6-xenU which are development kernels - they have almost no modules except for the basic ones. One should build the kernel linux-2.6-xen that can work as xen0 or xenU and has all modules.
take a look here … 2.6-xen%29
under "Using the -xen kernel rather than -xen0/U"


--- Makefile    2006-03-03 05:58:36.000000000 +0100
+++    2006-03-09 09:17:01.000000000 +0100
@@ -2,7 +2,7 @@
 # Grand Unified Makefile for Xen.
-KERNELS ?= linux-2.6-xen0 linux-2.6-xenU
+KERNELS ?= linux-2.6-xen
 # You may use wildcards in the above e.g. KERNELS=*2.6*
 XKERNELS := $(foreach kernel, $(KERNELS), $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.$(kernel))) )

the second patch is to solve this problem: … 00023.html


--- linux-2.6-xen-sparse/arch/i386/kernel/vsyscall-note-xen.S    2006-03-09 06:15:52.000000000 +0100
+++ linux-2.6-xen-sparse/arch/i386/kernel/    2006-03-09 09:47:37.000000000 +0100
@@ -27,6 +27,6 @@
     .byte bit; .asciz name
-NOTE_KERNELCAP(1, "nosegneg")  /* Change 1 back to 0 when glibc is fixed! */
+#NOTE_KERNELCAP(1, "nosegneg")  /* Change 1 back to 0 when glibc is fixed! */

besides of that you need 2 more files: xend and xen.install form AUR … s=0&SeB=nd



Board footer

Powered by FluxBB