summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbranso@dismail.de <jbranso@dismail.de>2023-05-24 14:43:04 -0400
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-05-25 01:45:52 +0200
commit3982e324b84dc3efbdc52e8506c8b00e0940c3df (patch)
treeffc5f11c8b8914ba48511f7e3cdb162d439a0fdb
parent020a827253b88b7e8938739b3ae0ee1d6d550546 (diff)
Updated the information about the rump kernels, and included a guide on how to use them on the Debian qemu image.
* community/gsoc/project_ideas/driver_glue_code.mdwn: changed rump kernel link. * hurd.mwdn: added a link to hurd/rump.mdwn. * hurd/rump.mdwn: new file. * rump_kernel.mwdn: deleted file. Message-Id: <20230524184304.3484-1-jbranso@dismail.de>
-rw-r--r--community/gsoc/project_ideas/driver_glue_code.mdwn2
-rw-r--r--hurd.mdwn3
-rw-r--r--hurd/rump.mdwn46
-rw-r--r--hurd/running/qemu.mdwn43
-rw-r--r--rump_kernel.mdwn42
5 files changed, 92 insertions, 44 deletions
diff --git a/community/gsoc/project_ideas/driver_glue_code.mdwn b/community/gsoc/project_ideas/driver_glue_code.mdwn
index db1816c9..3d0a9192 100644
--- a/community/gsoc/project_ideas/driver_glue_code.mdwn
+++ b/community/gsoc/project_ideas/driver_glue_code.mdwn
@@ -27,7 +27,7 @@ This is [[!GNU_Savannah_task 5488]].
[[open issues/user-space device drivers]].
[[open issues/device drivers and io systems]].
-The most promising approach for getting newer drivers seems to be the [[Rump_kernel]]:
+The most promising approach for getting newer drivers seems to be the [[rump kernel|hurd/rump]]:
it already does the hard work of providing an environment
where the foreign drivers can run,
and offers the additional benefit of being externally maintained.
diff --git a/hurd.mdwn b/hurd.mdwn
index ff30f48b..8365740f 100644
--- a/hurd.mdwn
+++ b/hurd.mdwn
@@ -62,7 +62,8 @@ in the *unstable* branch of the Debian archive.
* [[running/Distrib]] -- Distributions
* [[Public_Hurd_Boxen]]
* [[Neighborhurd]]s and [[Subhurd]]s
-* [[DDE]] -- Device Driver Environment
+* [[DDE]] -- Old Device Driver Environment
+* [[RUMP]] -- Modern Device Drivers
## Common Problems
diff --git a/hurd/rump.mdwn b/hurd/rump.mdwn
new file mode 100644
index 00000000..6e4a00db
--- /dev/null
+++ b/hurd/rump.mdwn
@@ -0,0 +1,46 @@
+[[!meta copyright="Copyright © 2009, 2010, 2011 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]]
+
+ * [[community/gsoc/project ideas/driver glue code]]
+
+ * [[open issues/user-space device drivers]]
+
+ * [[open issues/device drivers and io systems]]
+
+---
+
+The rump kernels provide existing real world drivers from netbsd.
+Since [[DDE]] no longer seems like a promising approach to get drivers
+for the Hurd, it appears that rump kernels are the best alternative.
+It already does the hard work of providing an environment where the
+foreign drivers can run, and offers the additional benefit of being
+externally maintained. Rump also offers the necessary facilities for
+running all drivers in separate userspace processes, which is more
+desirable than drivers running in the microkernel.
+
+A rump kernel is a minimal and portable NetBSD kernel running in
+userspace. Rump kernels provide drivers for modern hard drives, sound
+cards, usb support, and a TCP/IP stack. Instead of re-inventing and
+maintaining drivers ourselves, we can re-use the existing NetBSD
+drivers.
+
+Hurd developers have enabled experimental support for modern hard
+drives with a rump kernel. We call it rumpdisk, and you can try it in
+the [[Debian GNU/Hurd image|hurd/running/qemu]].
+
+As of May 2023, Hurd users are having good success with it in qemu
+environments and some are using it on real hardware!
+
+We do hope to use rump kernels for usb support, sound support (this
+was working at some point), and possibly a new TCP/IP stack, but work
+has not completed on those projects.
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index 24e7fdea..8ebd32e2 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -24,6 +24,49 @@ You can use the following images to give the Hurd a try.
[[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]]
+#### Trying out rumpdisk
+
+[[Rump kernels|hurd/rump]] provide new modern drivers for the Hurd.
+We refer to rumpdisk as a rump kernel that provides drivers for modern
+hard drives, SSDs, etc. The Rump kernels' integration into the Hurd
+are still somewhat experimental, but they seem to work fairly well on
+bleeding edge Debian.
+
+Once you have your latest qemu Debian GNU/Hurd image running, then you
+can try the rumpdisk (be sure to pass "-m 2GB" or more). First,
+upgrade to the bleeding edge Debian GNU/Hurd:
+
+ # apt-get update
+ # apt-get dist-upgrade
+
+Now test to see if the rump kernel works before you make the change
+permanent. Manually tweak your /boot/grub/grub.cfg like so:
+
+ # 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
+
+and your /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
+
+Now you can poweroff your machine, reboot, and start using the
+rumpdisk! You can make these changes permanent by tweaking
+/etc/default/grub and telling it to use rumpdisk:
+
+ GRUB_CMDLINE_GNUMACH="noide"
+
+Then update your grub:
+
+ # update-grub
+
+Check that "noide" does appear in your /boot/grub/grub.cfg.
+
+
## Arch Hurd Live CD
[[!inline pages=hurd/running/live_cd raw=yes feeds=no]]
diff --git a/rump_kernel.mdwn b/rump_kernel.mdwn
deleted file mode 100644
index 7f7d7cc5..00000000
--- a/rump_kernel.mdwn
+++ /dev/null
@@ -1,42 +0,0 @@
-[[!meta copyright="Copyright © 2009, 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]]."]]"""]]
-
-
-# Discussion
-
- The rump kernels provide existing real world drivers from netbsd. Since DDE no longer seems like a promising approach to get drivers for the Hurd, it appears that rump kernels are the best alternative. It already does the hard work of providing an environment where the foreign drivers can run, and offers the additional benefit of being externally maintained. Rump also offers the necessary facilities for running all drivers in separate userspace processes, which is more desirable than drivers running in the microkernel.
-
-
- * [[community/gsoc/project ideas/driver glue code]]
-
- * [[open issues/user-space device drivers]]
-
- * [[open issues/device drivers and io systems]]
-
----
-
-# Documentation
-
- * <http://www.fixup.fi/misc/usenix-login-2015/login_oct15_02_kantee.pdf>
-
- This is an an opinion paper that explains why operating systems need compartmentalized kernel drivers.
-
- * <https://github.com/rumpkernel/wiki/wiki/Tutorial:-Getting-started>
-
- A tutorial introduction for those interested in using and deploying rump kernels.
-
- * <https://core.ac.uk/display/41816390>
-
- "User space approach to audio device driving on UNIX-like systems" by Robert Millan Hernandez.
-
-
-# Source Code
-
- * <https://github.com/rumpkernel>