guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

18/24: gnu: gnumach: Support "noide" argument.


From: guix-commits
Subject: 18/24: gnu: gnumach: Support "noide" argument.
Date: Thu, 13 Jul 2023 13:02:38 -0400 (EDT)

jpoiret pushed a commit to branch master
in repository guix.

commit bbfb41ed9dff845e12ebd597026729f637903ac4
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Fri May 19 14:03:47 2023 +0200

    gnu: gnumach: Support "noide" argument.
    
    * gnu/packages/patches/gnumach-support-noide.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
    * gnu/packages/hurd.scm (gnumach-headers): Use it.
    * doc/guix.texi (Bootloader Configuration): Document it.
    
    Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
---
 doc/guix.texi                                    | 24 ++++++++++++++++++++++-
 gnu/local.mk                                     |  1 +
 gnu/packages/hurd.scm                            |  6 ++++++
 gnu/packages/patches/gnumach-support-noide.patch | 25 ++++++++++++++++++++++++
 4 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 0cdc528c1c..8e4508b237 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -40078,7 +40078,29 @@ For example:
 @item @code{multiboot-arguments} (default: @code{'()})
 The list of extra command-line arguments for the multiboot-kernel.
 
-@item @code{multiboot-modules} (default: @code{'()})
+For example, when running in QEMU it can be useful to use a text-based
+console (use options @option{--nographic} @option{--serial mon:stdio}):
+
+@lisp
+'("console=com0")
+@end lisp
+
+To use the new and still experimental
+@uref{https://darnassus.sceen.net/~hurd-web/rump_kernel/, rumpdisk
+user-level disk driver} instead of GNU@tie{}Mach's in-kernel IDE driver,
+set @code{kernel-arguments} to:
+
+@lisp
+'("noide")
+@end lisp
+
+Of course, these options can be combined:
+
+@lisp
+'("console=com0" "noide")
+@end lisp
+
++@item @code{multiboot-modules} (default: @code{'()})
 The list of commands for loading Multiboot modules.  For example:
 
 @lisp
diff --git a/gnu/local.mk b/gnu/local.mk
index cf085c9c38..30dd32fdce 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1287,6 +1287,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/gnome-settings-daemon-gc.patch          \
   %D%/packages/patches/gnome-session-support-elogind.patch     \
   %D%/packages/patches/gnome-tweaks-search-paths.patch         \
+  %D%/packages/patches/gnumach-support-noide.patch             \
   %D%/packages/patches/gnupg-default-pinentry.patch            \
   %D%/packages/patches/gnupg-1-build-with-gcc10.patch          \
   %D%/packages/patches/gnutls-skip-trust-store-test.patch      \
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 419d12939f..3a9797009b 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -253,6 +253,12 @@ Hurd-minimal package which are needed for both glibc and 
GCC.")
   (package
     (inherit gnumach-headers)
     (name "gnumach")
+    (source (origin
+              (inherit (package-source gnumach-headers))
+              (patches
+               (append
+                (search-patches "gnumach-support-noide.patch")
+                (origin-patches (package-source gnumach-headers))))))
     (arguments
      (substitute-keyword-arguments (package-arguments gnumach-headers)
        ((#:make-flags flags ''())
diff --git a/gnu/packages/patches/gnumach-support-noide.patch 
b/gnu/packages/patches/gnumach-support-noide.patch
new file mode 100644
index 0000000000..723d4bcac4
--- /dev/null
+++ b/gnu/packages/patches/gnumach-support-noide.patch
@@ -0,0 +1,25 @@
+Upstream status: Taken from Debian/upsream.
+
+    
https://salsa.debian.org/hurd-team/gnumach/-/blob/master/debian/patches/90_noide.patch
+
+This supports using `noide' on the gnumach command line, disabling
+gnumach IDE support and thus forcing use of rumdisk.
+
+---
+ linux/dev/glue/block.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/linux/dev/glue/block.c
++++ b/linux/dev/glue/block.c
+@@ -207,7 +207,10 @@ int
+ blk_dev_init ()
+ {
+ #ifdef CONFIG_BLK_DEV_IDE
+-  ide_init ();
++  extern char *kernel_cmdline;
++  if (strncmp(kernel_cmdline, "noide", 5) &&
++      !strstr(kernel_cmdline, " noide"))
++    ide_init ();
+ #endif
+ #ifdef CONFIG_BLK_DEV_FD
+   floppy_init ();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]