ia64/xen-unstable

view stubdom/README @ 18817:e3a0c3c9fd7b

x86, hpet: Fix initialisation of secondary timers.

Each channel may have different settings, and in the original
implementation, other Tn configuration will accidently overwrite T0
configuration.

Signed-off-by: Guanqun Lu <guanqun.lu@intel.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Nov 20 14:15:50 2008 +0000 (2008-11-20)
parents 78af732db9a7
children cc542ebe4853
line source
1 IOEMU stubdom
2 =============
4 This boosts HVM performance by putting ioemu in its own lightweight domain.
6 General Configuration
7 =====================
9 Due to a race between the creation of the IOEMU stubdomain itself and allocation
10 of video memory for the HVM domain, you need to avoid the need for ballooning,
11 by using the hypervisor dom0_mem= option for instance.
14 There is a sample configuration set in xmexample.hvm-stubdom and
15 xmexample.hvm-dm
17 In your HVM config "hvmconfig",
19 - use /usr/lib/xen/bin/stubdom-dm as dm script:
21 device_model = '/usr/lib/xen/bin/stubdom-dm'
23 - comment the disk statement:
25 #disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
27 - disable anything related to dom0, like pty serial assignments
30 Create /etc/xen/hvmconfig-dm (where "hvmconfig" is the name of your HVM
31 guest) with
33 kernel = "/usr/lib/xen/boot/ioemu-stubdom.gz"
34 vif = [ '', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
35 disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
37 where
38 - the first vif ('') is reserved for VNC (see below)
39 - 'ip=10.0.1.1,mac= etc...' is the same net configuration as in the hvmconfig
40 script,
41 - and disk = is the same block configuration as in the hvmconfig script.
43 Display Configuration
44 =====================
46 There are three posibilities
48 * Using SDL
50 - In hvmconfig, disable vnc and sdl:
52 vnc = 0
53 sdl = 0
55 - In hvmconfig-dm, set an sdl vfb:
57 vfb = [ 'type=sdl' ]
59 * Using a VNC server in the stub domain
61 - In hvmconfig, set vnclisten to "172.30.206.1" for instance. Do not use a
62 host name as Mini-OS does not have a name resolver. Do not use 127.0.0.1 since
63 then you will not be able to connect to it.
65 vnc = 1
66 vnclisten = "172.30.206.1"
68 - In hvmconfig-dm, fill the reserved vif with the same IP, for instance:
70 vif = [ 'ip=172.30.206.1', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
72 * Using a VNC server in dom0
74 - In hvmconfig, disable vnc and sdl:
76 vnc = 0
77 sdl = 0
79 - In hvmconfig-dm, set a vnc vfb:
81 vfb = [ 'type=vnc' ]
83 and any other parameter as wished.
85 To run
86 ======
88 mkdir -p /exports/usr/share/xen/qemu
89 ln -s /usr/share/xen/qemu/keymaps /exports/usr/share/xen/qemu
90 mkdir -p /exports/var/lib
91 ln -s /var/lib/xen /exports/var/lib
92 /usr/sbin/fs-backend &
94 xm create hvmconfig
98 PV-GRUB
99 =======
101 This replaces pygrub to boot domU images safely: it runs the regular grub
102 inside the created domain itself and uses regular domU facilities to read the
103 disk / fetch files from network etc. ; it eventually loads the PV kernel and
104 chain-boots it.
106 Configuration
107 =============
109 In your PV config,
111 - use /usr/lib/xen/boot/pv-grub.gz as kernel:
113 kernel = "/usr/lib/xen/boot/pv-grub.gz"
115 - set the path to menu.lst, as seen from the domU, in extra:
117 extra = "(hd0,0)/boot/grub/menu.lst"
119 you can also use a tftp path (dhcp will be automatically performed):
121 extra = "(nd)/somepath/menu.lst"
123 or you can set it in option 150 of your dhcp server and leave extra empty
125 Limitations
126 ===========
128 - You can not boot a 64bit kernel with a 32bit-compiled PV-GRUB and vice-versa.
129 To cross-compile a 32bit PV-GRUB,
131 export XEN_TARGET_ARCH=x86_32
133 - bootsplash is supported, but the ioemu backend does not yet support restart
134 for use by the booted kernel.
137 Your own stubdom
138 ================
140 By running
142 cd stubdom/
143 make c-stubdom
145 or
147 cd stubdom/
148 make caml-stubdom
150 you can compile examples of C or caml stub domain kernels. You can use these
151 and the relevant Makefile rules as basis to build your own stub domain kernel.
152 Available libraries are libc, libxc, libxs, zlib and libpci.