101 lines
3 KiB
Scheme
101 lines
3 KiB
Scheme
(define-module (hosts oswald system)
|
|
#:use-module (gnu)
|
|
#:use-module (gnu bootloader u-boot)
|
|
#:use-module (gnu packages bootloaders)
|
|
#:use-module (gnu packages certs)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (gnu packages rsync)
|
|
#:use-module (gnu services admin)
|
|
#:use-module (gnu services networking)
|
|
#:use-module (gnu services ssh)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix utils)
|
|
#:use-module (srfi srfi-26)
|
|
#:use-module (services chrony))
|
|
|
|
;; Use a lower DDR frequency to avoid random segfaults.
|
|
;; See <https://forum.pine64.org/showthread.php?tid=11209>.
|
|
(define u-boot-rock64-rk3328/666
|
|
(package
|
|
(inherit u-boot-rock64-rk3328)
|
|
(arguments
|
|
(substitute-keyword-arguments (package-arguments u-boot-rock64-rk3328)
|
|
((#:phases phases)
|
|
#~(modify-phases #$phases
|
|
(add-after 'unpack 'change-ddr-clock
|
|
(lambda _
|
|
(substitute* "arch/arm/dts/rk3328-rock64-u-boot.dtsi"
|
|
(("rk3328-sdram-lpddr3-1600.dtsi") "rk3328-sdram-lpddr3-666.dtsi"))))))))))
|
|
|
|
(define chrony-config "\
|
|
pool pool.ntp.org iburst
|
|
makestep 1.0 3
|
|
driftfile /var/lib/chrony/drift
|
|
")
|
|
|
|
(operating-system
|
|
(host-name "oswald")
|
|
(timezone "Europe/Ljubljana")
|
|
(locale "en_US.utf8")
|
|
|
|
(kernel linux-libre-arm64-generic)
|
|
(kernel-arguments '("mitigations=auto"))
|
|
(initrd-modules '())
|
|
|
|
(bootloader
|
|
(bootloader-configuration
|
|
(bootloader
|
|
(bootloader
|
|
(inherit u-boot-rock64-rk3328-bootloader)
|
|
(package u-boot-rock64-rk3328/666)))
|
|
(targets '("/dev/disk/by-id/mmc-A3A442_0xe236282f"))))
|
|
|
|
(file-systems
|
|
(cons*
|
|
(file-system
|
|
(mount-point "/")
|
|
(type "ext4")
|
|
(device (uuid "75c144d6-1693-4245-8375-b678d0c8ba9b")))
|
|
%base-file-systems))
|
|
|
|
(swap-devices (list (swap-space (target "/swap"))))
|
|
|
|
(users
|
|
(cons*
|
|
(user-account
|
|
(name "timotej")
|
|
(comment "Timotej Lazar")
|
|
(group "users")
|
|
(supplementary-groups '("wheel" "netdev" "kvm"))
|
|
(home-directory "/home/timotej"))
|
|
%base-user-accounts))
|
|
|
|
(packages
|
|
(cons* nss-certs rsync %base-packages))
|
|
|
|
(services
|
|
(cons*
|
|
(service static-networking-service-type
|
|
(list (static-networking
|
|
(addresses (list (network-address
|
|
(device "eth0")
|
|
(value "192.168.0.3/24"))))
|
|
(routes (list (network-route
|
|
(destination "default")
|
|
(gateway "192.168.0.1"))))
|
|
(name-servers '("193.2.1.66" "193.2.1.72")))))
|
|
|
|
(service chrony-service-type
|
|
(chrony-configuration
|
|
(config-file (plain-file "chrony.conf" chrony-config))
|
|
(syscall-filter "1")))
|
|
|
|
(service openssh-service-type
|
|
(openssh-configuration
|
|
(password-authentication? #f)))
|
|
|
|
(service unattended-upgrade-service-type
|
|
(unattended-upgrade-configuration
|
|
(channels #~(load "/run/current-system/channels.scm"))))
|
|
|
|
%base-services)))
|