view stubdom/README @ 17042:a905c582a406

Add stubdomain support. See stubdom/README for usage details.

arch_limits.h so as to permit getting them from there without
pulling all the internal Mini-OS defines.
- Setup a xen-elf cross-compilation environment in stubdom/cross-root
- Add a POSIX layer on top of Mini-OS by linking against the newlib C
library and lwIP, and implementing the Unixish part in mini-os/lib/sys.c
- Cross-compile zlib and libpci too.
- Add an xs.h-compatible layer on top of Mini-OS' xenbus.
- Cross-compile libxc with an additional xc_minios.c and a few things
- Cross-compile ioemu with an additional block-vbd, but without sound,
tpm and other details. A few hacks are needed:
- Align ide and scsi buffers at least on sector size to permit
direct transmission to the block backend. While we are at it, just
page-align it to possibly save a segment. Also, limit the scsi
buffer size because of limitations of the block paravirtualization
- Allocate big tables dynamically rather that letting them go to
bss: when Mini-OS gets installed in memory, bss is not lazily
allocated, and doing so during Mini-OS is unnecessarily trick while
we can simply use malloc.
- Had to change the Mini-OS compilation somehow, so as to export
Mini-OS compilation flags to the Makefiles of libxc and ioemu.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Feb 12 14:35:39 2008 +0000 (2008-02-12)
children 2a8eaba24bf0
line source
1 To compile
2 ==========
4 Just run make -j 4, that will download / patch / compile
5 Then make install to install the result.
7 Also, run make and make install in $XEN_ROOT/tools/fs-back
9 To run
10 ======
12 mkdir -p /exports/usr/share/qemu
13 ln -s /usr/share/qemu/keymaps /exports/usr/share/qemu
14 /usr/sbin/fs-backend &
17 In your HVM config "hvmconfig",
19 - use VNC, set vnclisten to "" for instance:
21 vnc=1
22 vnclisten=""
24 - use /usr/lib/xen/bin/stubdom-dm as dm script
26 device_model = '/usr/lib/xen/bin/stubdom-dm'
28 - comment the disk statement:
29 #disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
31 Create /etc/xen/stubdom-hvmconfig ("hvmconfig" must match your main config file)
32 with
34 kernel="/usr/lib/xen/boot/stubdom.gz"
35 vif=[ 'ip=', 'ip=,mac=aa:00:00:12:23:34']
36 disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
38 where
39 - is the IP for vnc,
40 - 'ip=,mac=' is the same net configuration as in the hvmconfig script,
41 - and disk = is the same block configuration as in the hvmconfig script.