diff options
-rw-r--r-- | release/INSTALL-binary | 187 |
1 files changed, 73 insertions, 114 deletions
diff --git a/release/INSTALL-binary b/release/INSTALL-binary index 971c1d5e..1fb65ab8 100644 --- a/release/INSTALL-binary +++ b/release/INSTALL-binary @@ -1,13 +1,17 @@ -*- Text -*- Instructions for bootstrapping the Hurd from binary images (i486). -Last updated 17 Apr 95 +Last updated 8 July 1996 This directory contains i486 binaries for the Hurd and various -programs built to run under it. They were built with current GCC -sources (generally 2.7.*) and recent binutils snapshot from -ftp.cygnus.com:private/gas, configured for target `i486-gnu'. All -program binaries are stripped to save disk space; the installed -libraries have the debugging information stripped to speed linking. +programs built to run under it. All program binaries are stripped to +save disk space; the installed libraries have the debugging +information stripped to speed linking. + +See the file SOURCES to see where each package came from. For the +GPL'd sources (most of them) you are not allowed to distribute this +binary distribution to third parties without distributing the +associated source. All these sources are found on prep.ai.mit.edu +along with the Hurd binary distribution itself. STEP I: @@ -18,111 +22,61 @@ understand how to boot from a Linux ext2fs filesystem, though this is expected to change very soon. Make the disk partition with newfs or mkfs on your favorite BSD -system. Then unpack the binaries with tar onto that partition. If -you are building your own binaries as described in INSTALL-cross, it -is perfectly fine to use this partition as the Hurd installation -staging area. - -[If you do not have a system running BSD, the NetBSD 2-floppy install set -contains enough tools to make a new filesystem using newfs and copy to -it from nfs.] - -If you're going to be booting native, you probably need to change the -device on which paging is done. This is done in a file in the hurd -partition called `boot/servers.boot', on the line which looks like: - - /dev/sd0b $(add-paging-file) $(default-pager) - -`sd0b' is the paging device. Replace this with the correct device name -(this is a mach partition name; see step II below for a bit about -partition naming), or delete the line if you don't want paging. - -(CAVEAT: Hurd partitions, especially the root partition, may have -filesystem extensions that BSD does not know about. Most of these are -ignored by the BSD kernel and filesystem tools. One of them, `passive -translators' (a/k/a non-transient mounts), is not understood by the -BSD fsck. If you run the BSD fsck on a Hurd partition with such -translators, things might fail *massively*. The Hurd version of fsck -does not, of course, have any such problem.) - -Fsck and unmount the new partition before using it, to make sure it's clean. +system. Then unpack the binaries with tar onto that partition. +[If you do not have a system running BSD, the NetBSD 2-floppy install +set contains enough tools to make a new filesystem using newfs and +copy to it from nfs.] + STEP II: -Boot from this partition. - -There are currently two ways of booting the hurd that are know to work: +You probably need to change the device on which paging is done. This +is done in a file in the Hurd partition called `XXX, on +the line which looks like: -A: Using the grub bootloader (written by Erich Boleyn <erich@uruk.org>): + /dev/sd0b $(add-paging-file) $(default-pager) - Grub can load the mach4 kernel (version UK22), included with this binary - distribution. Mach4-UK22 uses linux device drivers, which are generally - more functional than the previous mach ones (however the current build - mechanism for mach4 links in every linux driver, even unused ones, so the - kernel binary is very big). +`sd0b' is the paging device. Replace this with the correct device +name (this is a mach partition name; see step III below for a bit +about partition naming), or comment out the line if you don't want +paging. - To use grub, get the grub distribution (version 0.1 is known to work, and - these instructions are for that; the mach4-UK02p21 kernel included with - this distribution works only with grub version 0.0), and follow the - instructions to put grub on either a floppy disk or a bootable partition; - there should be a copy of the grub distribution in the same location you - found this hurd distribution. +Fsck and unmount the new partition before using it, to make sure it's +clean. - Then reboot the system with grub, and answer the prompts like so: - 1) `root-partition:' -- the partition where the hurd image is; this is - generally something like `hd(0,e)'. - - 2) `kernel:' -- use: - - /boot/kernel root=sd0e +STEP IV: - and replace sd0e with the name of the root device. Note that the - naming convention here is from mach, and is different than that used to - specify the root device in (1). SCSI disks in mach are named `sd??' - and non-SCSI disks `hd??'. [Also note that these may also be - different that the names used by whatever OS used to create the hurd - partition in the first place!] - - 3) `module:' -- use: +Install the grub bootloader. - /boot/serverboot - - for the first one, and then just hit return for the second to end the - list. - - 4) Hit return to boot the system... +The instructions for installing grub are found in INSTALL-grub, which +is a copy of the installation instructions at +http://www.uruk.org/grub. - Mach should load, and then the Hurd should start, saying something like: +We have included binaries for the various pieces of grub in /boot/grub +on your Hurd partition. So you can follow the grub installation +instructions without needing to build the actual grub pieces. - Hurd server bootstrap: ufs exec init proc auth. - Single-user bootstrap: term sh. - bash# +You may want to switch to using grub entirely; it is able to most +other kernels too. Full instructions are available on at +http://www.uruk.org/grub, or in the grub source (which you should find +wherever you picked up this binary release). - Using this method, a script file called /boot/servers.boot is loaded - to specify how to start the initial hurd servers; this file probably - should be modified to specifiy the paging device, as in step I. -B: Booting the hurd under another mach os, such as lites: +STEP V: - To do this you need to have an executable copy of the `uxboot' - program, which isn't included in the binary distribution. However, if you - have the source distribution, it is built in the `boot' subdirectory (and - not installed). Uxboot is not a hurd program, and is built using - strange linker magic; it currently works on either ux or lites, but it - maybe Once you have uxboot, you can boot a hurd partition by - saying (while in the root of the source distribution build tree): +Boot the system with grub. You should get a grub boot menu with two +entries, `hurd' and `hurd-single'. Select hurd-single. - boot/uxboot hurd.boot sd0e +Mach should load, and then the Hurd should start, saying something like: - where sd0e is of course replaced by the mach device name of the partition - with the hurd binary distribution on it. The file hurd.boot contains - specifics of how to boot, and may be changed, e.g., to use ext2fs instead - of ufs. + Hurd server bootstrap: ufs exec init proc auth. + Single-user bootstrap: term sh. + bash# -STEP III: +STEP VI: When GNU boots the first time, you might see some confusing messages, and you may notice that pipes don't work. @@ -140,11 +94,24 @@ Hurd system, say /bin/sh /SETUP -Now run `sync' and then `halt'. Boot the system again, and it should -start up normally. +Now run `sync' and then `halt'. Boot the system again (still +single-user), and it should come up more sanely. +(CAVEAT: Hurd partitions, especially the root partition, may have +filesystem extensions that BSD does not know about. Most of these are +ignored by the BSD kernel and filesystem tools. One of them, `passive +translators' (a/k/a non-transient mounts), is not understood by the +BSD fsck. If you run the BSD fsck on a Hurd partition with such +translators, things might fail *massively*. The Hurd version of fsck +does not, of course, have any such problem. + +(The Hurd root partition needs to have such translators installed in +order to work correctly. Other partitions don't; the filesystems +support compat options to prevent the use of Hurd filesystem +extensions.) -STEP IV: + +STEP VII: Now you have a Hurd system. Some things you will want to do before you get going are: @@ -157,11 +124,11 @@ A: cd to /dev and make useful devices. At least pty's thus: B: If you want to use the network, set it up thus: - settrans /servers/socket/2 NN.NN.NN.NN eth0 + settrans /servers/socket/2 NN.NN.NN.NN eth0 MM.MM.MM.MM where NN.NN.NN.NN is your IP address (not hostname, IP address). - Gatewaying is not supported yet, you will only be able to talk to - hosts on your local net. + MM.MM.MM.MM is the address of an IP gateway. If your host is + isolated, then you can omit that arg. C: You can mount a partition (say hd0a) by saying: @@ -197,6 +164,10 @@ reboots, being recorded directly on disk. To get rid of one, say: `settrans /mnt' with no further args. The command `showtrans /mnt' will show you where it's at right now. +You probably want to add all such mounts to fstab, so that the +relevant disks are checked with fsck automatically on reboot, and so +that programs like `df' know of them. + A temporary mount (which lasts only until the filesystem program is killed or the system is rebooted) can be accomplished by giving the -a option to settrans thus: `settrans -a /mnt /hurd/ufs /dev/rsd0a'. @@ -220,29 +191,17 @@ MISCELLANEOUS NOTES: Fscking: -The /sbin/fsck program does not currently work, so you have to use the -individual fsck backends, /sbin/fsck.ufs & /sbin/fsck.ext2. These programs -do not know when a partition is in use by an active filesystem, so you must -to be careful that the partition you're fscking is quiescent. If it's not -the root filesystem, you can shut it down with the command `settrans -a -ROOTDIR' (ROOTDIR is the node where the filesystem translator is attached). -To fsck the root filesystem, make sure it's readonly, which can be done using -the command `fsysopts / --readonly'. Once fsck has completed, if it wrote on -the partition, the (still running) root filesystem must be informed of this -fact, using the command `fsysopts / --remount --writable' (--remount tells -the filesystem to reload all its data structures from disk); if fsck didn't -actually change anything, you can leave out the --remount option. - -The /sbin/fsck.ufs program currently does not ever set the clean bit, so -you're likely to find that the root filesystem is being declared dirty and -forced readonly every time you boot. +XXX MILES -- Please insert arg summary here XXX + GDB: +XXX MILE -- Please verify + The version of gdb included in this release has various features not used by most systems, in particular, the `thread' and `info thread' commands. -The hurd gdb can also debug running programs without halting them, which is +The Hurd gdb can also debug running programs without halting them, which is useful to debug crucial system servers that can't be stopped without wedging the system. To do this, give the commands `set task pause off', `set exceptions off', and `set signals off', before attaching to the process. Of |