diff options
Diffstat (limited to 'microkernel/mach/gnumach/ports')
-rw-r--r-- | microkernel/mach/gnumach/ports/xen.mdwn | 78 | ||||
-rw-r--r-- | microkernel/mach/gnumach/ports/xen/internals.mdwn | 14 | ||||
-rw-r--r-- | microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn | 105 |
3 files changed, 197 insertions, 0 deletions
diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn new file mode 100644 index 00000000..c492d9a0 --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen.mdwn @@ -0,0 +1,78 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[toc ]] + +## Xen dom0, hypervisor + +/!\ Now that GNU Mach handles PAE you can use a PAE-enabled hypervisor. + +You can either get binaries at <http://youpibouh.thefreecat.org/hurd-xen/> or build them yourself. + +- Copy `gnumach-xen` and `hurd-modules` to your dom0 /boot. +- Copy `hurd` into `/etc/xen`, edit it for fixing access to your hurd / and swap + +## GNU/Hurd system + +/!\ You need an already installed GNU/Hurd system. + +If you have a free partition, you can fdisk to type 0x83, create a filesystem using: + + sudo mke2fs -b 4096 -I 128 -o hurd /dev/sda4 + +Replace /dev/sda4 with your partition. Install and use crosshurd to setup a GNU/Hurd system on this partition. + +## /etc/xen/hurd configuration + +Here is a sample /etc/xen/hurd configuration + + kernel = "/boot/gnumach-xen" + memory = 256 + disk = ['phy:sda4,hda,w'] + extra = "root=device:hd0" + vif = [ '' ] + ramdisk = "/boot/hurd-modules" + +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' ]`. + +## Running Hurd with Xen + +To run Hurd with Xen, use: + + xm create -c hurd + +and gnumach should get started. Proceed with native-install. + + export TERM=mach + ./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. + +## Building from sources + +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 + + ./configure --enable-platform=xen + make + +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-based one! + +--- + +[[Internals]]. + +[[GNU_Savannah_task 5468]], [[GNU_Savannah_task 6584]]. diff --git a/microkernel/mach/gnumach/ports/xen/internals.mdwn b/microkernel/mach/gnumach/ports/xen/internals.mdwn new file mode 100644 index 00000000..09e707ea --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen/internals.mdwn @@ -0,0 +1,14 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +The port does use Xen's para-virtualized interface for device (ide, network, +etc.) access. + +[[Virtualization]]. diff --git a/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn b/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn new file mode 100644 index 00000000..71a72bac --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn @@ -0,0 +1,105 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[toc ]] + +The Xen dom0 infrastructure provides for a bridged networking setup using shell +scripts to configure the bridging device properly and attach the domUs' virtual +interfaces to the bridge. However, we've [seen +problems](http://lists.gnu.org/archive/html/bug-hurd/2008-08/msg00023.html) +when using this approach, so to [solve these +issues](http://lists.gnu.org/archive/html/bug-hurd/2008-09/msg00071.html), +instead suggest the following configuration method (to achieve the same thing). + +This is for a Debian dom0. + +# */etc/network/interfaces* + +Comment out everything referencing your physical devices. Add this: + + auto br0 + iface br0 inet dhcp + bridge_ports regex (eth|vif).* noregex + +... or if you want to do the manual configuration dance: + + auto br0 + iface br0 inet static + bridge_ports regex (eth|vif).* noregex + address 192.168.10.60 + netmask 255.255.255.0 + [...] + +This needs a version of the `bridge-utils` package more recent than the current +Debian stable one ([[debbug 405215]]). (It's trivial to rebuild the `dpkg` of, +e.g., the Debian testing one on Debian stable.) + +# */etc/xen/xend-config.sxp* + +Make sure that only `(network-script network-dummy)` and `(vif-script +vif-bridge)` are activated and all other `(network-script network-WHATEVER)`, +respective `(vif-script vif-WHATEVER)` are commented out. + + +# Sample configuration files on Debian Lenny + +## /etc/xen/hurd on dom0 + + kernel = "/boot/gnumach-xen" + memory = 256 + disk = ['phy:sda5,hda,w'] + extra = "root=device:hd0" + vif = [ 'mac=00:16:3e:00:00:00, bridge=br0' ] + ramdisk = "/boot/hurd-modules" + +/dev/sda5 is an extended partition. br0 is bridge interface on dom0. + +## /etc/xen/xend-config.sxp on dom0 + + (network-script 'network-bridge netdev=br0') + (dom0-min-mem 196) + (dom0-cpus 0) + (vncpasswd '') + +## /etc/network/interfaces on dom0 + + auto br0 + iface br0 inet static + address 192.168.1.211 + network 192.168.1.0 + netmask 255.255.255.0 + broadcast 192.168.1.255 + gateway 192.168.1.1 + bridge_ports eth1 + +eth1 is the interface that is connected to the Internet on the LAN: + +## Doing settrans on domU + + settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.1.210 -g 192.168.1.1 -m 255.255.255.0 + +## /sbin/ifconfig on dom0 + + br0 Link encap:Ethernet HWaddr 00:19:d1:2e:06:33 + inet addr:192.168.1.211 Bcast:192.168.1.255 Mask:255.255.255.0 + inet6 addr: fe80::219:d1ff:fe2e:633/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:14187 errors:0 dropped:0 overruns:0 frame:0 + TX packets:9214 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:936563 (914.6 KiB) TX bytes:746184 (728.6 KiB) + + eth1 Link encap:Ethernet HWaddr 00:19:d1:2e:06:33 + inet6 addr: fe80::219:d1ff:fe2e:633/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:34339 errors:0 dropped:0 overruns:0 frame:0 + TX packets:18526 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:3019251 (2.8 MiB) TX bytes:1453672 (1.3 MiB) |