path: root/hurd
diff options
authorThomas Schwinge <>2012-12-11 11:33:01 +0100
committerThomas Schwinge <>2012-12-11 11:38:29 +0100
commitfcf515ed4b02d02dd09b541bdbd9e3e6070afb29 (patch)
tree6bdb2967ed5324d87520c825170fe267e9d559ce /hurd
parenta61ab7b60a4f29bf7652aafea2319bdc11ab06d8 (diff)
parentdde7b419537ee119d82582887b8f026efe956b4d (diff)
Merge commit 'dde7b419537ee119d82582887b8f026efe956b4d'
Diffstat (limited to 'hurd')
3 files changed, 59 insertions, 72 deletions
diff --git a/hurd/running.mdwn b/hurd/running.mdwn
index a96a78c4..41855433 100644
--- a/hurd/running.mdwn
+++ b/hurd/running.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2011 Free Software Foundation,
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2012 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
@@ -17,6 +17,7 @@ There are several different ways to run a GNU/Hurd system:
* [[microkernel/mach/gnumach/ports/Xen]] - In Xen
* [[Live_CD]]
* [[QEMU]] - In QEMU
+* [[chroots|chroot]] need a couple of tricks to work properly.
* [[VirtualBox]] - In VirtualBox
* [[vmware]] (**non-free!**)
diff --git a/hurd/running/chroot.mdwn b/hurd/running/chroot.mdwn
new file mode 100644
index 00000000..29b00a8f
--- /dev/null
+++ b/hurd/running/chroot.mdwn
@@ -0,0 +1,54 @@
+[[!meta copyright="Copyright © 2012 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
+This documents the currently-needed tricks to successfully build a
+[[glibc/chroot]] in GNU/Hurd.
+# Preparation
+For proper translator startup, the chroot storage needs to be handled by a
+separate translator, for instance:
+ # dd [...] < /dev/zero > storage
+ # mke2fs storage
+ # settrans -c chroot /hurd/ext2fs $PWD/storage
+# Unpack
+Debootstrap should be able to build the content:
+ # debootstrap sid chroot
+# Tricks
+One current issue to know about chroots is that since passive translators (e.g.
+`/servers/socket/1`) are started by the root translator, which is not aware
+of the chrooting, these passive translators are started non-chrooted, leading to
+a few issues.
+[[!tag open_issue_hurd]]
+## Sockets
+Since the passive [[translator/pflocal]] translator will not be chrooted, local
+socket creation
+will actually happen in the root filesystem. To make things work correctly the
+programs inside the chroot need to be able to access them:
+ # settrans chroot/servers/socket/1 /hurd/firmlink /servers/socket/1
+ # settrans chroot/tmp /hurd/firmlink /tmp
+ # settrans -c chroot/var/lib/dbus /hurd/firmlink /var/lib/dbus
+## Network
+Unless using a separate IP for the chroot, it is preferrable to share the
+[[translator/pfinet]] translator:
+ # settrans chroot/servers/socket/2 /hurd/firmlink /servers/socket/2
+ # settrans chroot/servers/socket/26 /hurd/firmlink /servers/socket/26
diff --git a/hurd/running/debian/after_install.mdwn b/hurd/running/debian/after_install.mdwn
index 36c37281..72ea70a9 100644
--- a/hurd/running/debian/after_install.mdwn
+++ b/hurd/running/debian/after_install.mdwn
@@ -1,35 +1,7 @@
First steps after installation.
-So you have managed to get past the first `native-install` runs in single-user
-Time to get to work.
-### Get Networking Running
-Check if your NIC was detected by GNU Mach:
- # devprobe eth0
-`devprobe` (run as user *root*) will print `eth0` on successful detection. If
-it doesn't, your NIC was not detected correctly. You can then try to do the
-following (also as user *root*) for getting details:
- # cat /dev/klog > ~/klog
- [Wait a second, then press `Ctrl-C'.]
-Now examine the `~/klog` file.
-If the NIC was detected:
- # settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a -g -m
-Or read about how to configure [[DHCP]].
+See <> for configuration bits and
+tips and tricks.
# Setup GRUB
@@ -41,45 +13,5 @@ you. See [[GRUB]]'s page for this.
# Setup `apt-get`
-Sometimes getting `apt-get` to work is not straightforward. Good mirrors to
-put in `/etc/apt/sources.list` are:
- deb unstable main contrib
- deb-src unstable main contrib
- deb unreleased main
- deb-src unreleased main
-`apt-get` update a couple of times if some file fails to download.
-If when doing your first `apt-get`, `dpkg` complains of missing programs, get root in a login shell (`su -`).
Installing packages without having a network connection is described
-# [[translator/Random]]
-You often need `scp` and `ssh`. There is now a `random-egd` package available which uses
-a random translator by Ryan Hunter and the entropy gathering daemon as entropy source.
-See [[Translator/random]] for more information.
-# [[Console]]
-The latest Hurd package in Debian, plus the `native-install` script, creates
-all necessary device nodes and other magic. You just need to edit
-`/etc/default/hurd-console` to tune the parameters and tell it to start at
-You can also call the Hurd console manually with the proper arguments:
- console -d vga -d pc_kbd --repeat=kbd -d pc_mouse --repeat=mouse \
- -d generic_speaker -c /dev/vcs
-# [[Hurd/DebianXorg]]
-You first must have setup the virtual console. See above.
-# What about package XYZ?
-See if you can find a useful tip in [[package_troubleshooting]].