1******************************************************** 2Recipe for getting/building/running Xen/ia64 with pv_ops 3******************************************************** 4This recipe describes how to get xen-ia64 source and build it, 5and run domU with pv_ops. 6 7Requirements 8============ 9 10 - python 11 - mercurial 12 it (aka "hg") is an open-source source code 13 management software. See the below. 14 http://www.selenic.com/mercurial/wiki/ 15 - git 16 - bridge-utils 17 18Getting and Building Xen and Dom0 19================================= 20 21 My environment is: 22 23 - Machine : Tiger4 24 - Domain0 OS : RHEL5 25 - DomainU OS : RHEL5 26 27 1. Download source:: 28 29 # hg clone http://xenbits.xensource.com/ext/ia64/xen-unstable.hg 30 # cd xen-unstable.hg 31 # hg clone http://xenbits.xensource.com/ext/ia64/linux-2.6.18-xen.hg 32 33 2. # make world 34 35 3. # make install-tools 36 37 4. copy kernels and xen:: 38 39 # cp xen/xen.gz /boot/efi/efi/redhat/ 40 # cp build-linux-2.6.18-xen_ia64/vmlinux.gz \ 41 /boot/efi/efi/redhat/vmlinuz-2.6.18.8-xen 42 43 5. make initrd for Dom0/DomU:: 44 45 # make -C linux-2.6.18-xen.hg ARCH=ia64 modules_install \ 46 O=$(pwd)/build-linux-2.6.18-xen_ia64 47 # mkinitrd -f /boot/efi/efi/redhat/initrd-2.6.18.8-xen.img \ 48 2.6.18.8-xen --builtin mptspi --builtin mptbase \ 49 --builtin mptscsih --builtin uhci-hcd --builtin ohci-hcd \ 50 --builtin ehci-hcd 51 52Making a disk image for guest OS 53================================ 54 55 1. make file:: 56 57 # dd if=/dev/zero of=/root/rhel5.img bs=1M seek=4096 count=0 58 # mke2fs -F -j /root/rhel5.img 59 # mount -o loop /root/rhel5.img /mnt 60 # cp -ax /{dev,var,etc,usr,bin,sbin,lib} /mnt 61 # mkdir /mnt/{root,proc,sys,home,tmp} 62 63 Note: You may miss some device files. If so, please create them 64 with mknod. Or you can use tar instead of cp. 65 66 2. modify DomU's fstab:: 67 68 # vi /mnt/etc/fstab 69 /dev/xvda1 / ext3 defaults 1 1 70 none /dev/pts devpts gid=5,mode=620 0 0 71 none /dev/shm tmpfs defaults 0 0 72 none /proc proc defaults 0 0 73 none /sys sysfs defaults 0 0 74 75 3. modify inittab 76 77 set runlevel to 3 to avoid X trying to start:: 78 79 # vi /mnt/etc/inittab 80 id:3:initdefault: 81 82 Start a getty on the hvc0 console:: 83 84 X0:2345:respawn:/sbin/mingetty hvc0 85 86 tty1-6 mingetty can be commented out 87 88 4. add hvc0 into /etc/securetty:: 89 90 # vi /mnt/etc/securetty (add hvc0) 91 92 5. umount:: 93 94 # umount /mnt 95 96FYI, virt-manager can also make a disk image for guest OS. 97It's GUI tools and easy to make it. 98 99Boot Xen & Domain0 100================== 101 102 1. replace elilo 103 elilo of RHEL5 can boot Xen and Dom0. 104 If you use old elilo (e.g RHEL4), please download from the below 105 http://elilo.sourceforge.net/cgi-bin/blosxom 106 and copy into /boot/efi/efi/redhat/:: 107 108 # cp elilo-3.6-ia64.efi /boot/efi/efi/redhat/elilo.efi 109 110 2. modify elilo.conf (like the below):: 111 112 # vi /boot/efi/efi/redhat/elilo.conf 113 prompt 114 timeout=20 115 default=xen 116 relocatable 117 118 image=vmlinuz-2.6.18.8-xen 119 label=xen 120 vmm=xen.gz 121 initrd=initrd-2.6.18.8-xen.img 122 read-only 123 append=" -- rhgb root=/dev/sda2" 124 125The append options before "--" are for xen hypervisor, 126the options after "--" are for dom0. 127 128FYI, your machine may need console options like 129"com1=19200,8n1 console=vga,com1". For example, 130append="com1=19200,8n1 console=vga,com1 -- rhgb console=tty0 \ 131console=ttyS0 root=/dev/sda2" 132 133Getting and Building domU with pv_ops 134===================================== 135 136 1. get pv_ops tree:: 137 138 # git clone http://people.valinux.co.jp/~yamahata/xen-ia64/linux-2.6-xen-ia64.git/ 139 140 2. git branch (if necessary):: 141 142 # cd linux-2.6-xen-ia64/ 143 # git checkout -b your_branch origin/xen-ia64-domu-minimal-2008may19 144 145 Note: 146 The current branch is xen-ia64-domu-minimal-2008may19. 147 But you would find the new branch. You can see with 148 "git branch -r" to get the branch lists. 149 150 http://people.valinux.co.jp/~yamahata/xen-ia64/for_eagl/linux-2.6-ia64-pv-ops.git/ 151 152 is also available. 153 154 The tree is based on 155 156 git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 test) 157 158 3. copy .config for pv_ops of domU:: 159 160 # cp arch/ia64/configs/xen_domu_wip_defconfig .config 161 162 4. make kernel with pv_ops:: 163 164 # make oldconfig 165 # make 166 167 5. install the kernel and initrd:: 168 169 # cp vmlinux.gz /boot/efi/efi/redhat/vmlinuz-2.6-pv_ops-xenU 170 # make modules_install 171 # mkinitrd -f /boot/efi/efi/redhat/initrd-2.6-pv_ops-xenU.img \ 172 2.6.26-rc3xen-ia64-08941-g1b12161 --builtin mptspi \ 173 --builtin mptbase --builtin mptscsih --builtin uhci-hcd \ 174 --builtin ohci-hcd --builtin ehci-hcd 175 176Boot DomainU with pv_ops 177======================== 178 179 1. make config of DomU:: 180 181 # vi /etc/xen/rhel5 182 kernel = "/boot/efi/efi/redhat/vmlinuz-2.6-pv_ops-xenU" 183 ramdisk = "/boot/efi/efi/redhat/initrd-2.6-pv_ops-xenU.img" 184 vcpus = 1 185 memory = 512 186 name = "rhel5" 187 disk = [ 'file:/root/rhel5.img,xvda1,w' ] 188 root = "/dev/xvda1 ro" 189 extra= "rhgb console=hvc0" 190 191 2. After boot xen and dom0, start xend:: 192 193 # /etc/init.d/xend start 194 195 ( In the debugging case, `# XEND_DEBUG=1 xend trace_start` ) 196 197 3. start domU:: 198 199 # xm create -c rhel5 200 201Reference 202========= 203- Wiki of Xen/IA64 upstream merge 204 http://wiki.xensource.com/xenwiki/XenIA64/UpstreamMerge 205 206Written by Akio Takebe <takebe_akio@jp.fujitsu.com> on 28 May 2008 207