summaryrefslogtreecommitdiff
path: root/microkernel/mach/gnumach/ports/xen.mdwn
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-04-10 13:50:58 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-04-10 13:50:58 +0200
commit864e57d304e07edbf8818e214f7b0640be5d6fd1 (patch)
tree000c11786d13f7487c16b2dafa9073bcf2dc39f4 /microkernel/mach/gnumach/ports/xen.mdwn
parent8cb108d624091a8dac58452c054e3eea1769d748 (diff)
update xen information
Diffstat (limited to 'microkernel/mach/gnumach/ports/xen.mdwn')
-rw-r--r--microkernel/mach/gnumach/ports/xen.mdwn83
1 files changed, 40 insertions, 43 deletions
diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn
index a8a1fcb..f3c990c 100644
--- a/microkernel/mach/gnumach/ports/xen.mdwn
+++ b/microkernel/mach/gnumach/ports/xen.mdwn
@@ -34,23 +34,46 @@ Replace /dev/sda4 with your partition. Install and use crosshurd to setup a GNU/
# /etc/xen/hurd configuration
+There are two ways to boot a Hurd system: either directly boot gnumach, or boot it through PV-Grub. The former is a bit more complex.
+
+## Directly booting gnumach
+
Here is a sample /etc/xen/hurd configuration
kernel = "/boot/gnumach-xen-pae"
- memory = 256
+ memory = 512
disk = ['phy:sda4,hda,w']
extra = "root=device:hd0"
vif = [ '' ]
ramdisk = "/boot/hurd-modules"
-Do not give more than 580MB memory (due to bootstrap limitations, it's not easy
-to map more).
+`hurd-modules` from http://youpibouh.thefreecat.org/hurd-xen/ was built from a specific libc version,
+/!\ This means that when using this image, your GNU/Hurd system also needs to have the same version!
+
+It is preferrable to rebuild your own hurd-modules, using your own libc version, by using the
+http://youpibouh.thefreecat.org/hurd-xen/build_hurd-modules script.
Suggestions about [[networking_configuration]] are available.
If you need stable MAC addresses, use a syntax like `vif = [
'mac=00:16:3e:XX:XX:XX, bridge=br0' ]`.
+## Booting through pv-grub
+
+# `pv-grub`
+
+Starting from Xen 4.0, you can run the GNU Hurd using `pv-grub`.
+
+Download http://youpibouh.thefreecat.org/hurd-xen/pv-grub.gz into /boot, and use the following for instance:
+
+ kernel = "/boot/pv-grub.gz"
+ memory = 512
+ disk = ['phy:sda4,hda,w']
+ extra = "(hd0)/boot/grub/menu.lst"
+ vif = [ '' ]
+
+extra is now the path to the grub config file, which must contain the usual grub
+command to boot a hurd system.
# Running Hurd with Xen
@@ -66,36 +89,30 @@ and gnumach should get started. Proceed with native-install.
- If `xm` complains about networking (`vif could not be connected`), it's Xen scripts' fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs (note that you need the bridge-utils package for this). You can also just disable networking by commenting the vif line in the config.
- If `xm` complains `Error: (2, 'Invalid kernel', 'xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry\n')`, you most probably have a PAE-enabled hypervisor and a non-PAE gnumach. Either install and boot non-PAE hypervisor and kernel, or rebuilt gnumach in PAE mode.
+# Partitions
-# Building from sources
+You will need the following notation for the gnumach root= parameter:
-If you want to generate these images, first get the `gnumach-1-branch-Xen-branch` branch from gnumach CVS.
-Then look for "Ugly" in `kern/bootstrap.c`, how to generate `hurd-modules` is explained there, and you'll have to fix `EXT2FS_SIZE` and `LD_SO_SIZE` by hand.
-Then use
+root=part:2:device:hd0
- ./configure --enable-platform=xen
- make
+to access the second partition of hd0, for instance.
-The current `hurd-modules` was built from the debian packages `hurd 20070606-2` and `libc0.3 2.6.1-1`.
-/!\ This means that when using this image, your GNU/Hurd system also needs to be a glibc version 2.6 or later-based one!
+You will also need to use the parted storeio module for the /dev entries, for instance:
-# `pv-grub`
+settrans -fgap /dev/hd0s1 /hurd/storeio -T typed part:1:device:hd0
-From Xen 4.0 on you can run the GNU Hurd directly using `pv-grub`,
-without the need to [prepare a special bootstrap
-image](http://youpibouh.thefreecat.org/hurd-xen/build_hurd-modules) (like an
-initrd).
+# Miscellaneous
-Download http://youpibouh.thefreecat.org/hurd-xen/pv-grub.gz into /boot, and use the following for instance:
+[[Internals]].
- kernel = "/boot/pv-grub.gz"
- memory = 256
- disk = ['phy:sda4,hda,w']
- extra = "(hd0,1)/boot/grub/menu.lst"
- vif = [ '' ]
+[[!GNU_Savannah_task 5468]], [[!GNU_Savannah_task 6584]].
-extra is now the path to the grub config file.
+# Building from sources
+If you want to generate your own gnumach kernel, see [[microkernel/mach/gnumach/building]], and use
+
+ ./configure --enable-platform=xen
+ make
## IRC, freenode, #hurd, 2013-11-09
@@ -266,19 +283,6 @@ extra is now the path to the grub config file.
<youpi> we didn't have to care about that in grub1 indeed :)
-# Partitions
-
-You will need the following notation for the gnumach root= parameter:
-
-root=part:2:device:hd0
-
-to access the second partition of hd0, for instance.
-
-You will also need to use the parted storeio module for the /dev entries, for instance:
-
-settrans -fgap /dev/hd0s1 /hurd/storeio -T typed part:1:device:hd0
-
-
## IRC, freenode, #hurd, 2013-11-09
<phcoder> youpi: now I get "hd0: dom0's VBD 768
@@ -295,13 +299,6 @@ settrans -fgap /dev/hd0s1 /hurd/storeio -T typed part:1:device:hd0
[[hurd/libstore/part]].
-# Miscellaneous
-
-[[Internals]].
-
-[[!GNU_Savannah_task 5468]], [[!GNU_Savannah_task 6584]].
-
-
# Host-side Writeback Caching
Optimization possible as it is with