aboutsummaryrefslogtreecommitdiff
;; -*- mode: scheme; -*-
;; This is an operating-system configuration template of a
;; 64-bit minimal system for a Raspberry Pi with local storage.

;; It neither installs firmware nor device-tree files for the Raspberry Pi.
;; It just assumes them to be existing in boot/efi in the same way that some
;; UEFI firmware with ACPI data is usually assumed to be existing on PCs.

;; It expects the boot-partition to be mounted as boot/efi in the same way
;; as it is usually expeted on PCs with UEFI firmware.

(use-modules (gnu)
             (gnu artwork)
             (gnu system nss))
(use-service-modules admin
                     avahi
                     networking
                     ssh)
(use-package-modules linux
                     raspberry-pi
                     ssh)

(define-public raspberry-pi-64
  (operating-system
    (host-name "raspberrypi-guix")
    (timezone "Europe/Berlin")
    (bootloader (bootloader-configuration
                 (bootloader grub-efi-bootloader-chain-raspi-64)
                 (targets (list "/boot/efi"))
                 (theme (grub-theme
                         (resolution '(1920 . 1080))
                         (image (file-append
                                 %artwork-repository
                                 "/grub/GuixSD-fully-black-16-9.svg"))))))
    (kernel (customize-linux #:linux linux-libre-arm64-generic
                             ;; It is possible to use a specific defconfig
                             ;; file, for example the "bcmrpi3_defconfig" with
                             ;; the variable shown below.  Unfortunately the
                             ;; kernel built from the linux-libre sources with
                             ;; this defconfig file does not boot.
                             ;;#:extra-version "gnu-bcmrpi3"
                             ;;#:defconfig %bcmrpi3-defconfig
                             ))
    (initrd-modules '())
    (file-systems (cons* (file-system
                           (mount-point "/")
                           (type "ext4")
                           (device (file-system-label "Guix")))
                         (file-system
                           (mount-point "/boot/efi")
                           (type "vfat")
                           (device (file-system-label "EFI")))
                         %base-file-systems))
    (swap-devices (list (swap-space
                         (target "/run/swapfile"))))
    (users (cons* (user-account
                   (name "pi")
                   (group "users")
                   (supplementary-groups '("wheel" "netdev" "audio" "video"))
                   (home-directory "/home/pi"))
                  %base-user-accounts))
    (packages (cons* openssh
                     %base-packages))
    (services (cons* (service avahi-service-type)
                     (service dhcp-client-service-type)
                     (service ntp-service-type)
                     (service openssh-service-type
                              (openssh-configuration
                               (x11-forwarding? #t)))
                     %base-services))
    (name-service-switch %mdns-host-lookup-nss)))

raspberry-pi-64
rass.scm?id=99b2f51dc251431f11c73b6dc630df0bc61ac723'>services: cuirass: Remove the default database host....* gnu/services/cuirass.scm (%cuirass-default-database): Remove the default host. Mathieu Othacehe 2021-11-30services: Accept <inferior-package>s in lieu of <package>s....* gnu/services/authentication.scm (fprintd-configuration) (nslcd-configuration): Substitute file-like objects for package ones. * gnu/services/cgit.scm (cgit-configuration, opaque-cgit-configuration): Likewise. * gnu/services/cups.scm (package-list?, cups-configuration): Likewise. * gnu/services/dns.scm (verify-knot-configuration) (ddclient-configuration): Likewise. * gnu/services/docker.scm (docker-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/getmail.scm (getmail-configuration): Likewise. * gnu/services/mail.scm (dovecot-configuration) (opaque-dovecot-configuration): Likewise. * gnu/services/messaging.scm (prosody-configuration) (opaque-prosody-configuration): Likewise. * gnu/services/monitoring.scm (zabbix-server-configuration) (zabbix-agent-configuration): Likewise. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-configuration): Likewise. * gnu/services/virtualization.scm (libvirt-configuration) (qemu-guest-agent-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise. Tobias Geerinckx-Rice 2021-08-13services: cuirass: Reverse the no-publish logic....This is a follow-up of d128c6fd33f46ec4e2d0ef352d20a858c377bf6f. * gnu/services/cuirass.scm (<cuirass-remote-server-configuration>) [no-publish?]: Rename it to ... [publish?]: ... this new field. (cuirass-shepherd-service): Adapt it. * doc/guix.texi (Cuirass remote building): Document it. Mathieu Othacehe 2021-08-12services: cuirass: Fix the substitute-urls argument....This is a follow-up of: 23b5b168ae95aed04cbaa0598449361af3423688. * gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Fix it. Mathieu Othacehe 2021-08-12services: cuirass: Add a substitute-urls argument....* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>): Add a substitute-urls field. (cuirass-remote-worker-shepherd-service): Honor it. * doc/guix.texi (Cuirass remote building): Document it. Mathieu Othacehe 2021-08-12services: cuirass: Add a no-publish argument....* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>): Add a no-publish? field. (cuirass-shepherd-service): Honor it. * doc/guix.texi (Cuirass remote building): Document it. Mathieu Othacehe 2021-06-01services: cuirass: Do not export record type descriptors....* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>) (<cuirass-configuration>, <cuirass-remote-worker-configuration>): Do not export. Ludovic Courtès 2021-06-01services: cuirass: Create the profile and GC root directory....* gnu/services/cuirass.scm (cuirass-activation): Create /var/guix/profiles/per-user/cuirass/cuirass or similar. Ludovic Courtès 2021-04-14services: cuirass: Use "/tmp" database host....This is a follow-up of c311147bd16aa0e5746d9cbf31502f5fd61e470c. * gnu/services/cuirass.scm (%cuirass-default-database): Use "/tmp" database host. Mathieu Othacehe 2021-03-23services: cuirass: Set default port values....* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>, <cuirass-configuration>): Set default port values. Mathieu Othacehe 2021-03-23services: cuirass: Adapt to Cuirass 1.0....* gnu/services/cuirass.scm (cuirass-shepherd-service, cuirass-remote-worker-shepherd-service): Adapt to Cuirass 1.0. Mathieu Othacehe 2021-03-10services: cuirass: Remove simple cuirass configuration....The Cuirass configuration has been simplified so that this is no longer needed. * gnu/services/cuirass.scm (<build-manifest>, <simple-cuirass-configuration>, simple-cuirass-configuration->specs): Remove them. Mathieu Othacehe 2021-03-10services: cuirass: Do not create the database directory....Fixes: <https://issues.guix.gnu.org/46683>. * gnu/services/cuirass.scm (cuirass-activation): Since the PostgreSQL switch, it is no longer needed to create the database directory. Mathieu Othacehe 2021-02-23services: cuirass: Fix services requirements....* gnu/services/cuirass.scm (cuirass-shepherd-service): Add "postgres-roles" to cuirass requirements. Set cuirass-web requirements to cuirass only. Remove "guix-daemon" and "networking" from cuirass-remote-server requirements as are already required by cuirass. Mathieu Othacehe 2021-02-23services: cuirass: Improve simple-cuirass-services....Instead of returning multiple services in simple-cuirass-services, rely on the instantiate-missing-services procedure to instantiate postgresql and postgresql-role-service-type when missing. Turn simple-cuirass-services procedure into simple-cuirass-configuration->specs, that takes a simple-cuirass-configuration record and returns a Cuirass specification. Suggested-by: Ludovic Courtès <ludo@gnu.org> * gnu/services/cuirass.scm (%default-cuirass-config): Remove it. (simple-cuirass-services): Rename it to ... (simple-cuirass-configuration->specs): ... this procedure. * gnu/tests/cuirass.scm (cuirass-services): Remove postgresql and postgresql-role services that are automatically instantiated. (simple-cuirass-service): New variable. (%cuirass-simple-test): Adapt it to use simple-cuirass-configuration->specs instead of simple-cuirass-services. * doc/guix.texi (Simple Cuirass): Update it. Mathieu Othacehe 2021-02-22services: cuirass: Instantiate postgresql service....* gnu/services/cuirass.scm (cuirass-service-type): Instantiate postgresql service when missing. Mathieu Othacehe 2021-02-22services: cuirass: Add parameters support....* gnu/services/cuirass.scm (<cuirass-configuration>)[parameters]: New field. [zabbix-uri]: Remove it. (cuirass-shepherd-service): Honor it. Mathieu Othacehe 2021-02-19services: cuirass: Add "simple-cuirass-services"....* gnu/services/cuirass.scm (<build-manifest>, <simple-cuirass-configuration>): New records. (build-manifest, build-manifest?, simple-cuirass-configuration, simple-cuirass-configuration?, simple-cuirass-services): New procedures. (%default-cuirass-config): New variable. * gnu/tests/cuirass.scm (%cuirass-simple-test): New variable. * doc/guix.texi (Continuous Integration): Document it. Mathieu Othacehe 2021-02-12services: cuirass: Add server argument for the remote-worker....* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>)[server]: New field. (cuirass-remote-worker-shepherd-service): Honor it. Mathieu Othacehe 2021-02-09services: cuirass: Move zabbix argument to the web process....This is a follow-up of 703e5c92eeb38d86455c2b1cace5cad9fc08b349. * gnu/services/cuirass.scm (cuirass-shepherd-service): Move "zabbix-uri" argument to the web process. Mathieu Othacehe 2021-02-08services: cuirass: Add Zabbix support....* gnu/services/cuirass.scm (<cuirass-configuration>)[zabbix-uri]: New field. (cuirass-shepherd-service): Honor it. Mathieu Othacehe 2021-01-28services: cuirass: Create remote-server cache directory....* gnu/services/cuirass.scm (cuirass-activation): Create remote-server cache directory if needed. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe 2021-01-28services: cuirass: Fix syntax error....This is a follow-up of 189e62fa69049538884077155cc70cac43260118. * gnu/services/cuirass.scm (<cuirass-remote-server-configuration>): Fix syntax. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe 2021-01-28services: cuirass: Add log-file support....* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Add log-file support. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe 2021-01-28services: cuirass: Fix workers argument....* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Fix workers arguments. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe 2021-01-28services: cuirass: Add systems argument....* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>)[systems]: New field. (cuirass-remote-worker-shepherd-service): Honor it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe 2021-01-28services: cuirass: Add remote build support.Mathieu Othacehe 2021-01-28service: cuirass: Update it.Mathieu Othacehe 2020-12-08services: cuirass: Add queue-size option....* gnu/services/cuirass.scm (<cuirass-configuration>): Add "queue-size" field. (cuirass-shepherd-service): Honor it. * doc/guix.texi (Continuous Integration): Document it. Mathieu Othacehe