summaryrefslogtreecommitdiff
path: root/hurd/rump
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/rump')
-rw-r--r--hurd/rump/rumpdisk.mdwn62
-rw-r--r--hurd/rump/rumpfs.mdwn31
-rw-r--r--hurd/rump/rumpnet.mdwn41
-rw-r--r--hurd/rump/rumpsound.mdwn25
-rw-r--r--hurd/rump/rumpusbdisk.mdwn26
5 files changed, 185 insertions, 0 deletions
diff --git a/hurd/rump/rumpdisk.mdwn b/hurd/rump/rumpdisk.mdwn
new file mode 100644
index 00000000..33e37ff7
--- /dev/null
+++ b/hurd/rump/rumpdisk.mdwn
@@ -0,0 +1,62 @@
+[[!meta copyright="Copyright © 2024 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]]."]]"""]]
+
+[[!tag stable_URL]]
+
+# RumpDisk
+
+The Hurd supports modern SATA devices like SSDs with RumpDisk. If you
+successfully installed the Hurd in real hardware, via toggling the
+"compatibility" mode in your BIOS, then the Hurd is probably using old
+Linux drivers to access your hard drive/SSD. Even more problematic,
+those drivers are baked into the GNU Mach kernel! With rumpdisk, you
+can use SSDs on the Hurd and enjoy a max partition size of [[2
+TiB|faq/2_gib_partition_limit]]!
+
+If you want to test if the Hurd can boot with your SSD, change any
+occurence of `hdN` in `/boot/grub/grub.cfg` to `wdN`, where `N` is a
+number, and add the `noide` option on the `multiboot` line,
+(which disables the old Linux disk drivers). Also change any occurence
+of `hdN` in your `/etc/fstab` to `wdN`.
+
+ /boot/grub/grub.cfg
+
+ # multiboot /boot/gnumach-1.8-486.gz root=part:2:device:hd0 console=com0
+ multiboot /boot/gnumach-1.8-486.gz root=part:2:device:wd0 console=com0 noide
+
+ /etc/fstab
+
+ #/dev/hd0s2 / ext2 defaults 0 1
+ /dev/wd0s2 / ext2 defaults 0 1
+ #/dev/hd0s1 none swap sw 0 0
+ /dev/wd0s1 none swap sw 0 0
+ #/dev/hd2 /media/cdrom0 iso9660 noauto 0 0
+ /dev/wd2 /media/cdrom0 iso9660 noauto 0 0
+
+Then reboot your machine. Before Grub appears change "compatibility"
+in your BIOS to "AHCI" (not "RAID"). If you successfully boot,
+congrats! You are now using rumpdisk! You can permanently add in the
+"noide" option to grub:
+
+ /etc/default/grub
+
+ # make sure you add this next line somewhere in the file
+ GRUB_CMDLINE_GNUMACH="noide"
+
+Now you can run `update-grub`. That way when you update the kernel,
+you can be sure to use rumpdisk.
+
+rumpdisk is normally already set up on `/dev/rumpdisk`.
+
+ $ showtrans /dev/rumpdisk
+ /hurd/rumpdisk
+
+[[!inline pages=open_issues/running_rump_for_slash raw=yes feeds=no]]
diff --git a/hurd/rump/rumpfs.mdwn b/hurd/rump/rumpfs.mdwn
new file mode 100644
index 00000000..8236defa
--- /dev/null
+++ b/hurd/rump/rumpfs.mdwn
@@ -0,0 +1,31 @@
+[[!meta copyright="Copyright © 2024 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]]."]]"""]]
+
+[[!tag stable_URL]]
+
+# What is rumpfs?
+
+`Rumpfs` would let us use the [[NetBSD
+filesystems|https://man.netbsd.org/fstab.5]], namely FFS, which is a
+journaled filesystem that supports snapshots. This is a significant
+improvement over the Hurd's current filesystem:
+[[ext2|hurd/translator/ext2fs]], which forces users to deal with
+occassional filesystem corruption. With FFS, this would no longer be
+an issue, and NetBSD developers would maintain the FFS codebase.
+
+As of October 2024, rumpfs still needs to be implemented.
+
+Another option is to create an ext3fs. We have a
+[[task|https://savannah.gnu.org/task/?5498]] for this, which mentions
+some existing experimental code.
+
+Another option is to create translators out of
+[[libguestfs|hurd/translator/libguestfs]].
diff --git a/hurd/rump/rumpnet.mdwn b/hurd/rump/rumpnet.mdwn
new file mode 100644
index 00000000..ec67d6b5
--- /dev/null
+++ b/hurd/rump/rumpnet.mdwn
@@ -0,0 +1,41 @@
+[[!meta copyright="Copyright © 2024 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]]."]]"""]]
+
+[[!tag stable_URL]]
+
+# RumpNet
+
+The Hurd is currently using an old Linux's TCP/IP stack (`pfinet`) and
+device drivers. Hurd developers are replacing Linux's old ethernet
+drivers with rumpnet's modern ethernet and wifi device drivers. While
+porting Linux's device drivers would provide better hardware support,
+we do not have the developer man-power to maintain it. Hurd
+Developers prefer rumpnet's stable API over Linux's code churn. We
+plan to replace `pfinet` with [[lwip|hurd/translator/lwip]] (or use
+rump's TCP/IP stack).
+
+In 2025, Damien Zammit make significant progress with rumpnet. He
+coded rumpnet to work with `/dev/wmX` cards, which are Intel i8254x
+Gigabit Ethernet devices. (Documentation is available at
+man.netbsd.org's [wm(4)](https://man.netbsd.org/wm.4) web
+page). Please note that these are ethernet cards not wifi cards. This
+should be easily extended to support other NICs by contributing to
+netbsd/rump's makefiles.
+
+Example usage:
+
+ $ settrans -fgap /dev/rumpnet /hurd/rumpnet
+ $ settrans -fgap /dev/wm0 /hurd/devnode -M /dev/rumpnet wm0
+ $ settrans -fgap /servers/socket/2 /hurd/pfinet -i /dev/wm0
+ $ ifup /dev/wm0
+
+
+
diff --git a/hurd/rump/rumpsound.mdwn b/hurd/rump/rumpsound.mdwn
new file mode 100644
index 00000000..f8f113e6
--- /dev/null
+++ b/hurd/rump/rumpsound.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2024 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]]."]]"""]]
+
+[[!tag stable_URL]]
+
+rumpsound lets us use audio devices on the Hurd. There is an
+experimental/basic [[hurd rump audio
+translator|https://github.com/dm0-/hurd-rump-audio]] that exists. The
+translator runs at `/dev/audio`, which is somehow similiar to a
+Solaris audio device. Any application that supports pulseaudio, can
+play through this device.
+
+Some Hurd developers, believe that pulseaudio may not be the best
+choice for supporting sound on the Hurd. Damien Zammit has several
+[[ideas|https://lists.gnu.org/archive/html/bug-hurd/2019-11/msg00086.html]]
+how to get proper sound support on the Hurd. The [[audio
+page|open_issues/audio]] has more information.
diff --git a/hurd/rump/rumpusbdisk.mdwn b/hurd/rump/rumpusbdisk.mdwn
new file mode 100644
index 00000000..8463e670
--- /dev/null
+++ b/hurd/rump/rumpusbdisk.mdwn
@@ -0,0 +1,26 @@
+[[!meta copyright="Copyright © 2024 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]]."]]"""]]
+
+[[!tag stable_URL]]
+
+# RumpUSBDisk
+
+With RumpUSBDisk, the Hurd can use a usb to SATA dongle to access a
+SATA device. StarTech offers a good quality dongle that works
+well. The Hurd could then read/write data from a SATA device with an
+fatfs or ext2 filesystem. Damien Zammit implemented [[rumpusbdisk
+already|https://lists.gnu.org/archive/html/bug-hurd/2023-07/msg00025.html]].
+However, as of October 2024, netdde seems to exhibit a bug when
+running `ifdown /dev/eth0` simultaneously to running the rumpusbdisk
+translator, due to the two devices sharing the same IRQ.
+
+
+