diff options
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/examples/yggdrasil.tmpl | 60 | ||||
-rw-r--r-- | gnu/system/image.scm | 24 | ||||
-rw-r--r-- | gnu/system/uuid.scm | 8 | ||||
-rw-r--r-- | gnu/system/vm.scm | 5 |
4 files changed, 90 insertions, 7 deletions
diff --git a/gnu/system/examples/yggdrasil.tmpl b/gnu/system/examples/yggdrasil.tmpl new file mode 100644 index 0000000000..be80bf4de9 --- /dev/null +++ b/gnu/system/examples/yggdrasil.tmpl @@ -0,0 +1,60 @@ +;; This is an operating system configuration template +;; for a "bare bones" setup, with no X11 display server. + +(use-modules (gnu)) +(use-service-modules networking ssh) +(use-package-modules admin curl networking screen) + +(operating-system + (host-name "ruby-guard-5545") + (timezone "Europe/Budapest") + (locale "en_US.utf8") + + ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the + ;; target hard disk, and "my-root" is the label of the target + ;; root file system. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "/dev/sdX"))) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + ;; adding her to the yggdrasil group means she can use + ;; yggdrasilctl to modify the configuration + (supplementary-groups '("wheel" "yggdrasil"))) + %base-user-accounts)) + + ;; Globally-installed packages. + (packages (cons* screen curl %base-packages)) + + ;; Add services to the baseline: a DHCP client and + ;; an SSH server. + ;; If you add an /etc/yggdrasil-private.conf, you can log in to ssh + ;; using your Yggdrasil IPv6 address from another machine running Yggdrasil. + ;; Alternatively, the client can sit behind a router that has Yggdrasil. + ;; That file is specifically _not_ handled by Guix, because we don't want its + ;; contents to sit in the world-readable /gnu/store. + (services + (append + (list + (service dhcp-client-service-type) + (service yggdrasil-service-type + (yggdrasil-configuration + (log-to 'stdout) + (log-level 'debug) + (autoconf? #f) + (json-config + ;; choose a few from + ;; https://github.com/yggdrasil-network/public-peers + '((peers . #("tcp://1.2.3.4:1337")))) + (config-file #f))) + (service openssh-service-type + (openssh-configuration + (port-number 2222)))) + %base-services))) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index bc6610b14c..4075a26552 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -66,6 +66,7 @@ efi-disk-image iso9660-image + arm32-disk-image arm64-disk-image image-with-os @@ -73,6 +74,7 @@ qcow2-image-type iso-image-type uncompressed-iso-image-type + arm32-image-type arm64-image-type image-with-label @@ -126,10 +128,10 @@ (label "GUIX_IMAGE") (flags '(boot))))))) -(define arm64-disk-image +(define arm32-disk-image (image (format 'disk-image) - (target "aarch64-linux-gnu") + (target "arm-linux-gnueabihf") (partitions (list (partition (inherit root-partition) @@ -138,6 +140,11 @@ ;; fails. (volatile-root? #f))) +(define arm64-disk-image + (image + (inherit arm32-disk-image) + (target "aarch64-linux-gnu"))) + ;;; ;;; Images types. @@ -179,9 +186,14 @@ set to the given OS." (compression? #f)) <>)))) +(define arm32-image-type + (image-type + (name 'arm32-raw) + (constructor (cut image-with-os arm32-disk-image <>)))) + (define arm64-image-type (image-type - (name 'arm) + (name 'arm64-raw) (constructor (cut image-with-os arm64-disk-image <>)))) @@ -342,6 +354,9 @@ used in the image." #$output image-root))))) (computed-file "partition.img" image-builder + ;; Allow offloading so that this I/O-intensive process + ;; doesn't run on the build farm's head node. + #:local-build? #f #:options `(#:references-graphs ,inputs)))) (define (partition->config partition) @@ -476,6 +491,9 @@ used in the image. " #:volume-id #$root-label #:volume-uuid #$root-uuid))))) (computed-file name builder + ;; Allow offloading so that this I/O-intensive process + ;; doesn't run on the build farm's head node. + #:local-build? #f #:options `(#:references-graphs ,inputs #:substitutable? ,substitutable?)))) diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index c8352f4933..f4c4be6e2b 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> -;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,6 +42,7 @@ string->ext2-uuid string->ext3-uuid string->ext4-uuid + string->bcachefs-uuid string->btrfs-uuid string->fat-uuid string->jfs-uuid @@ -236,6 +237,7 @@ ISO9660 UUID representation." (define string->ext2-uuid string->dce-uuid) (define string->ext3-uuid string->dce-uuid) (define string->ext4-uuid string->dce-uuid) +(define string->bcachefs-uuid string->dce-uuid) (define string->btrfs-uuid string->dce-uuid) (define string->jfs-uuid string->dce-uuid) @@ -251,14 +253,14 @@ ISO9660 UUID representation." (define %uuid-parsers (vhashq - ('dce 'ext2 'ext3 'ext4 'btrfs 'jfs 'luks => string->dce-uuid) + ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs 'luks => string->dce-uuid) ('fat32 'fat16 'fat => string->fat-uuid) ('ntfs => string->ntfs-uuid) ('iso9660 => string->iso9660-uuid))) (define %uuid-printers (vhashq - ('dce 'ext2 'ext3 'ext4 'btrfs 'jfs 'luks => dce-uuid->string) + ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs 'luks => dce-uuid->string) ('iso9660 => iso9660-uuid->string) ('fat32 'fat16 'fat => fat-uuid->string) ('ntfs => ntfs-uuid->string))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 80a8618729..21d777a3fe 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -641,7 +641,10 @@ of the GNU system as described by OS." (let ((target (file-system-mount-point fs)) (source (file-system-device fs))) (or (string=? target "/") - (string-prefix? "/dev/" source)))) + (and (string? source) + (string-prefix? "/dev/" source)) + (uuid? source) + (file-system-label? source)))) (operating-system-file-systems os))) (define root-uuid |