summaryrefslogtreecommitdiff
path: root/unsorted
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2007-09-04 21:23:29 +0200
committerThomas Schwinge <tschwinge@gnu.org>2007-09-04 21:23:29 +0200
commitd93deae15ee91a9b04989777fda563f2ccd5410f (patch)
tree9221a69f97cf10e42f96f21765ed7f32de424cfb /unsorted
parent4011bbadc0c3a646f241ec226611deee2e1a07dd (diff)
Shuffle another bunch of files, related to `Distrib/' and `GNU/'.
Diffstat (limited to 'unsorted')
-rw-r--r--unsorted/BochsEmulator.mdwn20
-rw-r--r--unsorted/BochsFAQ.mdwn85
-rw-r--r--unsorted/BuildingTheHurd.mdwn251
-rw-r--r--unsorted/GrubNotes.mdwn70
-rw-r--r--unsorted/HurdWnpp.mdwn19
-rw-r--r--unsorted/InstallNotes.mdwn296
-rw-r--r--unsorted/InstallTips.mdwn115
-rw-r--r--unsorted/PortingIssues.mdwn194
-rw-r--r--unsorted/QEMU.mdwn15
-rw-r--r--unsorted/SavannahProjects.mdwn13
-rw-r--r--unsorted/SystemAPILimits.mdwn30
-rw-r--r--unsorted/TestSuites.mdwn12
-rw-r--r--unsorted/VmWare.mdwn22
13 files changed, 1142 insertions, 0 deletions
diff --git a/unsorted/BochsEmulator.mdwn b/unsorted/BochsEmulator.mdwn
new file mode 100644
index 00000000..8c9f5cfe
--- /dev/null
+++ b/unsorted/BochsEmulator.mdwn
@@ -0,0 +1,20 @@
+# <a name="Bochs_IA_32_x86_64_Emulator"> Bochs IA-32/x86-64 Emulator </a>
+
+[Bochs](http://bochs.sf.net) is a very cool emulator, similar to Plex86 and the commercial product [[VmWare]] which virtualizes the PC hardware. However, Bochs does not virtualize, it _emulates_ the IA32 on the instruction level. It's currently the best alternative if you want to take the Hurd for a quick test drive without needing to repartition your hard drive or read complicated installation manuals.
+
+* [Debian package](http://packages.qa.debian.org/bochs)
+
+Note that Bochs is quite slow, so installing GNU inside its virtual machine will probably take you a lot of time. There are several pre-installed bochs images available.
+
+## <a name="Images"> Images </a>
+
+* The Bochs project hosts a [preinstalled GNU image](http://sourceforge.net/project/showfiles.php?group_id=12580). It has network, Xfree86 and the console server installed and configured (X has some problems though). If you want to try it out, please read the [[BochsFAQ]] for setting up a GNU guest first.
+* [Another 2GB image](http://www.gnuhurd.org/) distributed in rar format without apologies.
+* Bee has a [bochs version](http://bee.es.gnu.org/) of it's distribution
+
+## <a name="Articles"> Articles </a>
+
+* [Bruno Bonfils wrote an article.](http://www.asyd.net/docs/hurd/bochs-hurd.html)
+* [Julien PUYDT wrote another article on setting up Hurd in Bochs.](http://lists.debian.org/debian-hurd/2003/debian-hurd-200303/msg00065.html)
+ * [Lucas Nussbaum added some details.](http://lists.debian.org/debian-hurd/2004/debian-hurd-200401/msg00078.html)
+* [Marcus Brinkmann shares his experience in running GNU/Hurd on Bochs](http://lists.debian.org/debian-hurd/2004/debian-hurd-200402/msg00057.html). He [mentions qemu](http://lists.debian.org/debian-hurd/2004/debian-hurd-200402/msg00059.html) too, and [PUYDT Julien suggests using /dev/loop0.](http://lists.debian.org/debian-hurd/2004/debian-hurd-200402/msg00064.html)
diff --git a/unsorted/BochsFAQ.mdwn b/unsorted/BochsFAQ.mdwn
new file mode 100644
index 00000000..d446f695
--- /dev/null
+++ b/unsorted/BochsFAQ.mdwn
@@ -0,0 +1,85 @@
+# <a name="GNU_pre0_3_J2_for_Bochs_mini_FAQ"> </a> GNU pre0.3-J2 for Bochs mini-FAQ
+
+%TOC%
+
+----
+
+## <a name="What_do_you_mean_GNU_the_GNU_Hur"> </a> What do you mean "GNU", the GNU Hurd?
+
+Yes and no. See <http://www.gnu.org/software/hurd/faq.en.html#q1-2>
+
+## <a name="Where_are_"> Where are...? </a>
+
+Latest version of this FAQ: [[Distrib/BochsFAQ]]
+
+Latest GNU image for Bochs: [http://sourceforge.net/project/showfiles.php?group\_id=12580](http://sourceforge.net/project/showfiles.php?group_id=12580)
+
+## <a name="Disk_line_for_bochsrc_"> Disk line for .bochsrc? </a>
+
+for Bochs 2.0 or later:
+
+ ata0-master: type=disk, path="gnu.img", cylinders=1024, heads=16, spt=63
+
+for older versions:
+
+ diskc: file="gnu.img", cyl=1024, heads=16, spt=63
+
+## <a name="My_PATH_and_prompt_are_weird_and"> </a> My PATH and prompt are weird, and X clients fail
+
+The profile is not loaded properly, do it manually with `". /etc/profile"`
+
+## <a name="How_can_i_change_terminals_"> How can i change terminals? </a>
+
+The Mach default console lack have multi-terminal capability, and up 'til recently we recommended the "screen" program. However, the new console server is installed and configured with 6 terminals. You can launch it with the ncursesw driver:
+
+ console -d ncursesw /dev/vcs
+
+Switching is done via `C-w 1` (or 2, 3, ...). you can exit it with `C-w x`
+
+See the original posting to debian-hurd, <http://lists.debian.org/debian-hurd/2002/debian-hurd-200209/msg00054.html>, or [[Hurd/HurdConsole]] for more details.
+
+**_IMPORTANT:_** Note that X doesn't work well while running the console server.
+
+## <a name="Does_X_work_"> Does X work? </a>
+
+Somewhat:
+
+* DRI and speedo modules won't load so they're deactivated.
+* The VESA driver also failed so VGA is being used.
+* more than 8 bpp won't work.
+* for some weird reason the mouse server in `/dev/mouse` doesn't respond, so the mouse is inoperative.
+* GNU is still an unstable OS which makes X crash often on it.
+
+To reconfigure it, see Distrib.Xfree86, or:
+
+ dpkg-reconfigure xserver-xfree86
+
+then apply a patch to fix the mouse section:
+
+ patch /etc/X11/XF86config-4 /root/XF86Config-4.diff
+
+Installed clients are blackbox window manager and rxvt terminal emulator.
+
+## <a name="Is_network_configured_"> Is network configured? </a>
+
+Yes, to change parameters use:
+
+ settrans -apfg /servers/socket/2 /hurd/pfinet [options to pfinet]
+
+See `/hurd/pfinet --help` for details, or the [[Hurd/GetNetworkRunning]] topic.
+
+## <a name="How_do_i_mount_stuff_"> How do i mount stuff? </a>
+
+ settrans -afg <node> /hurd/<translator> <options to translator>
+
+Where `node` is your mount point and `translator` is the filesystem server. Add `-p` to settrans if you want it to stay over reboots (fstab-like)
+
+## <a name="Anything_neat_to_try_"> Anything neat to try? </a>
+
+Yes! instead of `"su"` use `"sush"`, a more flexible version that manages multiple UIDs.
+
+You can also play with userspace filesystems for NFS and FTP in `/hurd/{nfs,ftpfs}` that you can run as user, debug with GDB, etc.
+
+## <a name="More_questions_"> More questions? </a>
+
+Read the FAQ (<http://www.gnu.org/software/hurd/faq.en.html>) for a general overview on the GNU system.
diff --git a/unsorted/BuildingTheHurd.mdwn b/unsorted/BuildingTheHurd.mdwn
new file mode 100644
index 00000000..fb412eae
--- /dev/null
+++ b/unsorted/BuildingTheHurd.mdwn
@@ -0,0 +1,251 @@
+## <a name="Table_of_Contents"> Table of Contents </a>
+
+%TOC%
+
+Created from the original by [Jon Portnoy](http://cvs.gentoo.org/~avenj/), <http://cvs.gentoo.org/~avenj/doc/xcompile-en.html>
+
+## <a name="Introduction"> Introduction </a>
+
+For a Linux to Hurd cross-compiler you need these versions (I tried newer versions of gcc but they won't compile)
+
+* [binutils-2.13.90.0.16](http://ftp.gnu.org/gnu/binutils/)
+
+* egcs-core-1.2.2 &lt;- a very old version of gcc, but it is very stable, you will need it for compiling the gnumach headers and the mig kernel
+
+* [gcc-core-2.95.2](http://ftp.gnu.org/gnu/gcc/) &lt;- for compiling hurd
+
+* [glibc-2.2.5](http://ftp.gnu.org/gnu/glibc/)
+
+* [gnumach-1.3](http://ftp.gnu.org/gnu/gnumach/gnumach-1.3.tar.gz)
+
+* [mig-1.3](http://ftp.gnu.org/gnu/mig/mig-1.3.tar.gz)
+
+* [hurd](http://www.gnu.org/software/hurd/download.html)
+
+## <a name="Building"> Building </a>
+
+### <a name="The_directory_structure"> The directory structure </a>
+
+It is easier to compile the whole sources in an extra directory:
+
+* `build/binutils` &lt;- the unpacked binutils sources
+
+* `build/binutils.build`
+
+* `build/egcs` &lt;- the unpacked egcs sources
+
+* `build/egcs.build`
+
+* `build/gcc` &lt;- the unpacked gcc sources
+
+* `build/gcc.build`
+
+* `build/glibc` &lt;- the unpacked glibc sources
+
+* `build/glibc.build`
+
+* `build/gnumach` &lt;- the unpacked gnumach kernel sources
+
+* `build/gnumach.build`
+
+* `build/mig` &lt;- the unpacked mig kernel sources
+
+* `build/mig.build`
+
+* `build/hurd` &lt;- the unpacked hurd kernel sources
+
+* `build/hurd.build`
+
+### <a name="Exporting_the_CFLAGS_tt_and_PATH"> Exporting the `CFLAGS` and `PATH` </a>
+
+`/usr/local` is where the sources we compile will be installed. If you want to choose another directory you have to change the path to the bin directory and too you have to change the `--prefix` path to the directory you want.
+
+ $ export CFLAGS="-march=i686 -O2 -fomit-frame-pointer"
+ $ export PATH=/usr/local/bin:$PATH
+
+**_All commands that are prefixed by `#` must be run as root with `CFLAGS` and `PATH` exported._**
+
+### <a name="Cross_binutils"> Cross binutils </a>
+
+ $ cd binutils.build
+ $ ../binutils/configure --prefix=/usr/local --target=i686-pc-gnu
+ $ make
+ $ make check
+ # make install
+ $ cd ..
+
+### <a name="Cross_egcs"> Cross egcs </a>
+
+When the `/usr/local/bin` directory do not exist before you will now have to export the `PATH` again because after installing binutils you will have it.
+
+ $ cd egcs.build
+ $ ../egcs/configure --prefix=/usr/local --target=i686-pc-gnu \
+ --with-gnu-as --with-gnu-ld
+ $ make -k
+ # make -k install
+ $ ln -s /usr/local/i686-pc-gnu \
+ /usr/local/lib/gcc-lib/i686-pc-gnu/egcs-2.91.66/i686-pc-gnu
+ $ cd ..
+
+### <a name="GNUmach_Headers"> GNUmach Headers </a>
+
+ $ cd gnumach.build
+ $ ../gnumach/configure --build=i686-pc-linux-gnu --host=i686-pc-gnu
+ # make -k install-headers prefix=/usr/local/i686-pc-gnu
+ $ cd ..
+
+### <a name="Mig"> Mig </a>
+
+Mig is the Mach Interface Generator - needed by Mach and the Hurd to create C code from their IDL files. Mig is what helps us do RPC without ever knowing much about it.
+
+ $ cd mig.build
+ $ ../mig/configure --target=i686-pc-gnu --host=i686-pc-linux-gnu \
+ --prefix=/usr/local
+ $ make
+ # make install
+ $ cd ..
+
+### <a name="Gnumach_Headers_inclusive_Mig"> Gnumach Headers inclusive Mig </a>
+
+When you first compile the GNUmach headers Mig won't be mentioned (it wasn't installed actually) and this causes some errors when compiling the GNUmach headers but you need them to compile mig. (I don't know if you have to do this but i think it is the better way)
+
+ $ cd gnumach.build
+ $ rm -r * (deletes every file and directory in this directory)
+ $ ../gnumach/configure --build=i686-pc-linux-gnu --host=i686-pc-gnu
+ # make -k install-headers prefix=/usr/local/i686-pc-gnu
+ $ cd ..
+
+### <a name="Cross_GCC"> Cross GCC </a>
+
+For the coexistence of EGCS and GCC you have to move the `/usr/local/bin/i686-pc-gnu-gcc` to the `/usr/local/bin` directory in `i686-pc-gnu-egcs`. So you can choose wich compiler you want use: with the `CC` environment variable set to `i686-pc-gnu-egcs` you can use EGCS without this command you use GCC.
+
+ # mv /usr/local/bin/i686-pc-gnu-gcc \
+ /usr/local/bin/i686-pc-gnu-egcs
+
+ $ cd gcc.build
+ $ ../gcc/configure --prefix=/usr/local --target=i686-pc-gnu \
+ --with-gnu-as --with-gnu-ld
+ $ make -k compile the glibc-headers)
+ # make -k install
+ $ cd ..
+
+ # ln -s /usr/local/i686-pc-gnu/ \
+ /usr/local/lib/gcc-lib/i686-pc-gnu/2.95.2/i686-pc-gnu
+
+You need `make -k` because otherwise it will fail but with `-k` you will have everything you need.
+
+### <a name="Hurd_Headers"> Hurd Headers </a>
+
+ $ cd hurd.build
+ $ ../hurd/configure --build=i686-pc-linux-gnu -�host=i686-pc-gnu \
+ -�prefix=/usr/local/i686-pc-gnu --disable-profile
+ # make install-headers no_deps=t
+ $ cd ..
+
+### <a name="Cross_GLibC"> Cross GLibC </a>
+
+For having glibc compiled with the cross-gcc and not with your original gcc you have to export another `PATH`. The normal user who configures and compiles and also root has to export this `PATH`.
+
+ $ export PATH=/usr/local/bin:/usr/local/i686-pc-gnu/bin:$PATH
+ $ cd glibc.build
+ $ ../glibc/configure --without-cvs --enable-add-ons=crypt \
+ --disable-profile --build=i686-pc-linux-gnu \
+ --host=i686-pc-gnu --prefix=/usr/local/i686-pc-gnu
+
+AS ROOT WITH EXPORTED CFLAGS:
+
+ # export PATH=/usr/local/bin:/usr/local/i686-pc-gnu/bin:$PATH
+ # make -k install-headers install_root=/usr/local/i686-pc-gnu
+ # cp ../glibc/include/features.h \
+ /usr/local/i686-pc-gnu/include/features.h
+ # touch /usr/local/i686-pc-gnu/include/gnu/stubs.h
+ $ cd ..
+
+### <a name="Building_Cross_egcs"> Building Cross egcs </a>
+
+ # mv /usr/local/bin/i686-pc-gnu-gcc \
+ /usr/local/bin/i686-pc-gnu-foo (for protecting gcc)
+ # mv /usr/local/bin/i686-pc-gnu-egcs \
+ /usr/local/bin/i686-pc-gnu-gcc
+ $ cd egcs.build
+ $ make
+ # make install (as root, export CFLAGS and the NEW PATH)
+ $ cd ..
+ # mv /usr/local/bin/i686-pc-gnu-gcc \
+ /usr/local/bin/i686-pc-gnu-egcs
+ # mv /usr/local/bin/i686-pc-gnu-foo \
+ /usr/local/bin/i686-pc-gnu-gcc
+
+### <a name="Building_Cross_GCC"> Building Cross GCC </a>
+
+ $ cd gcc.build
+ $ make
+ # make install
+ $ cd ..
+
+Remember to export `CFLAGS` and the new `PATH`
+
+### <a name="Building_Cross_GLibC"> Building Cross GLibC </a>
+
+ $ cd glibc.build
+ $ make
+ # make install root_install=/usr/local/i686-pc-gnu
+
+Remember to export `CFLAGS` and the new `PATH`
+
+For solving a glibc bug you have to link the `/usr/local/i686-pc-gnu/include/libc.so.0.2` with the `/usr/local/i686-pc-gnu/lib/libc.so` ever when you (re)install glibc.
+
+ # ln -sf /usr/local/i686-pc-gnu/lib/libc.so.0.2 \
+ /usr/local/i686-pc-gnu/lib/libc.so
+
+### <a name="Install_the_GNUmach_kernel_somew"> Install the GNUmach kernel somewhere </a>
+
+ $ rm -r gnumach.build
+ $ mkdir gnumach.build
+ $ cd gnumach.build
+
+You will need more than the `-�target` and `-�host` variables to build the GNUmach kernel. You have to enable some kernel features with the `--enable` command to have your kernel working properly. To have a quick view of what you need you can view the `gnumach/i386/README-Drivers` (I do not know how old it is, so maybe there are more options available but i haven't searched for more).
+
+My configure command:
+
+ $ ../gnumach/configure --build=i686-pc-linux-gnu \
+ --host=i686-pc-gnu �-enable-lpr \
+ --enable-floppy --enable-ide \
+ --enable-aic7xxx �-enable-rtl8139
+ # ln -s /usr/local/i686-pc-gnu/include \
+ /where/you/want/to/install/the/kernel/include
+ # ln -s /usr/locali686-pc-gnu/lib \
+ /where/you/want/to/install/the/kernel/lib
+ $ make
+ # make install-kernel \
+ prefix=/where/you/want/to/install/the/kernel (as root ...)
+
+### <a name="Hurd_Servers"> Hurd Servers </a>
+
+ $ rm -r hurd.build
+ $ mkdir hurd.build
+ $ cd hurd.build
+ $ nano -w/vi (or what editor you ever use) ../hurd/Makeconf
+
+You have to comment out the `CFLAGS` in this file or delete the `-std=gnu99` and the `-O3`.
+
+ $ ../hurd/configure �build=i686-pc-linux-gnu \
+ --host=i686-pc-gnu \
+ -�prefix=/where/you/want/to/install/the/kernel \
+ --disable-profile
+ $ make -k
+ # make -k install prefix=/where/you/want/to/install/the/kernel
+
+You have to use `-k` because when you don't use it the compilation will brake with an error. I tried different installations of gcc and glibc and too i used different versions of hurd but i cannot solve this prob so maybe it is hurd related.
+
+So there is no warranty that the hurd kernel you compiled will work. I will try it and then update this guide.
+
+----
+
+## <a name="Document_History"> Document History </a>
+
+Created from the original, <http://cvs.gentoo.org/~avenj/doc/xcompile-en.html>, by [Jon Portnoy](http://cvs.gentoo.org/~avenj/)
+
+I would recommend not using EGCS, but instead using the GCC cross compiler. See [[Hurd/BuildingHurd]] and [[Mach/BuildingOskitMach]] for more information on building the GNU OS components. <br />-- [[Main/JoachimNilsson]] - 13 Apr 2003
+
+Text formatting. <br />-- [[Main/OgnyanKulev]] - 13 Apr 2003
diff --git a/unsorted/GrubNotes.mdwn b/unsorted/GrubNotes.mdwn
new file mode 100644
index 00000000..b0b1fdf5
--- /dev/null
+++ b/unsorted/GrubNotes.mdwn
@@ -0,0 +1,70 @@
+This section complements the [[InstallNotes]] with complete information regarding the GRUB boot loader. The syntax is different from Lilo's and so to scratch my own itch I'm creating this quick reference. The [Grub manual](http://www.gnu.org/software/grub/manual/grub.html) is another good reference.
+
+* update-grub is **Debian specific** and very nice. It will automatically create a /boot/grub/menu.lst file for the kernels in /boot/. It will also append a manually configured set for other partitions like the GNU/Hurd.
+* grub-floppy is a **Debian specific** boot floppy creation script.
+* mkbimage is a **Debian specific** boot disk image creation script.
+* <http://khazad.dyndns.org/packages/grub-disk/> contains a Debian packaged makefile for creating CD &amp; floppy images. Looks like it doesn't work properly. If you fix it, please send patches to the maintainer.
+* essential GRUB commands &amp; disk syntax
+ * root
+ * kernel
+ * module
+ * boot
+* sample file
+
+ title GNU/Linux
+ root (hd0,11)
+ kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro
+ initrd /boot/initrd.img-2.4.18
+ savedefault
+
+ title GNU
+ root (hd0,15)
+ kernel /boot/oskit-mach root=device:hd0s16 --
+ module /hurd/ext2fs.static \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} \
+ -T typed ${root} $(task-create) $(task-resume)
+ module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+ savedefault
+
+ title DOS
+ rootnoverify (hd0,0)
+ chainloader +1
+
+-- [[Main/GrantBow]] - 01 Oct 2002 <br /> -- [[Main/GrantBow]] - 22 Dec 2002
+
+Another example, just as good, but a lot easier to read. The backslash at the end of each line is to "escape" the enter-key. So make sure there are no spaces following the backslashes!
+
+ title GNU/Linux (Linux 2.4.18)
+ root (hd0,11)
+ kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro
+ initrd /boot/initrd.img-2.4.18
+ savedefault
+
+ title GNUmach 1.3
+ root (hd0,1)
+ kernel /boot/gnumach.gz root=device:hd0s2
+ module /hurd/ext2fs.static --readonly \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} \
+ -T typed ${root} $(task-create) $(task-resume)
+ module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+
+ title GNUmach 1.90 (CVS)
+ root (hd0,1)
+ kernel /boot/oskit-mach.gz root=device:hd0s2 --
+ module /hurd/ext2fs.static --readonly \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} \
+ -T typed ${root} $(task-create) $(task-resume)
+ module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+
+Note the differences between GNUmach and OSKit-Mach. The latter **needs** the two dashes after the root specification!
+
+-- [[Main/JoachimNilsson]] - 09 Nov 2002
diff --git a/unsorted/HurdWnpp.mdwn b/unsorted/HurdWnpp.mdwn
new file mode 100644
index 00000000..49e069de
--- /dev/null
+++ b/unsorted/HurdWnpp.mdwn
@@ -0,0 +1,19 @@
+While Debian Developers and users use the official [WNPP](http://www.debian.org/devel/wnpp/) (Work Needed and Prospective Packages) page, a system of special bugs in the [Debian Bug Tracking System](http://bugs.debian.org/), this page is intended to give another location (and method) for giving feedback and provide status for developers of the Hurd. Please simply add a package name, the person's name sho's porting it, possibly with URL or as a separate page if you have relevant notes on the package.
+
+This data is for porting purposes only. Any conflict between the Debian BTS data and the data here should be resolved in favor of the Debian BTS. It's hoped this page will allow people to keep notes on packages that need some care.
+
+Packages in need of porting help:
+
+* Ported packages up for adoption
+
+* Ported orphaned packages
+
+* Packages currently being ported
+
+* Rewritten/replaced packages
+ * fakeroot - [status](http://mail.gnu.org/pipermail/bug-hurd/2002-May/008322.html)
+
+* Requested packages
+ * [Entropy Gathering Daemon](http://bugs.debian.org/145498) - Mako Hill
+
+-- created 19 May 2002
diff --git a/unsorted/InstallNotes.mdwn b/unsorted/InstallNotes.mdwn
new file mode 100644
index 00000000..418caca1
--- /dev/null
+++ b/unsorted/InstallNotes.mdwn
@@ -0,0 +1,296 @@
+Items of interest during install not mentioned elsewhere include the following. Arranged in the same order as Neal Walfield's [install guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html) - (link is currently broken - see below for current instructions).
+
+**_Currently, [Debian's installation instructions](http://www.debian.org/ports/hurd/hurd-install) are the most up-to-date._**<br /> Note the mirrors mentioned on debian.org have no hurd iso's. The iso's can be found [Here](http://ftp.gnuab.org/pub/gnu.iso)
+
+## <a name="Table_of_Contents"> Table of Contents </a>
+
+%TOC%
+
+## <a name="1_Overview_Where_we_are_going"> 1. Overview - Where we are going </a>
+
+There are currently four methods to install GNU
+
+1. Tarball - The current documentation, for the tarball method, are [Debian's installation instructions](http://www.debian.org/ports/hurd/hurd-install), based on the original guide by Neal Walfield. The GNU official [installation page](http://www.gnu.org/software/hurd/install.html) is the canonical reference. See [[Distrib/TarballNotesHome]] for more info.
+2. [[Distrib/BochsEmulator]] is an x86 emulator similar to the propietary [[Distrib/VmWare]] (which is not supported). See the [[Distrib/BochsEmulator]] page for more info. The Bochs project hosts a preinstalled GNU image that is periodicaly updated. You can get the latest one [here](http://sourceforge.net/project/showfiles.php?group_id=12580).
+3. [CD-ROM iso images](http://www.debian.org/ports/hurd/hurd-cd) CD-ROM installs are becoming more and more popular. The CDs are based on the most current tarball at release time. See [[Distrib/CDNotesHome]] for more info.
+4. The [crosshurd](http://packages.debian.org/crosshurd/) Debian package, which can be used instead of a tarball to install the base system. This is the recommended way to proceed.
+
+* References to a `cross-install` script can nowadays be completely ignored by anyone not a maintainer. It is only used when creating a new tarball.
+
+## <a name="2_Real_Estate_or_Finding_A_Home"> 2. Real Estate or Finding A Home </a>
+
+For those who do not happen to have an available partition or an extra hard drive, this can be the longest step. In this case, we will need to repartition the hard drive. One solution is to use GNU's partition editor, Parted. It features not only basic partition editing, but also partition resizing and moving functions. It can be found at <http://www.gnu.org/software/parted>. The manual is quite complete and includes several tutorials. Also there's a frontend called [nparted](http://packages.debian.org/unstable/utils/nparted.html) to simplify usage.
+
+The Hurd can only support partition sizes of up to approximately one gigabyte; anything much larger than this will not work. This limitation is a design decision that was made several years ago in which the file system server maps the entire partition into virtual memory. As the amount of virtual memory available on an ia32 is only four gigabytes of which only two gigabytes are available to the application and, of that, a significant portion is reserved for the code, the stack and the heap, the final, maximum contiguous virtual memory area that is left is generally about one gigabyte. This limitation is scheduled to be remove. Several other items, however, currently have a slightly higher priority.
+
+Having said that, a single one gigabyte partition is more than enough for a working system. Many, however, prefer at least two partitions: one for a root partition and another for a home partition. This latter scheme is highly advised for developers interested in debugging Hurd servers.
+
+The Hurd supports several extensions to the ext2fs file system format. Foremost among these are passive translators and a fourth set of permission bits for unknown users. In order to take advantage of these features, however, the owner of the partition must be set to Hurd. `mke2fs`, unless specifically overridden on the command line, will set the owner to whatever system core it is running on. As the Hurd will diligently respect this setting, we must be careful to set this appropriately or the Hurd may fail in subtle ways. Be aware that even if a file system is owned by a particular system core, others may still use it; they just may not be able to use certain extensions.
+
+To create a file system, we use `mke2fs` and pass it `-o hurd` to designate the Hurd as the owner of the new file system. For instance:
+
+ mke2fs -o hurd /dev/DEVICE
+
+**_Note:_** You may wish to add a `-b 4096` option to `mke2fs` (the default is chosen depending on the size of the partition, and the support for block size 1024 is buggy). The command to check the block size is `tune2fs -l /dev/hda9` under GNU/Linux.
+
+## <a name="3_The_Boot_Loader_Getting_GRUB"> </a> 3. The Boot Loader - Getting GRUB
+
+GRUB is the bootloader of the GNU system, and it's currently the only one that supports the multiboot standard, necessary to boot the Hurd.
+
+A word about GRUB. Unlike traditional boot loaders on the x86, such as LILO, GRUB is very powerful. It has a command line interface, bootp, dummy terminal support and a plethora of other features. In addition, it can boot most any operating system. If you have ever booted an alpha or sparc, you will understand what GRUB can do. Therefore, do not be scared: GRUB is better. You will like it. You will not go back.
+
+To find GRUB, visit <ftp://alpha.gnu.org/gnu/grub>. Here, there is a source tarball and a floppy image. If you choose to download the tarball, it is a normal configure, make and make install. Included is a wonderfully complete manual on how GRUB works. Read it. If, on the other hand, you choose to download the floppy image, it is sufficient to dump it to a floppy disk to get a working GRUB:
+
+ dd if=grub-boot-VERSION.image of=/dev/fd0
+
+You can always install GRUB onto your hard drive at a later date.
+
+For instructions on using GRUB, see either the info documentation or the quick reference notes on this wiki:
+
+* [[Distrib/GrubNotes]] - quick reference
+
+## <a name="4_Cross_Install_Cross_Installing"> </a> 4. Cross Install - Cross Installing GNU
+
+The recommended way to cross install the Hurd is by using the [crosshurd](http://packages.debian.org/crosshurd) Debian package. Unfortunately, it's broken right now (2003-10-10), so you'll have to use the old tarball method.
+
+Download the base system `gnu.tar.gz` from <ftp://alpha.gnu.org/gnu/hurd/contrib/robertmh/> .
+
+The tarball is setup to extract everything into the current directory. After mounting the partition and changing to the mount point, we just need to extract the archive. In the following example, we assume that the root partition is mounted on `/gnu`.
+
+ cd /gnu
+ tar --same-owner -xvzpf ~/gnu.tar.gz
+
+**_NOTE:_** This should NOT be confused with the `cross-install` script method. It is only used by maintainers when creating a new tarball.
+
+## <a name="5_Booting_GNU"> </a> 5. Booting GNU
+
+Now things are setup to boot GNU for the first time. Verify that the GRUB boot disk is in the drive and reboot. If all goes well, a GRUB menu will be displayed. Hit c for the GRUB command line.
+
+First, the root file system needs to be set. GRUB uses a partition nomenclature that is a bit different from either GNU or GNU/Linux: both IDE and SCSI drives are named `(hdN)`. `N` is the drive number (zero based) as reported by the BIOS. That is, GRUB makes no distinction between IDE and SCSI disks. The partitions, like the disks, are also indexed numerically from zero: `(hdN,M)`. If this sounds bad, relax: GRUB is also helpful.
+
+To determine on which file system a particular file resides, one method is to use the find command. When issued this command, GRUB searches on each file system for the specified file and prints where is was found. Here we search for the kernel, `/boot/gnumach.gz`.
+
+ grub> find /boot/gnumach.gz
+ (hd0,0)
+
+As we can see, GRUB is indicating that `/boot/gnumach.gz` is on `(hd0,0)`. Thus, we set the root respectively:
+
+ grub> root (hd0,0)
+ Filesystem type is ext2fs, partition type 0x83
+
+Next, GNU Mach needs to be loaded. In addition to loading the binary, at least one option, the root partition, must be specified. This will be used by the Hurd itself. As such, it must be in terms that the Hurd can understand.
+
+GNU Mach labels disks starting at zero. IDE drives are prefixed with hd, while SCSI disks are prefixed with sd. Like GNU/Linux, drives are number by their position on the controller. For instance, the primary master is `hd0` and the secondary slave is `hd3`. Partitions use the BSD slice naming convention, and append `sM` to the drive name to indicate a given partition. Note that `M` is a one, not zero, based index. The slice number is simple to calculate: just increment what you used for GRUB by one.
+
+Since the Hurd has not yet been configured, it must be run in single user mode. Adding a `-s` to the kernel command line is all that is required.
+
+Thus, continuing with the above example and assuming that the first drive in the master on the secondary controller, we would have:
+
+ grub> kernel /boot/gnumach.gz root=device:hd2s1 -s
+ [Multiboot-elf, ...]
+
+NOTE: If after running this command you see GRUB Error 28, according to the [GRUB Troubleshooting](http://www.gnu.org/software/grub/manual/grub.html#Troubleshooting) documentation, you may need to tell grub that you have more memory by using the uppermem command. For example, if you have 256MB of RAM and running **displaymem** within GRUB shows that you have less memory than that, you can type **uppermem 262144** to tell GRUB about the additional memory.
+
+Next, the root file system server and the exec server must be loaded. This is done using GRUB's boot module capability. The parameters are the semantics by which the kernel passes some important values to the servers.
+
+ grub> module /hurd/ext2fs.static \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} -T typed ${root} \
+ $(task-create) $(task-resume)
+
+ [Multiboot-module 0x1c4000, 0x2cfe6a bytes]
+ grub> module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+ [Multiboot-module 0x494000, 0x27afe bytes]
+
+**_Important:_** each module string should be asingle separate line _or_ line wrapped with a backslash at the end of each line. Remember to make sure there are **_no trailing spaces!_** Adding this to GRUB's `menu.lst` file as soon as possible is advised.
+
+Finally, GNU can be booted:
+
+ grub> boot
+
+Sit back and watch the messages. This is actually more important than one might think as there is a bug in GNU Mach whereby hitting a key during the boot process causes the kernel to panic.
+
+If GNU fails to boot, it could be due to shared IRQs: GNU Mach does not play well with these. You can verify your situation by looking at, for instance, the `/proc/interrupts` file under GNU/Linux. Also, as GNU Mach does not support loadable kernel modules, many of the drivers are compiled into the default kernel. If you have old peripherals, this can be a significant problem: a device may respond badly to a probe intended for a different device. Building a new kernel with only the required devices drivers will usually solve this problem. GNU Mach is easily cross compiled. If you are running Debian, try the `gcc-i386-gnu` package.
+
+If this does not help, explore the resources listed at the end of this document. Finally, ask on the appropriate mailing list.
+
+There are some cavaets to the boot process:
+
+* **IMPORTANT!** Remember when first booting into your freshly un-tarred distribution, you must pass the `-s` option to `/boot/gnumach.gz`. Failure to do so means that you won't get single-user mode.
+* **IMPORTANT2!** Add the `--readonly` flag to the file system server in your GRUB `menu.lst` file. This is a work-around to get `fsck` working properly. Don't forget, everything must be on ONE line, or ended with a backslash!
+* **IMPORTANT3!** If you have created the filesystem with a later version of e2fsprogs than the one installed in the tarball, it **might** happen that fsck fails and you can't boot multiuser. The workaround is to copy `/bin/true` into `/sbin/e2fsck` and `/sbin/fsck.ext2`, then boot multiuser and install the latest e2fsprogs.
+
+ title GNU (kernel GNUmach 1.3)
+ root (hdX,Y)
+ kernel /boot/gnumach.gz root=device:hdXs(Y+1)
+ module /hurd/ext2fs.static --readonly \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} \
+ -T typed ${root} $(task-create) $(task-resume)
+ module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+
+Where `hdX,Y` is the appropriate hard disk and partition number, in GRUB format. `hdXs(Y+1)` is the GNUmach format - because Mach partitions start at 1, unlike GRUB partitions that start on 0 (zero).
+
+It is important that each module string is only a single separate line, or by escaping the EOL (end of line) with a back slash. Remember though to make sure there are **_no trailing spaces!_**
+
+**_GRUB floppy and iso images:_** These are available from <http://www.copyleft.co.nz/links.html>. These have been built with the correct strings and only the root and boot partitions names need to be editied.
+
+## <a name="6_Native_Install_Finishing_the_I"> 6. Native Install - Finishing the Installation </a>
+
+Once a prompt comes up, and any time that the the Hurd is in single user mode, it is necessary to set the terminal type:
+
+ export TERM=mach
+
+(Repeat this each time you boot in single user mode)
+
+Be warned that CONTROL-C and family will not work in single user mode.
+
+We can now run the native-install script. This will configure the packages and set up several important translators:
+
+ ./native-install
+
+Right before the script terminates, it will indicate that it needs to be run a second time. Follow its instructions and reboot using the reboot command. Again, go into single user mode.
+
+Now it is advisable to enable swap. The mach kernel dislikes running without swap and is unlikely to last through the installation, especially on systems with little physical RAM. Although you can enable swap later on after running `./native-install` for the second time, turning swap on early increases your probability of getting there.
+
+This will start the default pager, create a device corresponding to the swap partition, and turn swap on on that partition:
+
+ /hurd/mach-defpager
+ cd /dev
+ ./MAKEDEV hdXsY
+ swapon /dev/hdXsY
+ cd /
+
+**IMPORTANT!** When enabling swap please be very sure that the partition really is swap. If you point `swapon` to a data partition it will use that for swap, overwriting any data you may have there.
+
+Now run `./native-install` for the second time and go through a series of prompts.
+
+Next, edit `/etc/fstab` to add the home partition and swap space. By default, `nano` is the only editor installed by the the base distribution (not `ae` nor `vi`). It is very important that swap space be used: the Hurd will be an order of magnitude more stable. Note that the Hurd can transparently share a swap partition with Linux, the kernel, but will happily page to any device including a raw partition such as your home partition.
+
+Here is an example `/etc/fstab` file:
+
+ # <file system> <mount point> <type> <options> <dump> <pass>
+ /dev/hd2s1 / ext2 rw 0 1
+ /dev/hd2s2 /home ext2 rw 0 2
+ /dev/hd2s3 none swap sw 0 0
+
+Remember to create any devices using the `MAKEDEV` command.
+
+When you first boot, your `/home` directory will _not_ be auto-mounted. You must set a passive translator on that node to access that partition. The correct syntax for this is: <br />`settrans -p /home /hurd/ext2fs /dev/hd2s2`
+
+To mount an nfs partition, use the nfs translator. When run as non-root, the translator will connect, for obvious reasons, to the nfs server on a port above 1024. For this to succeed under GNU/Linux, the insecure option must be added to the export line. Here is an example `/etc/exports` file:
+
+ /home 192.168.1.2(rw,insecure)
+
+To mount this from a GNU box:
+
+ settrans -cgap /home /hurd/nfs 192.168.1.1:/home
+
+## <a name="7_Configuration_Making_the_Syste"> 7. Configuration - Making the System Usable </a>
+
+See [[DebianAfterInstall]] for complete, up to date instructions.
+
+* After you install, you'll want to do several _important_ things:
+ * Run `passwd` to give the root user a password. By default, root does not have one.
+ * Run `adduser` to give yourself a user account. _Do not_ use root indiscriminately.
+ * Run `MAKEDEV` to create devices in `/dev` for your hard disk and other required devices.
+ * Since the Hurd does not use `ld.so.conf`, you will want to specify where the X Window System keeps its libraries. Do this by adding the following line to your `/etc/profile`: <br />`export LD_LIBRARY_PATH='/lib:/usr/X11R6/lib'`
+ * run `/etc/cron.daily/find` to allow `locate` to function.
+
+* [[GetNetworkRunning]]
+ * Hopefully Mach will recognize your hardware. If it doesn't you have to recompile in most cases.
+ * copy over your `/etc/resolv.conf` from GNU/Linux to allow your DNS to resolve correctly.
+
+* Prepare system for new packages.
+ * See [[DebianAfterInstall]] for up to date instruction on how to setup apt-get mirrors.
+ * There are some extremely useful cross-platform 'apt' tricks that can be used to get packages when using Debian GNU/Linux (possibly others) for installation on GNU. This is especially useful if your GNUMach doesn't recognize your network card. The steps are covered in the file `/usr/share/doc/apt-doc/offline` which has been used by several Hurd developers successfully.
+ * create an `/etc/apt/apt.conf.offline` like [[AptConfOffline]].
+ * consider setting up a few [[CrossPlatformAliases]] for use under Debian GNU/Linux while the Debian GNU/Hurd partitions are mounted.
+ * select the `apt` method from within dselect.
+
+* [[Xfree86]]
+
+* New packages - Hopefully you are able to get your network working but since the default GNUMach is only configured for a few ethernet cards you may need to recompile your GNUMach to get it working with your network hardward.
+ * Install these extremely useful packages
+ * `dialog` -- Debconf uses this for interactivity. You should install this first to allow you to configure other packages as they are installed.
+ * It's a very good idea to bring your packages up to date by running: `apt-get update && apt-get dist-upgrade`
+ * Some recommended packages
+ * `screen` -- A terminal multiplexer was important because the Hurd didn't have virtual consoles. Now you can have the [[Hurd/HurdConsole]], but screen is still handy.
+ * `anacron` -- good to run cron jobs for a machine that is not on all the time.
+ * `emacs21` -- a powerful editor.
+ * `cvs` -- Concurrent Version System, you'll probably need this soon.
+ * `bzip2, zip, unzip` -- compression tools.
+ * `build-essential` -- preparing to build software.
+ * `gnu-standards` -- GNU coding and package standards.
+
+* Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because libc6 is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev`. If you find a package that is uninstallable due to a `libc6[-dev]` dependency, please send a bug report with a patch that fixes it. It is important that you don't hack your package system to workaround such problems, because that way you won't be able to spot them when they arrive. See the [[Distrib/PortingIssues]] for details about the problem and [[Distrib/BtsFiling]] for details on sending bug reports.
+* Edit your `/etc/inetd.conf` and comment out all the services you don't need. Services that probably don't need to be running are `ftp`, `telnet`, `shell`, `login`, and `exec`.
+* There appears to be a bug in `libnss-db` that causes networking to fail. To work around this edit `/etc/nsswitch.conf` and remove the `db` entries. (See <http://www.geocrawler.com/archives/3/333/2001/1/50/4907699/> )
+
+* You may want to check the [[PackageTroubleshooting]] page if you are having trouble installing and making work some Debian packages.
+
+## <a name="8_Final_Words_The_FAQ"> </a> 8. Final Words - The FAQ
+
+* [[FrequentlyAskedQuestions]] - More than frequently asked questions
+
+* [Hurd FAQ](http://web.walfield.org/papers/hurd-faq/)
+
+* [[KnownHurdLimits]] - Limitations of the GNU operating system
+
+## <a name="9_Works_Cited_Referenced_Materia"> 9. Works Cited - Referenced Materials </a>
+
+On Sept 20, 2002 [[Main/DeepakGoel]] (a self-proclaimed newbie) posted a link to his personal [step-by-step installation](http://24.197.159.102/~deego/pub/hurd/install-guide/install.txt). The parent directory has additional material.
+
+Tarball Notes: [[Distrib/TarballNotes20020816]] [[Distrib/TarballNotes20020523]]
+
+CD-ROM Notes: [[Distrib/CDNotesJ2]]
+
+Others who wish to post summaries of their installation experiences are encouraged to do so. The installer methods, package dependencies and file locations frequently do change without warning.
+
+----
+
+## <a name="Licensing"> Licensing </a>
+
+ This work is based on the hard work by [countless Hurd users](http://web.walfield.org/papers/hurd-installation-guide/THANKS), documented and maintained by Neal H. Walfield. See the original for both reference and its licensing at <http://web.walfield.org/papers/hurd-installation-guide/>
+
+The license for Neals work is under the [GNU GPL](http://web.walfield.org/papers/hurd-installation-guide/COPYING). However, in the Hurd Wiki license all content under the GNU FDL. (Unless the topic is mostly code or otherwise stated in the text.)
+
+There are currently issues to be resolved around this matter, as far as I understand at least. Until an agreement can be reached this text, and the unclear status of this topic, will remain. The suggestion is to do something like this:
+
+<dl>
+ <dt>[[InstallGuide]]</dt>
+ <dd> Neals Install Guide in its original form </dd>
+ <dt>[[InstallNotes]]</dt>
+ <dd> Or [[InstallGuideErrata]] with all user input and additions </dd>
+</dl>
+
+There are several obvious issues with this as I can see
+
+1. The [[InstallGuide]] must be kept editable by a select few people to avoid the current situation from repeating itself.
+2. This loops back and kicks us in the butt because then we get:
+ 1. Synchronization problems with the original work
+ 2. Bottle necks: The people with edit access are too busy to synchronize with Neals guide
+ 3. Diverging guides
+3. Annoyed users, we break the tradition of freely editable wiki content and we also have two guides saying different things.
+
+-- [[Main/JoachimNilsson]] - 29 Dec 2002
+
+## <a name="Blame_annotations"> Blame annotations </a>
+
+ -- [[Main/SimonLaw]] - 29 May 2002 <br /> -- [[Main/GrantBow]] - 13 Oct 2002 <br /> -- [[Main/JoachimNilsson]] - 14 Nov 2002 <br /> -- [[Main/RobertMillan]] - 21 Nov 2002 <br />
+
+First effort at straightening out the formatting mess ... added references to Neals' original, which this topic has become heavily based on.
+
+-- [[Main/JoachimNilsson]] - 19 Dec 2002 <br />
+
+Updated to the latest short-comings in the Hurd.
+
+-- [[Main/OgnyanKulev]] - 11 Oct 2003
+
+-- [[Main/TWikiGuest]] - 07 Dec 2003 (<r2q2@rocketmailNOSPAM.com>)
+
+Updated iso information
diff --git a/unsorted/InstallTips.mdwn b/unsorted/InstallTips.mdwn
new file mode 100644
index 00000000..a735fbf7
--- /dev/null
+++ b/unsorted/InstallTips.mdwn
@@ -0,0 +1,115 @@
+Before reading these instructions, be sure you are familiar with the [[InstallNotes]].
+
+## <a name="Table_of_Contents"> Table of Contents </a>
+
+%TOC%
+
+## <a name="1_Setting_up_the_filesystems"> 1. Setting up the filesystems </a>
+
+You will need to boot a linux capable of internet access and creating/mounting ext2 partitions. I recommend [tomsrtbt](http://www.toms.net/rb/) linux which fits nicely onto a floppy and although a bit old will work well.
+
+Once in linux, you will need to create the partitions with fdisk. If you need to reboot, you will be notified. Make sure your partitions are not more than 2gig, or not even close. I learned this the hard way. This is for version 9-17-2004, newer versions should not have this problem.
+
+Assuming your root partition is on the first partition of the primary master run:
+
+ mke2fs -o hurd /dev/hda1
+
+If you do not have enough memory to do this, you will need to create a swap partition using mkswap and enable it with swapon before running mke2fs.
+
+## <a name="2_Getting_online"> 2. Getting online </a>
+
+Now you will need to get online to download the needed base system. To do this check to see if you are already online.
+
+If not, check the network by issuing ifconfig. If you have a device but it is not listed correctly, refer to the documentation on ifconfig to set it correctly. Even if you have dhcp you can usually issue a static ip that is in the correct range. An example may read:
+
+ ifconfig eth0 up 192.168.1.9 netmask 255.255.255.0
+
+Now setup the default gateway replace with your gateway
+
+ route add default gw 192.168.1.1
+
+you may need to issue "route del default" a few times to remove incorrect routings.
+
+Now just edit /etc/resolv.conf and put in your nameserver and you should be set.
+
+## <a name="3_Downloading_the_tar"> 3. Downloading the tar </a>
+
+Mount the filesystem to a directory (/mnt works) and cd to this directory.
+
+Download the latest tar of the debian system <http://eu.hurd.gnuab.org/pub/debian/base/> or another working link, the file will probably be in the format: debian-gnu-hurd-yyyy.mm.dd.tar.gz
+
+use wget for the full path
+
+now assuming tomsrtbt linux issue:
+
+ gzip -d<debian-gnu-hurd-yyyy.mm.dd.tar.gz|tar -xvf -
+
+replacing yyyy.mm.dd appropriately
+
+## <a name="4_Configuring_GRUB"> </a> 4. Configuring GRUB
+
+Download the floppy image of grub with ext2fs support to a temporary directory, it can be found here: <ftp://alpha.gnu.org/gnu/grub/> write it to a blank floppy
+
+ dd if=image of=/dev/fd0
+
+now mount the floppy and copy the files to your partition
+
+ mount /dev/fd0 /fl
+ cd /fl/boot
+ cp -R grub /mnt/boot
+
+you may also wish to put my menu.lst file in your grub directory which can be obtained here <ftp://firethroat.com/hurd/menu.lst> you will need to edit it to include a -s at the end of the line starting with kernel. Be sure modify the partition numbers, my system is using the third partition of the second harddrive.
+
+More detailed samples for grub config files can be found at the [[GrubNotes]]
+
+To install grub reboot using the grub floppy and issue:
+
+ root (hd1,2)
+ setup (hd0)
+
+this will use the grub installed on the third partition of the second harddrive and install it to the master boot record of the first hard drive.
+
+Now reboot without the floppy, be sure to use the option -s at the end of the grub line starting with kernel= to start in single user mode.
+
+## <a name="5_Booting_GNU"> </a> 5. Booting GNU
+
+You should have booted the kernel now, check output to see if it detects your network card. My smc card did not work so I switched to a 3com card.
+
+You are now at step 6 of the [[InstallNotes]]. Follow these instructions to complete the installation.
+
+## <a name="6_Final_notes"> 6. Final notes </a>
+
+Be sure to issue
+
+ apt-get update
+ apt-get upgrade
+
+Before running x run the console
+
+ console -d vga -d pc_kbd --repeat=kbd -c /dev/cons /dev/vcs
+
+This forwards the keyboard device so x can use it. It also gives you 6 virtual terminals. I have had problems using it to forward the mouse, the system would lock. To exit issue ctrl+alt+backspace
+
+To get a sample XF86Config-4 issue:
+
+ X -configure
+
+My file is available <ftp://firethroat.com/hurd/XF86Config-4> but it uses a serial mouse. You can use settrans to get mouse input (this is the prefered method) or accessing it directly works.
+
+## <a name="7_Works_Cited_Referenced_Materia"> 7. Works Cited - Referenced Materials </a>
+
+[[InstallNotes]] -- Neal H. Walfield's Install Guide
+
+[Grub Install Guide](http://www.gnu.org/software/grub/manual/html_node/Installing-GRUB-natively.html)
+
+[tomsrtbt linux](http://www.toms.net/rb/) a general purpose linux distribution on 1 floppy.
+
+A lot of help in the chat room [[IRC]].
+
+----
+
+## <a name="Licensing"> Licensing </a>
+
+The license for this info work is under the [GNU GPL](http://web.walfield.org/papers/hurd-installation-guide/COPYING). However, in the Hurd Wiki license all content under the GNU FDL. (Unless the topic is mostly code or otherwise stated in the text.)
+
+-- [[Main/SeanDEpagnier]] - 25 Dec 2004
diff --git a/unsorted/PortingIssues.mdwn b/unsorted/PortingIssues.mdwn
new file mode 100644
index 00000000..747fb230
--- /dev/null
+++ b/unsorted/PortingIssues.mdwn
@@ -0,0 +1,194 @@
+## <a name="Table_of_Contents"> Table of Contents </a>
+
+%TOC%
+
+## <a name="Overview"> Overview </a>
+
+This is a recompilation of common porting problems and their solutions. Information is gathered from the following sources:
+
+* [Debian GNU/Hurd port guidelines](http://www.debian.org/ports/hurd/hurd-devel-debian)
+
+* [James Morrison's GNU/Hurd pages](http://hurd.dyndns.org/)
+
+as well as other misc. sources.
+
+First of all, see [[BtsFiling]] if you need instructions on manipulating [Debian](http://www.debian.org/) source packages and submitting patches to their [Bug Tracking System](http://bugs.debian.org/).
+
+## <a name="System_API_limitations"> </a> System API limitations
+
+Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug.
+
+We maintain a separate Wiki page for information on these bugs, see [[Distrib/SystemAPILimits]]
+
+If you think you can fix any of them and send a patch to the debian BTS, that'd be much appreciated. You may ask in <bug-hurd@gnuNOSPAM.org> for details or questions on the bug.
+
+## <a name="Undefined_bits_confname_h_tt_mac"> Undefined `bits/confname.h` macros (`PIPE_BUF`, ...) </a>
+
+If macro `XXX` is undefined, but macro `_SC_XXX` or `_PC_XXX` is defined in `bits/confname.h`, you probably need to use `sysconf`, `pathconf` or `fpathconf` to obtain it dynamicaly.
+
+The following macros have been found in this offending situation (add more if you find them): `PIPE_BUF`
+
+An example with `sysconf`: (when you find a `sysconf` offending macro, put a better example)
+
+ #ifndef XXX
+ #define XXX sysconf(_SC_XXX)
+ #endif
+ /* offending code using XXX follows */
+
+An example with `fpathconf`:
+
+ #ifdef PIPE_BUF
+ read(fd, buff, PIPE_BUF - 1);
+ #else
+ read(fd, buff, fpathconf(fd, _PC_PIPE_BUF) - 1);
+ #endif
+ /* note we can't #define PIPE_BUF, because it depends
+ on the "fd" variable */
+
+## <a name="Bad_File_Descriptor"> Bad File Descriptor </a>
+
+If you get Bad File Descriptor error when trying to read from a file (or accessing it at all), check the `open()` invocation. The second argument is the access method. If it is a hard coded number instead of a symbol defined in the standard header files, the code is screwed and should be fixed to either use `O_RDONLY`, `O_WRONLY` or `O_RDWR`. This bug was observed in the `fortunes` and `mtools` packages for example.
+
+## <a name="PATH_MAX_tt_MAX_PATH_tt_MAXPATHL"> `PATH_MAX` / `MAX_PATH` / `MAXPATHLEN` </a>
+
+Every unconditionalized use of `PATH_MAX`, `MAX_PATH` or `MAXPATHLEN` is a POSIX incompatibility. If there is no upper limit on the length of a path (as its the case for GNU), this symbol is not defined in any header file. Instead, you need to either use a different implementation that does not rely on the length of a string or use `sysconf()` to query the length at runtime. If `sysconf()` returns -1, you have to use `realloc()` to allocate the needed memory dynamically.
+
+## <a name="MAXHOSTNAMELEN_tt_"> `MAXHOSTNAMELEN` </a>
+
+Same as `PATH_MAX`. When you find a `gethostname()` function, which acts on a static buffer, you can replace it with Neal's [xgethostname function](http://ftp.walfield.org/pub/people/neal/xgethostname/) which returns the hostname as a dynamic buffer. For example:
+
+Buggy code:
+
+ char localhost[MAXHOSTNAMELEN];
+ ...
+ gethostname(localhost, sizeof(localhost));
+
+Fixed code:
+
+ #include "xgethostname.h"
+ ...
+ char *localhost;
+ ...
+ localhost = xgethostname();
+ if (! localhost)
+ {
+ perror ("xgethostname");
+ return ERROR;
+ }
+ ...
+ /* use LOCALHOST. */
+ free (localhost);
+
+## <a name="NOFILE_tt_"> `NOFILE` </a>
+
+Replace with `RLIMIT_NOFILE`
+
+## <a name="GNU_specific_define_tt_"> </a> GNU specific `#define`
+
+If you need to include specific code for GNU/Hurd using `#if` ... `#endif`, then you can use the `__GNU__` symbol to do so. But think (at least) thrice! before doing so. In most situations, this is completely unnecessary and will create more problems than it may solve. Better ask on the mailing list how to do it right if you can't think of a better solution.
+
+## <a name="sys_errlist_tt_vs_strerror_tt_"> `sys_errlist[]` vs. `strerror()` </a>
+
+If a program has only support for `sys_errlist[]` you will have to do some work to make it compile on GNU, which has dropped support for it and does only provide `strerror()`. Steinar Hamre writes about `strerror()`:
+
+`strerror()` should be used because:
+
+* It is the modern, POSIX way.
+* It is localized.
+* It handles invalid signals/numbers out of range. (better errorhandling and not a buffer-overflow-candidate/security risk)
+
+`strerror()` should always be used if it is available. Unfortunaly there are still some old non-POSIX systems that do not have `strerror()`, only `sys_errlist[]`.
+
+Today, only supporting `strerror()` is far better than only supporting `sys_errlist[]`. The best (from a portability viewpoint), however is supporting both. For configure.in, you will need:
+
+ AC_CHECK_FUNCS(strerror)
+
+To `config.h.in`, you need to add:
+
+ #undef HAVE_STRERROR
+
+Then something like:
+
+ #ifndef HAVE_STRERROR
+ static char *
+ private_strerror (errnum)
+ int errnum;
+ {
+ extern char *sys_errlist[];
+ extern int sys_nerr;
+
+ if (errnum > 0 && errnum <= sys_nerr)
+ return sys_errlist[errnum];
+
+ return "Unknown system error";
+ }
+ #define strerror private_strerror
+ #endif /* HAVE_STRERROR */
+
+You can for example look in the latest coreutils (the above is a simplified version of what I found there.) Patches should of course be sent to upstream maintainers, this is very useful even for systems with a working `sys_errlist[]`.
+
+Of course, if you don't care about broken systems (like MS-DOG) not supporting `strerror()` you can just replace `sys_errlist[]` directly (upstream might not accept your patch, but debian should have no problem)
+
+## <a name="Filenames_ending_in_a_slash_"> Filenames ending in a slash \`/' </a>
+
+Those are evil if they don't exist and you want to name a directory this way. For example, `mkdir foobar/` will not work on GNU. This is POSIX compatible. POSIX says that the path of a directory may have slashes appended to it. But the directory does not exist yet, so the path does not refer to a directory, and hence trailing slashes are not guaranteed to work. Just drop the slashes, and you're fine.
+
+## <a name="Missing_termio_h_tt_"> Missing `termio.h` </a>
+
+Change it to use `termios.h` (check for it properly with autoconf `HAVE_TERMIOS_H` or the `__GLIBC__` macro)
+
+## <a name="AC_HEADER_TERMIO_tt_"> `AC_HEADER_TERMIO` </a>
+
+The autoconf check for `AC_HEADER_TERMIO` tryes to check for termios, but it's only really checking for termio in `termios.h`. It is better to use `AC_CHECK_HEADERS(termio.h termios.h)`
+
+## <a name="broken_libc6_dependency"> broken libc6 dependency </a>
+
+Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because `libc6` is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev` but other OSes will have different ones. You can locate the problem in the `debian/control` file of the source tree. Typical solutions include detecting the OS using `dpkg-architecture` and hardcoding the soname, or better, use a logical OR. eg: `libc6-dev | libc0.3-dev | libc-dev`. The `libc-dev` is a virtual package that works for any soname but you have to put it only as the last option.
+
+## <a name="Third_argument_in_ioctl_tt_TIOCF"> Third argument in `ioctl` (`TIOCFLUSH`, etc) </a>
+
+Broken arguments for `ioctl`'s which might work on other systems will cause segfault on GNU, because they are passed to and from a Hurd server RPC.
+
+For example, `TIOCFLUSH` wants an `(int *)`, but will run on GNU/Linux if you pass it a 0. The solution in this case is to declare and assign an `int`, eg:
+
+ int out = 0;
+
+and pass its address to `ioctl`:
+
+ ioctl (fd, TIOCFLUSH, &out);
+
+See [a simple fix for TIOCFLUSH in telnet](http://mail.gnu.org/archive/html/bug-inetutils/2001-08/msg00015.html).
+
+----
+
+## <a name="ChangeLog"> ChangeLog </a>
+
+-- [[Main/TWikiGuest]] - 13 Jan 2005
+
+Fix xgethostname example. - Neal
+
+-- [[Main/RobertMillan]] - 22 Jul 2002
+
+Formatting and minor grammatical fixes.
+
+-- [[Main/JoachimNilsson]] - 09 Sep 2002
+
+Added more examples and misc semantical fixes.
+
+-- [[Main/RobertMillan]] - 05 Oct 2002
+
+Added `xgethostname` example.
+
+-- [[Main/RobertMillan]] - 15 Nov 2002
+
+Added broken libc6 dependency
+
+-- [[Main/RobertMillan]] - 21 Nov 2002
+
+Text formatting.
+
+-- Ognyan Kulev - 12 Mar 2003
+
+Added `ioctl` entry.
+
+-- [[Main/RobertMillan]] - 19 Mar 2003
diff --git a/unsorted/QEMU.mdwn b/unsorted/QEMU.mdwn
new file mode 100644
index 00000000..27086257
--- /dev/null
+++ b/unsorted/QEMU.mdwn
@@ -0,0 +1,15 @@
+QEMU is free software written by Fabrice Bellard that implements a fast processor emulator, allowing a user to run one operating system within another one. It is similar to projects such as Bochs and VMware Workstation, but has several features these lack, including increased speed and support for multiple architectures. By using dynamic translation it achieves a reasonable speed while being easy to port on new host CPUs.
+
+QEMU has two operating modes:
+
+* User mode emulation: QEMU can launch Linux processes compiled for one CPU on another CPU. Linux system calls are converted because of endianness and 32/64 bit mismatches. Wine and Dosemu are the main targets for QEMU.
+
+* System mode emulation: QEMU emulates a full system, including a processor and various peripherials. It enables easier testing and debugging of system code. It can also be used to provide virtual hosting of several virtual PCs on a single server.
+
+The majority of the program is under the [[LGPL]], with the system mode emulation under the [[GPL]].
+
+## <a name="External_links"> External links </a>
+
+* <http://fabrice.bellard.free.fr/qemu/>
+* <http://kidsquid.com/cgi-bin/moin.cgi> QEMU Wiki
+* [Qemu on Windows](http://www.h7.dion.ne.jp/~qemu-win/)
diff --git a/unsorted/SavannahProjects.mdwn b/unsorted/SavannahProjects.mdwn
new file mode 100644
index 00000000..3024ed64
--- /dev/null
+++ b/unsorted/SavannahProjects.mdwn
@@ -0,0 +1,13 @@
+[Savannah](http://savannah.gnu.org) was created with a forked version of the software that runs the [SourceForge](http://www.sf.net) site. It is the official [GNU project](http://www.gnu.org/gnu/thegnuproject.html) hosting facility of the [FSF](http://www.fsf.org). Many GNU projects are migrating to use it. Here is a list of projects hosted on Savannah related to the Hurd.
+
+* [Hurd](http://savannah.gnu.org/projects/hurd) - main project CVS repository
+* [HurdExtras](http://savannah.gnu.org/projects/hurdextras) - related projects
+* [wwwHurd](http://savannah.gnu.org/projects/wwwhurd) - webmasters for <http://hurd.gnu.org>
+* [L4Hurd](http://savannah.gnu.org/projects/l4hurd) - OSkit/L4 unofficial porting project
+* [pthreads](http://savannah.gnu.org/projects/pthreads) - porting of thread library for glibc
+* [hurd-iso](http://savannah.gnu.org/projects/hurd-iso) - CD-ROM images
+* [gnumach-alpha](http://savannah.gnu.org/projects/gnumach-alpha) - port for Alpha processor machines
+* [[Hurd/THUG]] - Toronto Area GNU/Hurd User Group and their [documentation page](http://www.freesoftware.fsf.org/thug/docs.html)
+* [francine](http://savannah.gnu.org/projects/francine) - "secure, colourful and themeable login program"
+
+-- [[Main/GrantBow]] - 13 May 2002
diff --git a/unsorted/SystemAPILimits.mdwn b/unsorted/SystemAPILimits.mdwn
new file mode 100644
index 00000000..8930ef9c
--- /dev/null
+++ b/unsorted/SystemAPILimits.mdwn
@@ -0,0 +1,30 @@
+## <a name="API_Limitations_of_the_GNU_syste"> </a> API Limitations of the GNU system
+
+----
+
+Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug.
+
+Taken from the bug lists in debian BTS. If you find more of them (and it is clear in the bug log that it is a bug), please add them to the list below. See:
+
+* <http://bugs.debian.org/hurd> ([source](http://packages.qa.debian.org/h/hurd.html) and [binary](http://packages.debian.org/hurd) debs not synchronized)
+* <http://bugs.debian.org/hurd-dev> ([binary](http://packages.debian.org/hurd-dev))
+* <http://bugs.debian.org/libc0.3> ([source](http://packages.qa.debian.org/g/glibc.html) &amp; [binary](http://packages.debian.org/libc0.3) debs)
+* <http://bugs.debian.org/libc0.3-dev> ([binary](http://packages.debian.org/libc0.3-dev))
+
+----
+
+These are the known system API limits that have porting implications.
+
+**_[\#47998](http://bugs.debian.org/47998): `msgget` IPC not implemented_**
+
+**_[\#184565](http://bugs.debian.org/184565): libc0.3: missing shm\* functions (from `<sys/shm.h>`)_**<br />**breaks:** cdrtools<br />**error:** warning: shm\* is not implemented and will always fail
+
+**_[\#190581](http://bugs.debian.org/190581): nice() doesn't work_**<br />**breaks:** coreutils<br />**error:** `nice()` doesn't take effect on some situations
+
+**_[\#187391](http://bugs.debian.org/187391): libc0.3-dev: `sockaddr_un.sun_path` can't be assigned a `const char *` when compiling with g++_**<br />**breaks:** fam, gail<br />**status:** maybe this should be in [[PortingIssues]] (see _long_ bug log)
+
+**_[\#190367](http://bugs.debian.org/190367): libc0.3-dev: `fcntl` `F_GETLK` not implemented (`ENOSYS`)_**<br />**breaks:** gnome-session (and others) from running<br />**error:** misc lock-related errors
+
+-- [[Main/RobertMillan]] - 01 May 2003
+
+Text formatting.<br /> -- [[Main/OgnyanKulev]] - 02 May 2003
diff --git a/unsorted/TestSuites.mdwn b/unsorted/TestSuites.mdwn
new file mode 100644
index 00000000..e268ba8d
--- /dev/null
+++ b/unsorted/TestSuites.mdwn
@@ -0,0 +1,12 @@
+Test suites exist to validate the compliance of software implementations with specific standards. This page is to act as a repository for information about the standards themselves, the test suites that validate software that complies with the standards as well as results &amp; feedback from people who have run these suites.
+
+* IEEE [Posix](http://standards.ieee.org/regauth/posix/index.html) ([Open POSIX Test Suite](http://posixtest.sourceforge.net/))
+* Free Standards Group Linux Standard Base ([LSB](http://www.linuxbase.org/))
+* File Hierarchy Standard ([FHS](http://www.pathname.com/fhs/))
+* [X Desktop Group](http://www.freedesktop.org)
+* The Open Group [Single UNIX specification, version 3](http://www.unix-systems.org/version3/online.html)
+* The Open Group [ Unix 98](http://www.opengroup.org/public/prods/xxm0.htm)
+* The Open Group [Testing Services](http://www.opengroup.org/consortia_services/testing.htm) (with [downloads](http://www.opengroup.org/testing/downloads.html))
+* [Perl](http://www.perl.org)
+
+-- [[Main/NagromNamreh]] - 24 Jan 2004 Added Posix test suite results
diff --git a/unsorted/VmWare.mdwn b/unsorted/VmWare.mdwn
new file mode 100644
index 00000000..6f4c3cba
--- /dev/null
+++ b/unsorted/VmWare.mdwn
@@ -0,0 +1,22 @@
+## <a name="Why_not_vmware_"> Why not vmware? </a>
+
+**_Q:_** GNU won't work in [[VmWare]], it hangs when reaching the Hurd bootstrap.
+
+**_A:_** Note that Vmware is not supported software to run the Hurd on it. Reasons include:
+
+1. Vmware is not [free software](http://www.gnu.org/philosophy/free-sw.html), which is against our philosophy.
+2. Obtaining a licensed copy to debug it costs (at least) $300. (However, the player is "free" as in beer. This doesn't lessen the other concerns, however).
+3. Vmware's sources and specification are not publicly available, which makes debugging tasks really painful.
+4. GNU is not in [Vmware's official supported operating systems page](http://www.vmware.com/support/ws3/doc/ws32_guestos2.html#1034043).
+
+We recommend to use [free](http://www.gnu.org/philosophy/free-sw.html) alternatives, like the [[BochsEmulator]]. Also check QEMU: [[HurdOnQEMU]].
+
+-- [[Main/RobertMillan]] - 23 Jul 2002
+
+I have been able to install Debian/Hurd K2 on [[VmWare]] ...
+
+* [[VmWare]] 3.02 complains a lot about a missing **console** and shows a lot of errors
+ * They can be solved by manually creating the devices
+* I have tried **Bochs 2.0**, Debian/Hurd K2 installs with no problems at all.
+* [[VmWare]] 4.0.0 works fine ... just follow the Hurd install instructions.-- [[TWiki/AndreaSterbini]] - 22 Apr 2003
+* Here using "free" (as in beer) vmware-player 1.0.2.29634 on Gentoo. Hurd K14 installs and runs smoothly, but seems to hang on shutdown. -- [[Main/DeviceRandom]] - 20 Jan 2007