summaryrefslogtreecommitdiff
path: root/hurd/running/gnu/setup.mdwn
blob: 2fb30c7b6657228f07f8e43df046c0531cbb387c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
[[!meta copyright="Copyright © 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]]."]]"""]]

Setup is very easy (You need a GNU/Linux system to install GNU, we are developing an installer for GNU and if you want to help us join us on [gnu-system-discuss](http://lists.gnu.org/mailman/listinfo/gnu-system-discuss)), just follow these steps ...

## Step 1: Find a home for GNU 

create a partition with minimum of 800 MB (if you want to install programs later you might need to allocate more space)

It comes with GNU Emacs 21.4, gcc 4.0, gdb 6.3, parted, wget and many more

Note: 2GB limit for partitions is no more there, it is fixed

## Step 2: Create GNU Hurd filesystem on the partition

    # mke2fs -o hurd /dev/hdd6

## Step 3: Grab a snapshot of the GNU 

from <http://www.update.uu.se/~ams/home/slask/GNU/> or Extended GNU from <http://i-hug.sarovar.org/downloads/GNU/extended/>

## Step 4: Extract the snapshot to the newly created partition

    # mount /dev/hdd6 /mnt
    # cd /mnt
    # tar -jxvf <path to downloaded location>/GNU--2006-01-08.tar.bz2 

Wait for the extraction to complete, depending on the system configuration the time varies. The compressed image is 178MB and it uncompresses to about 750MB

## Step 5: Configure grub to boot GNU

This can be tricky since the partition naming is different for linux, grub and hurd

My configuration look like this ...

    title  GNU (also known as GNU/Hurd)(Single user)
    root   (hd0,5)
    kernel /boot/gnumach.gz root=device:hd3s6 -s
    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) 

    title  GNU (also known as GNU/Hurd)(Multi-user)
    root   (hd0,5)
    kernel /boot/gnumach.gz root=device:hd3s6 
    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) 

    grub		 linux		hurd
    hd0,5		hdd6		hd3s6

If you have only one harddisk it will be hd0 for grub wherever you connect it.
But linux and hurd names depend on whether you connect it as primary master 
(hda or hd0), primary slave (hdb or hd1) [this is my cdrom drive], secondary
 master (hdc or hd2) or secondary slave (hdd or hd3) [this is my precious 
Maxtor 2GB hard disk].

The partition naming of hurd is similar to BSD slices. hda1 is hd0s1, hda2 is
 hd0s2 ...

In my case the root device is hd0s6 (hdd6)

## Step 6: Now boot into your brand new GNU System.

It will do some initial setup and you will get a prompt. 
Now reboot into your configured GNU System.

    # reboot 

## Step 7: Start using your GNU system

Here is the GNU/Hurd users guide. It starts from the basics. <http://www.gnu.org/software/hurd/users-guide/using_gnuhurd.html>

*Warning! : It is not yet ready for normal use, it is a developer's release.*

So when you encounter bugs report it to bug-hurd@gnu.org

Join us on gnu-system-discuss <http://lists.gnu.org/mailman/listinfo/gnu-system-discuss>  to help finish the GNU System.