I installed actually debian gnu/hurd on my PC with crosshurd and had to
change something if we show the official guide on
http://www.debian.org/ports/hurd/hurd-install.
The "changes" were on following:
2. Real Estate or Finding A Home
To create a filesystem, use mke2fs and pass it "-b 4096 -I 128 -o hurd"
to designate the Hurd as the owner of the new file system. For instance,
assuming the partition is "/dev/hda2":
# mke2fs -b 4096 -I 128 -o hurd /dev/hda2
the option -o hurd do exactly -b 4096 and -I 128; it would be
unnecessary, at least with version 1.41.3 of e2fsprogs.
/ 4. Cross Install
The next step is to get a base system. There are several alternatives,
if you are running a Debian system you can use the package crosshurd.
Otherwise you can get an updated base system tarball from any of the
mirrors listed at http://wiki.debian.org/DebianPorts/Mirrors.
/_
About mirrors:_
On the address http://wiki.debian.org/DebianPorts/Mirrors/ /I found the
directory "base/" with the base-system only on the FR (is it really
France?), DE and US mirror. For CH and TW there's no way to get it and
on the last mirror, CA (http://www.superunprivileged.org/debian) got an
error 404: page doesn't exist.
_About crosshurd:/
/_To boot with more than 768Mb RAM after install with crosshurd you have
to change the virtual memory of mach. To do this Samuel Thibauld wrote a
patch to apply on gnumach:
|Index: b/i386/i386at/model_dep.c
===================================================================
--- a/i386/i386at/model_dep.c 10 Nov 2008 15:18:47 -0000 1.9.2.19
+++ b/i386/i386at/model_dep.c 11 Jun 2009 00:32:30 -0000
@@ -231,10 +232,10 @@ mem_size_init(void)
printf("AT386 boot: physical memory from 0x%x to 0x%x\n",
phys_first_addr, phys_last_addr);
- /* Reserve 1/16 of the memory address space for virtual mappings.
+ /* Reserve 1/8 of the memory address space for virtual mappings.
* Yes, this loses memory. Blame i386. */
- if (phys_last_addr > (VM_MAX_KERNEL_ADDRESS / 16) * 15)
- phys_last_addr = (VM_MAX_KERNEL_ADDRESS / 16) * 15;
+ if (phys_last_addr > (VM_MAX_KERNEL_ADDRESS / 8) * 7)
+ phys_last_addr = (VM_MAX_KERNEL_ADDRESS / 8) * 7;
phys_first_addr = round_page(phys_first_addr);
phys_last_addr = trunc_page(phys_last_addr);|
To patch it on the gnumach, after run crosshurd (version 1.7.33) you
have to download the source of gnumach (better from unstable). For this
you have to add to your repository the source (deb-src) on unstable:
|deb-src http://ftp.ch.debian.org/debian/ unstable main
|After an update (apt-get update) download the source of gnumach in your
current directory with:
|# apt-get source -t unstable gnumach|
Then build dependencies:
|# apt-get build-dep gnumach
|Before crosscompiled we have to add the patch above. Just copy it into
a file with a text editor and call it for example bigmem.patch. The
entry on the main directory of the gnumach sources and give:
|
# patch -p1 < /locationpatch/bigmem.patch|
|locationpatch| is the location of the patch. If you get no errores you
can yet build the gnumach:
|# dpkg-buildpackage -us -uc -b
|After this mount (or go if already mounted) your partition with
debian GNU/Hurd on /gnu and copy the compiled gnumach on the boot
directory:
|# cp gnumach-1.3.99.dfsg.cvs<version>/debian/gnumach/boot/gnumach.gz
/gnu/boot/gnumach.gz
|Before reboot reboot you've got to change the "native-install" always
on your mounted partition in /gnu and remove the option
"--force-auto-select" on line 160 (option is deprecated and will get an
error during run of the script).
|158 # install base packages
159 for i in /var/cache/apt/archives/*.deb ; do
160 dpkg --force-auto-select --force-overwrite --force-confold \
161 --skip-same-version --unpack $i
162 done
163 dpkg --force-confold --skip-same-version --configure -a
164 mv $ssd{.real,}
|
/6. Native Install
Once you are presented with a shell prompt, and any time that the Hurd
is in single user mode, it is necessary to set the terminal type:
# export TERM=mach/
This is no more necessary because already on the "native-install" script:
|37 if [ "$TERM" = "dumb" ] ; then
38 export TERM=mach
39 fi
|/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 and run |./native-install|.
/This is also no more necessary. Just run |native-install| one time.
At the end I just communicate that my old network card (02:0a.0 Ethernet
controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 43)) doesn't
work on the GNU/Hurd with the via_rhine driver, despite will recognize
with eth0 after "devprobe eth0". With another card of 3com (02:0a.0
Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 74))
I didn't have any problem to get the network working.
Hope this helps for who want to install debian gnu/hurd with crosshurd.
Bruno