Setup Xen 3.4.1-rc3 Dom0 with 2.6.30-rc(X)-tip pvops enabled kernel on top Ubuntu Intrepid Server (64 bit)

March 29, 2009

Recently Jeremy Fitzhardinge wrote to xen-devel mailing list:- The new branch structure is similar to the old one in overall layout. There are two “merged” branches:
* xen-tip/master – will try to keep as a known-working branch, with only tested changes
* xen-tip/next – current bleeding edge; should at least compile


To checkout master branch:-
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
# cd linux-2.6-xen
# git checkout origin/xen-tip/master -b xen-tip/master

To checkout the most recent branch:-
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
# cd linux-2.6-xen
# git checkout origin/xen-tip/next -b xen-tip/next


Posting bellow describes building Xen Unstable Dom0 with 2.6.30-rc6-tip pvops enabled kernel on top Ubuntu Intrepid Server (64-bit) with VNC [1] setup for remote access via Gnome Desktop to Dom0. Fedora 10,CentOS 5.2, Solaris Nevada (b106), opensolaris 2008.11 PV DomUs have been successfully tested to run VNC sessions initiated via gnome terminal running at remote Dom0 desktop. PV_OPS enabled kernel is based on checkout branch mentioned above.

View also: Setup Xen 3.4.1 Dom0 on top of Ubuntu 9.04 Server

Packages required by installation procedure : openssl-dev,x11(xorg-dev),gettext,python-devel,gitk,git-core,bcc,lbc-386-dev.

# cd /usr/src
# hg clone http://xenbits.xensource.com/xen-3.4-testing.hg
# cd xen-unstable.hg
# make xen
# make install-xen
# make tools
# make install-tools

Install packages

# apt-get install build-essential libncurses5-dev gawk mercurial

To setup Xen Dom0 support run :-
# make menuconfig







Make sure XEN_BLKDEV_FRONTEND=y



Otherwise, kernel build fails at least through my experience

Then :-

# make
# make modules_install install
# depmod 2.6.30-rc6-tip
# mkinitramfs -o /boot/initrd-2.6.30-rc6-tip.img 2.6.30-rc6-tip

Add to /etc/fstab :-

none /proc/xen xenfs defaults 0 0

Boot with grub entry :-

title Xen 3.4 / Ubuntu 8.10, kernel 2.6.30-rc6-tip
uuid 9efba9a5-9f2b-4bf6-b8b5-7d6d53eb02d9
kernel /boot/xen-3.5.gz
module /boot/vmlinuz-2.6.30-rc6-tip root=/dev/sdb14 ro console=tty0
module /boot/initrd-2.6.30-rc6-tip.img

All PV DomUs have been installed via schema based on two
pygrub profiles. Details may be viewed here: Xen 3.3.1rc1-pre port to CentOS 5.2 via http://bits.xensource.com mercurial repos and managing PV DomUs in graphical mode. Performance of 2.6.29-tip
pvops enabled kernel seems to be pretty good vs Xen 3.3.1
port to CentOS 5.2 running on the same Q9550,ASUS P5Q-E,8 GB RAM box (multibooting several Xen hosts for performance
comparision ).

F10 PV DomUs snapshots:-







CentOS 5.2 PV DomUs snapshots:-







Solaris Nevada (b106) PV DomUs snapshots:-





*******************************************
How to setup VNC at Xen Unstable Dom0
*******************************************
I presume that Ubuntu Desktop had been installed via tasksel utility at the very beginning. It is about 600 MB download automatically followed by package installation phase. Booting into Xen Unstable Dom0 with 2.6.29-tip pvops kernel will bring you into text mode environment, where following bellow actions should be undertaken.

# apt-get install vim vnc4server xinetd
# vi /etc/gdm/gdm.conf

Uncomment this line

RemoteGreeter=/usr/lib/gdm/gdmlogin

Enable xdmcp, look for [xdmcp] and change Enable to true.

[xdmcp]
Enable=true

***************
Restart gdm
***************

# /etc/init.d/gdm restart

Setup xinetd
*************************************
Create a new service file for xinetd
*************************************

# vi /etc/xinetd.d/Xvnc
service Xvnc
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1024×768 -depth 16 -cc 3 -once -SecurityTypes=none -extension XFIXES
port = 5901
}

*****************
Restart xinetd
*****************

# /etc/init.d/xinetd restart

Perform graphical login via “vncviewer IP-Intrepid-Server:5901″ from remote host and open terminal session to run gconf-editor . Goto gnome_settings_daemon->plugins and disable mouse and keyboard plugins and relogin again. That’s a known workaround for the issue with VNC on Ubuntu 8.04,8.10



********************
Update on 04/08/09
********************
I strongly believe that sooner or later pvops support in Dom0
will merge mainline Linux and it is supposed to happen due to in a foreseeable future KVM won’t demonstrate performance close to Xen Paravirtual Guests.

References
1.Attempt of VNC setup on Ubuntu Hardy PV DomU at Xen 3.3 CentOS 5.2 Dom0 (all 64-bit)


Pygrub & install OpenSolaris 2008.11 at Xen Unstable Dom0 with 2.6.29-rc7 pvops enabled kernel

March 20, 2009

The most recent changes to Xen Unstable now allow to load Solaris Nevada and opensolaris 2008.11 PV DomUs with ZFS image via pygrub. Actually, Xen Unstable Dom0 with Suse’s 2.6.27 xen-ified kernel or standard 2.6.18 kernel will behave the same way.Moreover, install xen-ified kernel seems to be a preferable option due to 2.6.29-rc7 is under heavy development in meantime. My choice of pvops kernel for Dom0 is targeting test purposes first of all. Build pvops kernel per [1] :-

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
# cd linux-2.6-xen
# git checkout origin/xen/dom0/hackery -b xen/dom0/hackery

To enable Xen support in Dom0 and tune kernel
for yourself:-

# make menuconfig

Now build:-

# make
# make modules_install install
# mkinitramfs -o /boot/initrd-2.6.29-rc8-tip.img 2.6.29-rc8-tip

Reboot with grub entry :-

title Xen 3.4 / Ubuntu 8.10, kernel 2.6.29-tip
uuid 9efba9a5-9f2b-4bf6-b8b5-7d6d53eb02d9
kernel /boot/xen-3.4.gz
module /boot/vmlinuz-2.6.29-rc8-tip root=/dev/sdb14 ro console=tty0
module /boot/initrd-2.6.29-rc8-tip.img

Installation profile :-

# losetup -f /etc/xen/isos/os0811.iso
# cd /etc/xen/vm
# cat os0811.py
name = 'OS0811'
memory = '1024'
disk = [ 'phy:/dev/loop0,6:cdrom,r','phy:/dev/sdb7,0,w' ]
vif = [ 'bridge=eth0' ]
bootloader = '/usr/bin/pygrub'
kernel = '/platform/i86xpv/kernel/amd64/unix'
ramdisk = '/boot/x86.microroot'
extra = '/platform/i86xpv/kernel/amd64/unix - nowin -B install_media=cdrom'


Run :-
# xm create -c os0811.py
and perform straightforward install



Runtime profile:-

# cat os0811.pyrun
name = 'OS0811'
memory = '1024'
bootloader = '/usr/bin/pygrub'
disk = ['phy:/dev/sdb7,0,w']
vif = [ 'bridge=eth0' ]


Load DomU:-
# xm create -c os0811.py



Bring up vncserver and connect to DomU:-





References
1.Xen paravirt_ops for x86 Linux


Follow

Get every new post delivered to your Inbox.