Commit 98c99d7c27973538081a809c114b8d5c6195ecfa

Authored by Isaku Yamahata
Committed by Tony Luck
1 parent ba9cc328bf

ia64/xen: a recipe for using xen/ia64 with pv_ops.

Recipe for using xen/ia64 with pv_ops domU.

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>

Showing 1 changed file with 183 additions and 0 deletions Side-by-side Diff

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