Subject: [PATCH v2 3/3] DRAFT system: hurd: Boot with pci.arbiter and rumpdisk.

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Tue, 16 May 2023 15:48:46 +0200

XXX This hangs at

    start pci.arbiter:

* gnu/system.scm (hurd-multiboot-modules): Add commands for pci.arbiter and
rumpdisk.
---
 gnu/system.scm | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index 354f58f55b..12e646ad51 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2020, 2021 Brice Waegeneire <[email-masked]>
 ;;; Copyright © 2020 Florian Pelz <[email-masked]>
 ;;; Copyright © 2020, 2022 Maxim Cournoyer <[email-masked]>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <[email-masked]>
 ;;; Copyright © 2020, 2022 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2021 Maxime Devos <[email-masked]>
 ;;; Copyright © 2021 raid5atemyhomework <[email-masked]>
@@ -1486,16 +1486,28 @@ (define (operating-system-multiboot-modules os)
 
 (define (hurd-multiboot-modules os)
   (let* ((hurd (operating-system-hurd os))
+         (pci-arbiter-command
+          (list (file-append hurd "/hurd/pci-arbiter.static")
+                "pci.arbiter"
+                "--host-priv-port='${host-port}'"
+                "--device-master-port='${device-port}'"
+                "--next-task='${disk-task}'"
+                "'$(pci-task=task-create)'"
+                "'$(task-resume)'"))
+         (rumpdisk-command
+          (list (file-append hurd "/hurd/rumpdisk.static")
+                "rumpdisk"
+                "--next-task='${fs-task}'"
+                "'$(disk-task=task-create)'"))
          (root-file-system-command
           (list (file-append hurd "/hurd/ext2fs.static")
                 "ext2fs"
                 "--multiboot-command-line='${kernel-command-line}'"
-                "--host-priv-port='${host-port}'"
-                "--device-master-port='${device-port}'"
                 "--exec-server-task='${exec-task}'"
                 "--store-type=typed"
                 "--x-xattr-translator-records"
-                "'${root}'" "'$(task-create)'" "'$(task-resume)'"))
+                "'${root}'"
+                "'$(fs-task=task-create)'"))
          (target (%current-target-system))
          (libc (if target
                    (with-parameters ((%current-target-system #f))
@@ -1512,7 +1524,10 @@ (define (hurd-multiboot-modules os)
           ;;       (file-append hurd "/hurd/exec") "'$(exec-task=task-create)'")
           (list (file-append hurd "/hurd/exec.static") "exec"
                 "'$(exec-task=task-create)'")))
-    (list root-file-system-command exec-server-command)))
+    (list pci-arbiter-command
+          rumpdisk-command
+          root-file-system-command
+          exec-server-command)))
 
 (define* (operating-system-boot-parameters os root-device
                                            #:key system-kernel-arguments?)
-- 
2.39.2