Samuel Thibault <samuel.thiba...@gnu.org> writes: > Hello, > > Could you rebase it on your previous patch, which I have already > commited? >
Of course. I didn't realize you had commited it. Will do shortly. > Samuel > > jbra...@dismail.de, le jeu. 25 mai 2023 11:56:44 -0400, a ecrit: >> * 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. >> --- >> .../gsoc/project_ideas/driver_glue_code.mdwn | 2 +- >> hurd.mdwn | 3 +- >> hurd/rump.mdwn | 46 ++++++++++++++++ >> hurd/running/qemu.mdwn | 52 +++++++++++++++++++ >> rump_kernel.mdwn | 42 --------------- >> 5 files changed, 101 insertions(+), 44 deletions(-) >> create mode 100644 hurd/rump.mdwn >> delete mode 100644 rump_kernel.mdwn >> >> 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..a8078061 100644 >> --- a/hurd/running/qemu.mdwn >> +++ b/hurd/running/qemu.mdwn >> @@ -24,6 +24,58 @@ 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: >> + >> +Add these sources to your /etc/apt/sources.list >> + >> + deb http://deb.debian.org/debian-ports unstable main >> + deb-src http://deb.debian.org/debian unstable main >> + deb http://deb.debian.org/debian-ports unreleased main >> + >> +Now update debian to the latest: >> + >> + # 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. That is >> +the easiest way to make sure that you are using the rumpdisk. >> + >> + >> ## 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> >> -- >> 2.32.0 >> -- Joshua Branson Sent from the Hurd