Subject: [bug#63527] [PATCH v5 00/11] Rumpdisk support for the Hurd, really, *really*!

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Tue, 23 May 2023 17:47:21 +0200

Hi!

So, with lots of kind help from the folks at #hurd and bug-hurd, and many
thanks to Josselin Poiret for sending their amazing "Add libc specific to Hurd
and update components" patch set (https://issues.guix.gnu.org/63641, note that
these series depend on this!) we now have rumpdisk support for the Hurd.

To actually use it instead of the gnumach builtin IDE driver, use

    (kernel-arguments '("noide"))

To test this, I'm using this patch

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl
index 463c7ee798..f3d54be79d 100644
--- a/gnu/system/examples/bare-hurd.tmpl
+++ b/gnu/system/examples/bare-hurd.tmpl
@@ -33,7 +33,7 @@
     (bootloader (bootloader-configuration
                  (bootloader grub-minimal-bootloader)
                  (targets '("/dev/sdX"))))
+    (kernel-arguments '("console=com0" "noide"))
     (file-systems (cons (file-system
                           (device (file-system-label "my-root"))
                           (mount-point "/")
--8<---------------cut here---------------end--------------->8---

build it using

--8<---------------cut here---------------start------------->8---
./pre-inst-env guix system image -t hurd-raw gnu/system/examples/bare-hurd.tmpl --keep-failed 
--8<---------------cut here---------------end--------------->8---

and run it like this

--8<---------------cut here---------------start------------->8---
guix shell qemu -- qemu-system-i386                     \
-m 4096                                                 \
--enable-kvm                                            \
--device rtl8139,netdev=net0                            \
--netdev user,id=net0,hostfwd=tcp:0.0.0.0:11022-:2222   \
--snapshot                                              \
--no-reboot                                             \
--device virtio-serial-pci                              \
--nographic                                             \
--serial mon:stdio                                      \
--hda /gnu/store/l35gz57nrkngc923f9zp9awxmq7ha1hc-disk-image
--8<---------------cut here---------------end--------------->8---

(It also still works without using "noide", we're still using that for
childhurd service where rumpdisk does not really make sense).

Enjoy!

Greetings,
Janneke

Janneke Nieuwenhuizen (11):
  gnu: Add libpciaccess-0.17.
  gnu: hurd: Update libpciaccess to 0.17.
  gnu: Add rumpkernel.
  gnu: Add hurd-shouldbeinlibc.
  gnu: parted: Support building for the Hurd.
  gnu: hurd: Add rumpkernel.
  hurd-boot: Setup pci-arbiter and rumpdisk translators.
  services: childhurd: Bump default qemu memory to 2048MB.
  system: hurd: Boot with pci.arbiter and rumpdisk.
  bootloader: grub: Use rumpdisk-style root when booting with "noide".
  gnu: gnumach: Support "noide" argument.

 doc/guix.texi                                 |  21 ++
 gnu/bootloader/grub.scm                       |  17 +-
 gnu/build/hurd-boot.scm                       |  27 +-
 gnu/local.mk                                  |   3 +
 gnu/packages/disk.scm                         |  19 +-
 gnu/packages/hurd.scm                         | 298 ++++++++++++++++--
 .../patches/gnumach-support-noide.patch       |  25 ++
 .../patches/hurd-fix-rumpdisk-build.patch     |  41 +++
 .../patches/hurd-rumpdisk-no-hd.patch         |  26 ++
 gnu/packages/xorg.scm                         |  17 +
 gnu/services/virtualization.scm               |   4 +-
 gnu/system.scm                                |  25 +-
 gnu/system/examples/bare-hurd.tmpl            |   4 +-
 13 files changed, 480 insertions(+), 47 deletions(-)
 create mode 100644 gnu/packages/patches/gnumach-support-noide.patch
 create mode 100644 gnu/packages/patches/hurd-fix-rumpdisk-build.patch
 create mode 100644 gnu/packages/patches/hurd-rumpdisk-no-hd.patch

base-commit: 88da863e0048721cef17a5de294084be1f10e7e9
-- 
2.40.1