Documentation / ia64 / xen.rst


Based on kernel version 5.9. Page generated on 2020-10-14 09:35 EST.

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