Subject: [PATCH v4 50/58] system: examples: Add bare-hurd64.tmpl.

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Sun, 24 Nov 2024 08:55:13 +0100

* gnu/system/examples/bare-hurd.tmpl: Update comments.
* gnu/system/examples/bare-hurd64.tmpl: New file.

Change-Id: I8d26afd19afaa8fb3558948b50b0efdc0f83f29c
---
 gnu/system/examples/bare-hurd.tmpl   | 21 +++++----
 gnu/system/examples/bare-hurd64.tmpl | 70 ++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+), 9 deletions(-)
 create mode 100644 gnu/system/examples/bare-hurd64.tmpl

diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl
index 68c6d3c166..9bfa776769 100644
--- a/gnu/system/examples/bare-hurd.tmpl
+++ b/gnu/system/examples/bare-hurd.tmpl
@@ -3,23 +3,26 @@
 ;; This is an operating system configuration template
 ;; for a "bare bones" QEMU setup, with no X11 display server.
 
-;; To build a disk image for a virtual machine, do
+;; To build a disk image for a virtual machine, do:
 ;;
-;;     ./pre-inst-env guix system image --image-type=hurd-raw \
+;;     ./pre-inst-env guix system image --image-type=hurd-qcow2 \
 ;;         gnu/system/examples/bare-hurd.tmpl
 ;;
-;; You may run it like so
+;; You may run it like so:
 ;;
-;;     guix shell qemu -- qemu-system-i386 -enable-kvm -m 2048 \
-;;      -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222 \
-;;      -snapshot -hda <the-image>
+;;     guix shell qemu -- qemu-system-i386 -m 2048                \
+;;       --enable-kvm                                             \
+;;       --device e1000,netdev=net0                               \
+;;       --netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222  \
+;;       --snapshot
+;;       --hda /gnu/store/...-disk-image
 ;;
-;; and use it like
+;; and use it like:
 ;;
 ;;     ssh -p 10022 root@localhost
 ;;     guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)'
 ;;
-;; or even (if you use --image-size=3G)
+;; or even, if you build the image with at least --image-size=3G:
 ;;
 ;;     guix build hello
 
@@ -34,7 +37,7 @@
                  (bootloader grub-minimal-bootloader)
                  (targets '("/dev/sdX"))))
     (file-systems (cons (file-system
-                          (device (file-system-label "my-root"))
+                          (device (file-system-label "hurd"))
                           (mount-point "/")
                           (type "ext2"))
                         %base-file-systems))
diff --git a/gnu/system/examples/bare-hurd64.tmpl b/gnu/system/examples/bare-hurd64.tmpl
new file mode 100644
index 0000000000..89811e458a
--- /dev/null
+++ b/gnu/system/examples/bare-hurd64.tmpl
@@ -0,0 +1,70 @@
+;; -*-scheme-*-
+
+;; This is an operating system configuration template
+;; for a "bare bones" QEMU setup, with no X11 display server.
+
+;; To build a disk image for a virtual machine, do:
+;;
+;;     ./pre-inst-env guix system image --image-type=hurd64-qcow2 \
+;;         gnu/system/examples/bare-hurd64.tmpl
+;;
+;; You may run it like so:
+;;
+;;     guix shell qemu@7 -- qemu-system-x86_64 -m 2048            \
+;;       --machine q35                                            \
+;;       --enable-kvm                                             \
+;;       --device e1000,netdev=net0                               \
+;;       --netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222  \
+;;       --snapshot
+;;       --hda /gnu/store/...-disk-image
+;;
+;; and use it like:
+;;
+;;     ssh -p 10022 root@localhost
+;;     guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)'
+;;
+;; or even, if you build the image with at least --image-size=3G:
+;;
+;;     guix build hello
+
+(use-modules (gnu) (gnu system hurd) (guix utils))
+(use-service-modules ssh)
+(use-package-modules ssh)
+
+(define %hurd64-os
+  (operating-system
+    (inherit %hurd64-default-operating-system)
+    (bootloader (bootloader-configuration
+                 (bootloader grub-minimal-bootloader)
+                 (targets '("/dev/sdX"))))
+    (kernel-arguments '("noide")) ;use rumpdisk
+    (file-systems (cons (file-system
+                          (device (file-system-label "hurd"))
+                          (mount-point "/")
+                          (type "ext2"))
+                        %base-file-systems))
+    (host-name "guixygnu64")
+    (timezone "Europe/Amsterdam")
+    (users (cons (user-account
+                  (name "guix")
+                  (comment "Anonymous Hurd Hacker")
+                  (group "users")
+                  (supplementary-groups '("wheel")))
+                 %base-user-accounts))
+    (packages (cons openssh-sans-x %base-packages/hurd))
+    (services (cons (service openssh-service-type
+                             (openssh-configuration
+                              (openssh openssh-sans-x)
+                              (port-number 2222)
+                              (permit-root-login #t)
+                              (allow-empty-passwords? #t)
+                              (password-authentication? #t)))
+                    ;; For installing on a real (non-QEMU) machine, use:
+                    ;; (static-networking-service-type
+                    ;;   (list %loopback-static-networking
+                    ;;        (static-networking
+                    ;;         ...)))
+                    ;; %base-services/hurd
+                    %base-services+qemu-networking/hurd))))
+
+%hurd64-os
-- 
2.46.0