How to get the Hurd running

This page describes what the abshurd group at PSU did to get the Hurd running and how you can, too.

DISCLAIMER This is unofficial, hacked together, and barely tested. It is put here in the hopes of being useful to those wanting to begin work on the Hurd. Use at your own risk!

Our system is a 386DX40, with a 340 meg IDE drive and a hercules monitor. Nothing fancy (or modern :-) This snapshot requires you have IDE like us, getting it to work with SCSI is left as an exercise for the reader.

Notes on how we got this far

We partitoned the disk like so (listed by partition size in megs)

30
MS-DOG (The machine has a day job :-)
100
FreeBSD root and usr. All we installed was the bindist and it only took up 40 megs. Next time, we'll make it smaller.
80
Swap. The Hurd is still statically linked so it's a good idea to have plenty of room.
100
/hurd. Just make this a plain old ufs filesystem. This will be he Hurd's root partition.
Compiling Mach4 took some work, as it requires the latest GNU build tools (the FreeBSD tools will also work with some patches). There were still a couple of bugs in the build utils. First, the FreeBSD build tools put a bad address in the a.out header (the low byte should have been empty), to kludge around this we installed a patched boot block which would ignore the problem. The latest GNU tools didn't have this problem. Secondly, there were several multiply-defined symbols, manually undefining half of them fixed this. Also Mach wanted to switch to the 'a' partition once it started running. Since we were running off 'hd0e' we had to change the startup code in mach to ask for a partition name. We then deposited the Mach.all binary into /hurd

Apparently, the FSF development machine has a SCSI disk, as sd0[a-g] was hardwired into the dev server. Rather than recompile Hurd (which we didn't want to spend the time doing), we edited the binary with emacs (hexl-mode). If you want to use SCSI, just replace our hacked dev server with the original one.

Also, there have been two images made available by the FSF, the first contained much more software. Therefore, the image stored locally is those two merged together (plus Mach.all from above).


trent...