From 864e57d304e07edbf8818e214f7b0640be5d6fd1 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 10 Apr 2015 13:50:58 +0200 Subject: update xen information --- microkernel/mach/gnumach/ports/xen.mdwn | 83 ++++++++++++++++----------------- 1 file changed, 40 insertions(+), 43 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn index a8a1fcbf..f3c990c2 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. 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 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 -- cgit v1.2.3