Subject: [PATCH work in progress] system: examples: Update Beaglebone Black system definition.

From: "pelzflorian (Florian Pelz)" <[email-masked]>
Date: Mon, 13 Feb 2023 13:19:04 +0100

I am still working on this; just sending the current state of things,
because I won't finish soon and if someone has comments or if someone
finds it useful.

This *fails to boot* after invoking 'swapon' on an external USB SSD's swap
partition and running 'guix system reconfigure'.  Additionally, currently
Inkscape does not build (see bug#60121) and had to be cut out of the
dependency graph by, in the local guix checkout, removing the 'bluez' input of
'pulseaudio' and removing the 'ibus-minimal' input of 'sdl2'.  Also 'fakeroot'
does not build unless downgraded to version 1.28 (see bug#61206 maybe).

Note: After installing u-boot-beaglebone-black-bootloader onto /dev/mmcblk1
the Beaglebone Black cannot boot anymore.  Don't install it there.  Use a
'guix system image' or another bootloader target and don't touch the
bootloader that was there before.  TODO Bisect which change broke this.

Reported by Frank Terbeck
<https://lists.gnu.org/archive/html/help-guix/2022-07/msg00165.html>.

* gnu/system/examples/beaglebone-black.tmpl
(initrd-modules): None are needed anymore; pass the empty list.
(kernel): Use a more specific kernel.
(packages): Specify more useful packages.
(services): Add NTP service.  For agetty, use ttyS0, which is the
UART port now.
---
I dedicate this patch to the public domain as per the Creative Commons Zero.

 gnu/system/examples/beaglebone-black.tmpl | 42 +++++++++++++++--------
 1 file changed, 27 insertions(+), 15 deletions(-)

diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl
index 40d0a76a37..cbb5f2ef14 100644
--- a/gnu/system/examples/beaglebone-black.tmpl
+++ b/gnu/system/examples/beaglebone-black.tmpl
@@ -4,7 +4,7 @@
 
 (use-modules (gnu) (gnu bootloader u-boot))
 (use-service-modules networking)
-(use-package-modules bootloaders screen ssh)
+(use-package-modules certs linux)
 
 (operating-system
   (host-name "komputilo")
@@ -17,8 +17,15 @@
                (bootloader u-boot-beaglebone-black-bootloader)
                (targets '("/dev/mmcblk1"))))
 
-  ;; This module is required to mount the SD card.
-  (initrd-modules (cons "omap_hsmmc" %base-initrd-modules))
+  ;; This less generic kernel image also contains the
+  ;; needed dtb files in its lib/dtbs subdirectory.
+  (kernel linux-libre-arm-omap2plus)
+
+  ;; TODO Try to fix HDMI, see https://elinux.org/Beagleboard:BeagleBoneBlack_HDMI
+  ;; (kernel-arguments '(""))
+
+  ;; No additional drivers are required.
+  (initrd-modules '())
 
   (file-systems (cons (file-system
                         (device (file-system-label "my-root"))
@@ -43,15 +50,20 @@
                %base-user-accounts))
 
   ;; Globally-installed packages.
-  (packages (append (list screen openssh) %base-packages))
-
-  (services (append (list (service dhcp-client-service-type)
-                          ;; mingetty does not work on serial lines.
-                          ;; Use agetty with board-specific serial parameters.
-                          (agetty-service
-                           (agetty-configuration
-                            (extra-options '("-L"))
-                            (baud-rate "115200")
-                            (term "vt100")
-                            (tty "ttyO0"))))
-                  %base-services)))
+  (packages (append (list nss-certs) %base-packages))
+
+  (services (append (list
+                     ;; Ethernet cannot be plugged in after booting,
+                     ;; other than that, networking works OK with this:
+                     (service dhcp-client-service-type)
+                     ;; For receiving the right time.
+                     (service ntp-service-type)
+                     ;; mingetty does not work on serial lines.
+                     ;; Use agetty with board-specific serial parameters.
+                     (agetty-service
+                      (agetty-configuration
+                       (extra-options '("-L"))
+                       (baud-rate "115200")
+                       (term "vt100")
+                       (tty "ttyS0"))))
+                    %base-services)))

base-commit: 0890cb97473f1ec8d03cec2347f63deb546d2231
-- 
2.39.1