summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--machines/portable-bios.scm31
1 files changed, 31 insertions, 0 deletions
diff --git a/machines/portable-bios.scm b/machines/portable-bios.scm
new file mode 100644
index 0000000..3cc9c79
--- /dev/null
+++ b/machines/portable-bios.scm
@@ -0,0 +1,31 @@
+(define-module (machines portable-bios)
+ #:use-module (gnu bootloader) ; bootloader-configuration
+ #:use-module (gnu bootloader grub) ; grub-bootloader
+ #:use-module (gnu system file-systems) ; file-system
+ #:use-module (suweren system) ; %suweren-operating-system
+ )
+
+;; bootloader-configuration
+(define bootloader-configuration*
+ (let ((bootloader* grub-bootloader)
+ (bootloader-targets (list "/dev/sdb")) ; TODO: generalize the target
+ )
+ (bootloader-configuration (bootloader bootloader*)
+ (targets bootloader-targets))))
+
+;; string -> (file-system)
+(define (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))))
+ (list file-system-root)))
+
+;; string -> record operating-system
+(define-public (operating-system* host-name*)
+ (%suweren-operating-system bootloader-configuration*
+ host-name*
+ (file-systems* host-name*)))