[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

installation debian gnu/hurd



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

Reply to: