[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Building from Source



Hello Nathan,

yesterday I managed to compile Xen 3.3 from the sources on Debian Etch.
I am not a XEN specialist myself but maybe my notes will help you since they 
say that Ubuntu is closely related to Debian.

Especialy note the hints about configuring the XEN kernel below.

cd /usr/src/xen-3.3.0
make linux-2.6-xen-config CONFIGMODE=menuconfig

That may let you configure the
VMXASSIST=n

Regards,

Franz

##########################

Howto build Xen 3.3 from the sources on Debian Etch
---------------------------------------------------

Base: Debian Etch 4.0R4a netinst for AMD64/Intel64

Hints on the WEB say that we need a newer mercurial (V 0.9.5 or newer).
Newer than the standard V0.9.1 that is provided via Debian Etch

Problem: from where do we get the newer mercurial?

mkdir -p /usr/src/XEN_3.3.0
cd /usr/src/XEN_3.3.0

wget 
http://packages.debian.org/etch-backports/all/mercurial-common/download/mercurial-common_1.0.1-5.1~bpo40+1_all.deb

wget \ 
http://www.backports.org/debian/pool/main/m/mercurial/mercurial_1.0.1-5.1~bpo40+1_amd64.deb

dpkg -i ./mercurial-common_1.0.1-5.1~bpo40+1_all.deb
dpkg -i ./mercurial_1.0.1-5.1~bpo40+1_amd64.deb

#####################
# Download other build tools:
# Attention: the apt-get will also deinstall packages
# Use aptitude instead to see the conflicts etc
# The problem is the 'hotplug'
# It conflicts with udev, kde and many others.
# The xen Readme states that we need hotplug OR udev
# --> we stay with udev and its dependent packages

# apt-get install iproute bridge-utils hotplug python libz-dev python-dev gawk 
pciutils-dev
# apt-get install graphviz texlive-latex-base texlive-latex-pdfetex transfig
# apt-get install build-essential libssl-dev gettext python-dev libncurses5-dev 
xorg-dev bcc

aptitude install iproute
aptitude install bridge-utils
# !!!! NO; do not install: aptitude install hotplug
aptitude install python
aptitude install libz-dev
aptitude install python-dev
aptitude install gawk
aptitude install pciutils-dev
aptitude install graphviz

# this install texlive and de-installs our normal tetex!

apt-get install tex-common texlive-base texlive-base-bin texlive-common \
        texlive-doc-base texlive-doc-de texlive-lang-german \
        texlive-latex-base texlive-pdfetex preview-latex-style \
        texlive-latex-extra texlive-pictures texlive-fonts-recommended
# aptitude install texlive-latex-pdfetex ???
apt-get install texlive-latex-recommended
aptitude install texinfo

aptitude install transfig
aptitude install build-essential
aptitude install libssl-dev
aptitude install gettext
aptitude install python-dev
aptitude install libncurses5-dev
aptitude install xorg-dev
aptitude install bcc

#####################
# Get the Xen sources
# We download a tar ball of Xen 3.3 and clone the kernel tree
#####################

mkdir -p /usr/src/XEN_3.3.0
cd /usr/src/XEN_3.3.0

# Get Xen 3.3.0 sources
# Goto
#       http://www.xen.org/download/index.html
# and download
#       http://bits.xensource.com/oss-xen/release/3.3.0/xen-3.3.0.tar.gz

wget http://bits.xensource.com/oss-xen/release/3.3.0/xen-3.3.0.tar.gz

# Get the xen kernel tree
## DEPRECATED: instead we clone ourselves (see below)
# wget 
http://bits.xensource.com/oss-xen/release/3.3.0/linux-2.6.18-xen-3.3.0.tar.gz

### cleanup
cd /usr/src
rm -rf xen-3.3.0
rm -rf linux-2.6.18-xen.hg

# unpack xen sources
cd /usr/src
tar xzf XEN_3.3.0/xen-3.3.0.tar.gz

# Get the xen kernel tree via cloneing

cd /usr/src
hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg

################################################
# Now, let's compile that Xen

cd /usr/src/xen-3.3.0

make KERNELS=linux-2.6-xen world

# Note: the option 'CONFIGMODE=menuconfig' is meant to be used with other 
targets (see below)
#       make linux-2.6-xen-config CONFIGMODE=menuconfig
#
# It works at least if we run 'make KERNELS=linux-2.6-xen world' once
# See the addon at the end down below.

# From the /usr/src/xen-3.3.0/README that contains all instruction for 
building/installing!
# In /usr/src/xen-3.3.0 use
#  make help
# to learn more about the targets.
#
# 5. To rebuild a kernel with a modified config:
#
#    # make linux-2.6-xen-config CONFIGMODE=menuconfig     (or xconfig)
#     # make linux-2.6-xen-build
#     # make linux-2.6-xen-install
#    Other systems may requires the use of 'mkinitramfs' to create the
#    ram disk.
#     # depmod 2.6.18-xen
#     # mkinitramfs -o initrd-2.6.18-xen.img 2.6.18-xen

# cleanup old xen-tools and kernels
make uninstall

make install

depmod 2.6.18.8-xen

# prepare the initrd config
## cp /etc/initramfs-tools/modules /etc/initramfs-tools/modules.orig
cat > /etc/initramfs-tools/modules <<HERE
#  for Xen
md_mod
raid1
sd_mod
HERE

mkinitramfs -k -o /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen

# edit the grub menu
susi:/boot/grub# tail menu.lst

### END DEBIAN AUTOMAGIC KERNELS LIST

title           Xen 3.3.0 / kernel 2.6.18.8-xen
root            (hd0,0)
kernel          /xen-3.3.0.gz console=vga
module          /vmlinuz-2.6.18.8-xen root=/dev/mapper/RootVG-root ro 
console=tty0
module          /initrd-2.6.18.8-xen.img
savedefault

OR as a refined test for HVM
# Note: Adding the pciback.hide to the kernel options did not work as pciback is
# only compiled as a module by default.
# If we compile it as non-module (see below for instructions) it works

# no pciback.hide
title           Xen 3.3.0 / kernel 2.6.18.8-xen no-backhide
root            (hd0,0)
kernel          /xen-3.3.0.gz console=vga noreboot max_loop=128 dom0_mem=1024M
module          /vmlinuz-2.6.18.8-xen root=/dev/mapper/RootVG-root ro 
console=tty0
module          /initrd-2.6.18.8-xen.img
savedefault

# with pciback.hide and iommu for VT-d
title           Xen 3.3.0 / kernel 2.6.18.8-xen backhide the ATI Radeon
root            (hd0,0)
#kernel          /xen-3.3.0.gz console=vga noreboot max_loop=128 dom0_mem=1024M 
iommu=1
kernel          /xen-3.3.0.gz console=vga noreboot max_loop=128 dom0_mem=1024M
module          /vmlinuz-2.6.18.8-xen root=/dev/mapper/RootVG-root ro 
console=tty0 pciback.hide=(01:00.
0)(01:00.1)
module          /initrd-2.6.18.8-xen.img
savedefault


### link xen rc script

update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20

############################################
# Reboot your box and boot the Xen kernel


##########
# Add on, from http://wiki.xensource.com/xenwiki/VTdHowTo
# Compile PCI backend hide fixed into the kernel

How to turn on VT-d in Xen
1 ) cd xen-unstable.hg
2 ) make install
3 ) make linux-2.6-xen-config CONFIGMODE=menuconfig
4 ) change XEN->"PCI-device backend driver" from "M" to "*".
5 ) make linux-2.6-xen-build
6 ) make linux-2.6-xen-install
7 ) depmod 2.6.18.8-xen
8 ) mkinitrd -v -f --with=ahci --with=aacraid --with=sd_mod --with=scsi_mod 
initrd-2.6.18-xen.img 2.6.1
8.8-xen
9 ) cp initrd-2.6.18-xen.img /boot
10) lspci - select the PCI BDF you want to assign to guest OS
11) "hide" pci device from dom0 as following sample grub entry:
title Xen-Fedora Core (2.6.18-xen)
        root (hd0,0)
        kernel /boot/xen.gz com1=115200,8n1 console=com1 iommu=1
        module /boot/vmlinuz-2.6.18.8-xen root=LABEL=/ ro xencons=ttyS 
console=tty0 console=ttyS0, pcib
ack.hide=(01:00.0)(03:00.0)
        module /boot/initrd-2.6.18-xen.img
12) reboot system
13) add "pci" line in /etc/xen/hvm.conf for to assigned devices
        pci = [ '01:00.0', '03:00.0' ]
15) start hvm guest and use "lspci" to see the passthru device and
    "ifconfig" to see if IP address has been assigned to NIC devices.

##
# Try that on our xen host

cd /usr/src/xen-3.3.0
make linux-2.6-xen-config CONFIGMODE=menuconfig
        change XEN->"PCI-device backend driver" from "M" to "*".
make linux-2.6-xen-build
make linux-2.6-xen-install
depmod 2.6.18.8-xen
mkinitramfs -k -o /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen

Boot .... and pciback.hide works as a kernel parameter



_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.