summaryrefslogtreecommitdiff
path: root/hurd/running/dde_guide.mdwn
blob: 6518e0e432961a35f6e4d3f66143e42a942e4d32 (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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
[[!meta copyright="Copyright © 2010 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]]."]]"""]]

If you haven't: install hurd to partition
get grub image
boot hurd in single user (change grub entry accordingly to the installed partition)

> $ export TERM=mach

> $ ./native-install

reboot to other debian

suppose hurd partition is hdd1

as root

> $ mount /dev/hdd1 /mnt -t ext2

> $ cd /mnt/etc/apt

> $ echo "deb http://ftp.debian-ports.org/debian unreleased main" >> sources.list

> $ echo "deb-src http://ftp.debian-ports.org/debian unreleased main" >> sources.list

> $ echo "deb http://ftp.uk.debian.org/debian unstable main" >> sources.list

> $ echo "deb-src http://ftp.uk.debian.org/debian unstable main" >> sources.list

> $ wget http://www.gnu.org/software/hurd/hurd/running/debian/DebianAptOffline/apt.conf.offline

> $ cd /mnt

> $ apt-get -c etc/apt/apt.conf.offline update

> $ apt-get -c etc/apt/apt.conf.offline upgrade

> $ apt-get -c etc/apt/apt.conf.offline install git-core

> $ apt-get -c etc/apt/apt.conf.offline build-dep hurd gnumach

> $ apt-get -c etc/apt/apt.conf.offline install build-essential libpciaccess-dev libpcap0.8-dev

> $ cd /mnt/home

> $ git clone git://git.sv.gnu.org/hurd/incubator.git -b dde hurd_dde

> $ git clone git://git.sv.gnu.org/hurd/gnumach.git -b master-user_level_drivers gnumach_dde


suppose you need forcedeth driver

Download http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=blob_plain;f=drivers/net/forcedeth.c;hb=HEAD from mozilla like
browser to /mnt/home as forcedeth.c

Download http://pastebin.com/RJAJT2MR the same way and rename it to 0001-Fix-up-DDE-paths.patch

reboot back to hurd (multiuser)

> $ apt-get update

> $ apt-get upgrade

> $ apt-get install git-core

> $ apt-get build-dep hurd gnumach

> $ apt-get install build-essential libpciaccess-dev libpcap0.8-dev


> $ cd /home/gnumach_dde

> $ autoreconf -i && ./configure --enable-kdb --enable-device-drivers=none --enable-lpr --enable-floppy --enable-ide

> $ make

> $ cd ../hurd_dde

> $ git am ../0001-Fix-up-DDE-paths.patch

> $ cp -r dde_pcnet32 dde_forcedeth

> $ cd dde_forcedeth

> $ rm pcnet32.c

> $ cp /home/forcedeth.c ./

> $ sed -i 's/pcnet32/forcedeth/g' Makefile

> $ sed -i 's/pcnet32/forcedeth/g' .gitignore

> $ sed -i 's:-lhurd-slab:../libhurd-slab/libhurd-slab.a:' Makefile

> $ sed -i 's:-I/include:-I..:' Makefile

> $ nano forcedeth.c

add these 2 lines after the last #include

    #include <ddekit/timer.h>
    void get_random_byter(void *buf, int nbytes) { }

> $ cd ..

> $ git add dde_forcedeth

> $ git commit -a -m 'Add forcedeth driver'

> $ autoreconf -i && ./configure

> $ mkdir -p hurd/include/ddekit

> $ make libddekit libmachdev devnode pfinet

> $ cd libdde_linux26

> $ make

> $ cd ../dde_forcedeth

> $ make

If the make fails it might be necassary to replace some of the -l options (or all) in Makefile with the real path to the library objects (example: change *-lhurd-slab* to *../libhurd-slab/libhurd-slab.a*)

> $ cp /home/gnumach_dde/gnumach /boot/gnumach_dde

> $ mkdir /hurd/dde

> $ cp /home/hurd_dde/devnode/devnode /hurd/dde

> $ cp /home/hurd_dde/pfinet/pfinet /hurd/dde

> $ cp /home/hurd_dde/dde_forcedeth/dde_forcedeth /hurd/dde/forcedeth

reboot to hurd with the new gnumach_dde

> $ settrans -c /dev/forcedeth /hurd/dde/forcedeth

> $ settrans -c /dev/eth0 /hurd/dde/devnode -M /dev/forcedeth eth0

> $ settrans -c /servers/socket/2 /hurd/dde/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0 


replace the ip, gateway and mask with your own ones

> $ nano /etc/resolv.conf

add line: nameserver 192.168.1.254

DONE