mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
To compile
==========
Just run make -j 4, that will download / patch / compile
Then make install to install the result.
Also, run make and make install in $XEN_ROOT/tools/fs-back
IOEMU stubdom
=============
This boosts HVM performance by putting ioemu in its own lightweight domain.
General Configuration
=====================
In your HVM config "hvmconfig",
- use /usr/lib/xen/bin/stubdom-dm as dm script:
device_model = '/usr/lib/xen/bin/stubdom-dm'
- comment the disk statement:
#disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
- disable anything related to dom0, like pty serial assignments
Create /etc/xen/stubdom-hvmconfig (where "hvmconfig" is the name of your HVM
guest) with
kernel = "/usr/lib/xen/boot/ioemu-stubdom.gz"
vif = [ '', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
where
- the first vif ('') is reserved for VNC (see below)
- 'ip=10.0.1.1,mac= etc...' is the same net configuration as in the hvmconfig
script,
- and disk = is the same block configuration as in the hvmconfig script.
Display Configuration
=====================
There are three posibilities
* Using SDL
- In hvmconfig, disable vnc and sdl:
vnc = 0
sdl = 0
- In stubdom-hvmconfig, set an sdl vfb:
vfb = [ 'type=sdl' ]
* Using a VNC server in the stub domain
- In hvmconfig, set vnclisten to "172.30.206.1" for instance. Do not use a
host name as Mini-OS does not have a name resolver. Do not use 127.0.0.1 since
then you will not be able to connect to it.
vnc = 1
vnclisten = "172.30.206.1"
- In stubdom-hvmconfig, fill the reserved vif with the same IP, for instance:
vif = [ 'ip=172.30.206.1', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
* Using a VNC server in dom0
- In hvmconfig, disable vnc and sdl:
vnc = 0
sdl = 0
- In stubdom-hvmconfig, set a vnc vfb:
vfb = [ 'type=vnc' ]
and any other parameter as wished.
To run
======
mkdir -p /exports/usr/share/qemu
ln -s /usr/share/qemu/keymaps /exports/usr/share/qemu
mkdir -p /exports/var/lib
ln -s /var/lib/xen /exports/var/lib
/usr/sbin/fs-backend &
xm create hvmconfig
PV-GRUB
=======
This replaces pygrub to boot domU images safely: it runs the regular grub
inside the created domain itself and uses regular domU facilities to read the
disk / fetch files from network etc. ; it eventually loads the PV kernel and
chain-boots it.
Configuration
=============
In your PV config,
- use /usr/lib/xen/boot/pv-grub.gz as kernel:
kernel = "/usr/lib/xen/boot/pv-grub.gz"
- set the path to menu.lst, as seen from the domU, in extra:
extra = "(hd0,0)/boot/grub/menu.lst"
you can also use a tftp path (dhcp will be automatically performed):
extra = "(nd)/somepath/menu.lst"
or you can set it in option 150 of your dhcp server and leave extra empty
Limitations
===========
- You can not boot a 64bit kernel with a 32bit-compiled PV-GRUB and vice-versa.
To cross-compile a 32bit PV-GRUB,
export XEN_TARGET_ARCH=x86_32
- bootsplash is supported, but the ioemu backend does not yet support restart
for use by the booted kernel.