Blame view
Documentation/ia64/xen.rst
5.49 KB
db9a0975a docs: ia64: conve... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
******************************************************** 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 - mercurial it (aka "hg") is an open-source source code management 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 1. 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 2. # make world 3. # make install-tools 4. 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-xen 5. make 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 ================================ 1. 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 them with mknod. Or you can use tar instead of cp. 2. 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 0 3. modify 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 hvc0 tty1-6 mingetty can be commented out 4. add hvc0 into /etc/securetty:: # vi /mnt/etc/securetty (add hvc0) 5. 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 ================== 1. replace elilo elilo of RHEL5 can boot Xen and Dom0. If you use old elilo (e.g RHEL4), please download from the below http://elilo.sourceforge.net/cgi-bin/blosxom and copy into /boot/efi/efi/redhat/:: # cp elilo-3.6-ia64.efi /boot/efi/efi/redhat/elilo.efi 2. modify elilo.conf (like the below):: # vi /boot/efi/efi/redhat/elilo.conf prompt timeout=20 default=xen relocatable image=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 ===================================== 1. get pv_ops tree:: # git clone http://people.valinux.co.jp/~yamahata/xen-ia64/linux-2.6-xen-ia64.git/ 2. 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. http://people.valinux.co.jp/~yamahata/xen-ia64/for_eagl/linux-2.6-ia64-pv-ops.git/ is also available. The tree is based on git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 test) 3. copy .config for pv_ops of domU:: # cp arch/ia64/configs/xen_domu_wip_defconfig .config 4. make kernel with pv_ops:: # make oldconfig # make 5. install 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 ======================== 1. 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" 2. After boot xen and dom0, start xend:: # /etc/init.d/xend start ( In the debugging case, `# XEND_DEBUG=1 xend trace_start` ) 3. start domU:: # xm create -c rhel5 Reference ========= - Wiki of Xen/IA64 upstream merge http://wiki.xensource.com/xenwiki/XenIA64/UpstreamMerge Written by Akio Takebe <takebe_akio@jp.fujitsu.com> on 28 May 2008 |