forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]> Signed-off-by: Isaku Yamahata <[email protected]> Cc: Randy Dunlap <[email protected]> Signed-off-by: Tony Luck <[email protected]>
- Loading branch information
Showing
1 changed file
with
183 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
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=$(/bin/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 <[email protected]> on 28 May 2008 |