From daf515b3117746bc50e3d839496f57a302ef0a0d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 6 Nov 2008 12:49:14 +0100 Subject: Integrate howto/subhurd.html. --- hurd/subhurd.mdwn | 3 +-- hurd/subhurd/running_a_subhurd.mdwn | 42 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 hurd/subhurd/running_a_subhurd.mdwn (limited to 'hurd') diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index 8816e312..d2b80cf9 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -118,5 +118,4 @@ characteristic thread counts. Read about using a subhurd for [[debugging_purposes|debugging/subhurd]]. -Roland's [tutorial](http://www.gnu.org/software/hurd/howto/subhurd.html) on -setting up sub-hurds. +Roland's tutorial about [[running_a_subhurd]]. diff --git a/hurd/subhurd/running_a_subhurd.mdwn b/hurd/subhurd/running_a_subhurd.mdwn new file mode 100644 index 00000000..5d9693cd --- /dev/null +++ b/hurd/subhurd/running_a_subhurd.mdwn @@ -0,0 +1,42 @@ +[[meta copyright="Copyright © 1998, 1999, 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]]."]]"""]] + +[[meta title="Running a Subhurd"]] + +By Roland McGrath. + +The most useful thing you can do when trying to troubleshoot the boot +sequence of the Hurd is try to run your the system in a +sub-hurd, while watching it using ps and gdb from the working hurd. Since +the sub-hurd is never going to make it all the way up, you don't even +really need to make a separate filesystem for it; you can just boot the +sub-hurd read-only on your main root filesystem if you like. + +The way to boot the sub-hurd is with `boot`. I would suggest something +like this: + + boot -d -I -Tdevice /boot/servers.boot hd0s6 + +The -d says to pause before the start-up of each server and wait for you to +hit return, which gives you time to go attach gdb to the task before it +starts running. The -I says to leave the terminal signals normal, so +hitting C-z will suspend boot rather than sending a C-z to the virtual +console device of the sub-hurd. (Note that suspending boot does not +suspend the sub-hurd, just boot itself; boot acts as the server for device +access from the sub-hurd, so the sub-hurd's attempts to write to its +console or open devices block while boot is suspended.) + +When you do `ps -A` on the main hurd, the sub-hurd tasks will appear as +unknown processes. You can figure out which is which just by looking at +the order of unknown processes that appear with higher PIDs than the boot +process. They appear in the order you see in the "bootstrap: ..." +messages, i.e. the first unknown after boot will be ext2fs.static, the +second exec, then init, then proc. -- cgit v1.2.3