diff mbox

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

Message ID cover.1684855847.git.janneke@gnu.org
State New
Headers show

Commit Message

Janneke Nieuwenhuizen May 23, 2023, 3:47 p.m. UTC
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---

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

Comments

Ludovic Courtès May 24, 2023, 9:08 a.m. UTC | #1
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

> 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.

Yay!! 🎉

> To actually use it instead of the gnumach builtin IDE driver, use
>
>     (kernel-arguments '("noide"))

Should we build Mach without this driver, or otherwise make “noide” the
default?  (We can answer that later, no rush.)

> guix shell qemu -- qemu-system-i386                     \
> -m 4096                                                 \
> --enable-kvm                                            \
> --device rtl8139,netdev=net0                            \

Once we have netdde, we can probably drop that line and use the default
NIC (e1000, IIRC).

Is “-m 4096” still needed?  You mentioned this as a workaround
initially, IIRC?

Ludo’.
Janneke Nieuwenhuizen May 24, 2023, 9:15 a.m. UTC | #2
Ludovic Courtès writes:

Hi Ludo!

> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> 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.
>
> Yay!! 🎉

Yes \o/

>> To actually use it instead of the gnumach builtin IDE driver, use
>>
>>     (kernel-arguments '("noide"))
>
> Should we build Mach without this driver, or otherwise make “noide” the
> default?  (We can answer that later, no rush.)

Possibly, I would suggest for now to follow upstream, IIUC, rumpdisk is
still somewhat experimental (and slooowww).

I expect upstream/bothstream to drop the "noide" patch at some point,
and possibly eradicate the IDE driver from gnumach altogether?

>> guix shell qemu -- qemu-system-i386                     \
>> -m 4096                                                 \
>> --enable-kvm                                            \
>> --device rtl8139,netdev=net0                            \
>
> Once we have netdde, we can probably drop that line and use the default
> NIC (e1000, IIRC).
>
> Is “-m 4096” still needed?  You mentioned this as a workaround
> initially, IIRC?

-m 2048 should be enoug, it seems boot with -m 1200; but yea, we do _do_
 need more than 1024 (or 512 even)...

Greetings,
Janneke
Ludovic Courtès May 24, 2023, 9:37 a.m. UTC | #3
I made cosmetic suggestions (as I usually do :-)) but the whole patch
series looks great to me, thank you!

Ludo’.
Janneke Nieuwenhuizen May 24, 2023, 9:46 a.m. UTC | #4
Ludovic Courtès writes:

> I made cosmetic suggestions (as I usually do :-))

Yes, and spotted typos/buglets), so thank you for all that!

> but the whole patch
> series looks great to me, thank you!

\o/

So, good to go after https://issues.guix.gnu.org/63641 merges!
diff mbox

Patch

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---