aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/examples/raspberry-pi-64.tmpl<2020-03-08services: cuirass: Allow passing extra command line options....This is so that the options supported by the service configuration don't have to always be changed. Generally though all options should be explicitly supported and documented, so this is mostly to facilitate experimentation. * gnu/services/cuirass.scm (<cuirass-configuration>): Add an extra-options field. (cuirass-shepherd-service): Pass the extra options to the shepherd servvices. * doc/guix.texi (Continuous Integration): Document it. Christopher Baines ef='#n14'>14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
;; -*- 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