linux/Documentation/ia64/xen.txt
<<
>>
Prefs
   1       Recipe for getting/building/running Xen/ia64 with pv_ops
   2       --------------------------------------------------------
   3
   4This recipe describes how to get xen-ia64 source and build it,
   5and run domU with pv_ops.
   6
   7============
   8Requirements
   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=================================
  20Getting 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================================
  51Making 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
  86FYI, virt-manager can also make a disk image for guest OS.
  87It's GUI tools and easy to make it.
  88
  89==================
  90Boot 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
 114The append options before "--" are for xen hypervisor,
 115the options after "--" are for dom0.
 116
 117FYI, your machine may need console options like
 118"com1=19200,8n1 console=vga,com1". For example,
 119append="com1=19200,8n1 console=vga,com1 -- rhgb console=tty0 \
 120console=ttyS0 root=/dev/sda2"
 121
 122=====================================
 123Getting 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========================
 156Boot 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=========
 178Reference
 179=========
 180- Wiki of Xen/IA64 upstream merge
 181  http://wiki.xensource.com/xenwiki/XenIA64/UpstreamMerge
 182
 183Written by Akio Takebe <takebe_akio@jp.fujitsu.com> on 28 May 2008
 184
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.