summaryrefslogtreecommitdiff
path: root/machines/amd64.scm
diff options
context:
space:
mode:
Diffstat (limited to 'machines/amd64.scm')
-rw-r--r--machines/amd64.scm65
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))