diff options
Diffstat (limited to 'machines/amd64.scm')
-rw-r--r-- | machines/amd64.scm | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/machines/amd64.scm b/machines/amd64.scm new file mode 100644 index 0000000..4730607 --- /dev/null +++ b/machines/amd64.scm @@ -0,0 +1,65 @@ +(define-module (machines amd64) + ;; file-system + ;; swap-space + #:use-module (gnu system file-systems) + + ;; linux + ;; linux-firmware + #:use-module (nongnu packages linux) + + ;; microcode-initrd + #:use-module (nongnu system linux-initrd)) + +;; string -> +;; (list record* file-system) +(define-public (file-systems* host-name*) + (let* ((root-device-string (string-append host-name* "-root")) + + (root-device (file-system-label root-device-string)) + + (file-system-root (file-system (type "ext4") + (mount-point "/") + (device root-device)))) + (append %base-file-systems + (list file-system-root)))) + +;; (list record* package) +(define-public firmware* + (list linux-firmware)) + +;; record* package +(define-public initrd* + microcode-initrd) + +;; record* package +(define-public kernel-amd64 + linux) + +;; string -> +;; (list record* swap-space) +(define-public (swap-devices* host-name*) + (let* ((label* (string-append host-name* "-swap")) + + (target* (file-system-label label*)) + + (swap-space* (swap-space (target target*)))) + (list swap-space*))) + +;;;??????????????????????????????????????????????????????????????????? + +(define-public (bootloader-device-path host-name) + (let* + ((close-pipe (@ (ice-9 popen) close-pipe)) + (open-input-pipe (@ (ice-9 popen) open-input-pipe)) + (read-line (@ (ice-9 rdelim) read-line)) + (command-chain (string-append "findmnt -o SOURCE,LABEL " + "| grep " + host-name + " " + "| head -n 1 " + "| awk '{print $1}' " + "| sed 's/[0-9]*$//' ")) + (port (open-input-pipe command-chain)) + (output (read-line port))) + (close-pipe port) + output)) |