Recipe for getting/building/running Xen/ia64 with pv_ops¶
This recipe describes how to get xen-ia64 source and build it,and run domU with pv_ops.
Requirements¶
- python
- mercurialit (aka “hg”) is an open-source source codemanagement software. See the below.http://www.selenic.com/mercurial/wiki/
- git
- bridge-utils
Getting and Building Xen and Dom0¶
My environment is:
- Machine : Tiger4
- Domain0 OS : RHEL5
- DomainU OS : RHEL5
Download source:
# hg clone http://xenbits.xensource.com/ext/ia64/xen-unstable.hg# cd xen-unstable.hg# hg clone http://xenbits.xensource.com/ext/ia64/linux-2.6.18-xen.hg# make world
# make install-tools
copy kernels and xen:
# cp xen/xen.gz /boot/efi/efi/redhat/# cp build-linux-2.6.18-xen_ia64/vmlinux.gz \/boot/efi/efi/redhat/vmlinuz-2.6.18.8-xenmake initrd for Dom0/DomU:
# make -C linux-2.6.18-xen.hg ARCH=ia64 modules_install \ O=$(pwd)/build-linux-2.6.18-xen_ia64# mkinitrd -f /boot/efi/efi/redhat/initrd-2.6.18.8-xen.img \ 2.6.18.8-xen --builtin mptspi --builtin mptbase \ --builtin mptscsih --builtin uhci-hcd --builtin ohci-hcd \ --builtin ehci-hcd
Making a disk image for guest OS¶
make file:
# dd if=/dev/zero of=/root/rhel5.img bs=1M seek=4096 count=0# mke2fs -F -j /root/rhel5.img# mount -o loop /root/rhel5.img /mnt# cp -ax /{dev,var,etc,usr,bin,sbin,lib} /mnt# mkdir /mnt/{root,proc,sys,home,tmp}Note: You may miss some device files. If so, please create themwith mknod. Or you can use tar instead of cp.modify DomU’s fstab:
# vi /mnt/etc/fstab /dev/xvda1 / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0modify inittab
set runlevel to 3 to avoid X trying to start:
# vi /mnt/etc/inittab id:3:initdefault:Start a getty on the hvc0 console:
X0:2345:respawn:/sbin/mingetty hvc0tty1-6 mingetty can be commented out
add hvc0 into /etc/securetty:
# vi /mnt/etc/securetty (add hvc0)umount:
# umount /mnt
FYI, virt-manager can also make a disk image for guest OS.It’s GUI tools and easy to make it.
Boot Xen & Domain0¶
replace eliloelilo of RHEL5 can boot Xen and Dom0.If you use old elilo (e.g RHEL4), please download from the belowhttp://elilo.sourceforge.net/cgi-bin/blosxomand copy into /boot/efi/efi/redhat/:
# cp elilo-3.6-ia64.efi /boot/efi/efi/redhat/elilo.efimodify elilo.conf (like the below):
# vi /boot/efi/efi/redhat/elilo.confprompttimeout=20default=xenrelocatableimage=vmlinuz-2.6.18.8-xen label=xen vmm=xen.gz initrd=initrd-2.6.18.8-xen.img read-only append=" -- rhgb root=/dev/sda2"
The append options before “–” are for xen hypervisor,the options after “–” are for dom0.
FYI, your machine may need console options like“com1=19200,8n1 console=vga,com1”. For example,append=”com1=19200,8n1 console=vga,com1 – rhgb console=tty0 console=ttyS0 root=/dev/sda2”
Getting and Building domU with pv_ops¶
get pv_ops tree:
# git clone http://people.valinux.co.jp/~yamahata/xen-ia64/linux-2.6-xen-ia64.git/git branch (if necessary):
# cd linux-2.6-xen-ia64/# git checkout -b your_branch origin/xen-ia64-domu-minimal-2008may19
- Note:
The current branch is xen-ia64-domu-minimal-2008may19.But you would find the new branch. You can see with“git branch -r” to get the branch lists.
is also available.
The tree is based on
git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 test)
copy .config for pv_ops of domU:
# cp arch/ia64/configs/xen_domu_wip_defconfig .configmake kernel with pv_ops:
# make oldconfig# makeinstall the kernel and initrd:
# cp vmlinux.gz /boot/efi/efi/redhat/vmlinuz-2.6-pv_ops-xenU# make modules_install# mkinitrd -f /boot/efi/efi/redhat/initrd-2.6-pv_ops-xenU.img \ 2.6.26-rc3xen-ia64-08941-g1b12161 --builtin mptspi \ --builtin mptbase --builtin mptscsih --builtin uhci-hcd \ --builtin ohci-hcd --builtin ehci-hcd
Boot DomainU with pv_ops¶
make config of DomU:
# vi /etc/xen/rhel5 kernel = "/boot/efi/efi/redhat/vmlinuz-2.6-pv_ops-xenU" ramdisk = "/boot/efi/efi/redhat/initrd-2.6-pv_ops-xenU.img" vcpus = 1 memory = 512 name = "rhel5" disk = [ 'file:/root/rhel5.img,xvda1,w' ] root = "/dev/xvda1 ro" extra= "rhgb console=hvc0"After boot xen and dom0, start xend:
# /etc/init.d/xend start( In the debugging case,# XEND_DEBUG=1 xend trace_start )
start domU:
# xm create -c rhel5
Reference¶
- Wiki of Xen/IA64 upstream mergehttp://wiki.xensource.com/xenwiki/XenIA64/UpstreamMerge
Written by Akio Takebe <takebe_akio@jp.fujitsu.com> on 28 May 2008