guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/08: system: Factor out embedded-installation-os.


From: Danny Milosavljevic
Subject: 04/08: system: Factor out embedded-installation-os.
Date: Sat, 20 Jan 2018 17:08:33 -0500 (EST)

dannym pushed a commit to branch master
in repository guix.

commit fccdc8c839370558da8f05626b781bb678d86c94
Author: Danny Milosavljevic <address@hidden>
Date:   Sat Jan 20 21:11:34 2018 +0100

    system: Factor out embedded-installation-os.
    
    * gnu/system/install.scm (embedded-installation-os): New variable.
    (beaglebone-black-installation-os): Use it.
    (a20-olinuxino-lime2-emmc-installation-os): Use it.
    (a20-olinuxino-micro-installation-os): Use it.
    (banana-pi-m2-ultra-installation-os): Use it.
---
 gnu/system/install.scm | 58 ++++++++++++++++++++++++--------------------------
 1 file changed, 28 insertions(+), 30 deletions(-)

diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 714e8ca..e84e6a6 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -387,50 +387,48 @@ You have been warned.  Thanks for being so brave.\x1b[0m
                    (term "vt100")
                    (tty tty))))
 
-(define beaglebone-black-installation-os
+(define* (embedded-installation-os bootloader bootloader-target tty
+                                   #:key (extra-modules '()))
+  "Return an installation os for embedded systems.
+The initrd gets the extra modules EXTRA-MODULES.
+A getty is provided on TTY.
+The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET."
   (operating-system
     (inherit installation-os)
     (bootloader (bootloader-configuration
-                 (bootloader u-boot-beaglebone-black-bootloader)
-                 (target "/dev/sda")))
+                 (bootloader bootloader)
+                 (target bootloader-target)))
     (kernel linux-libre)
     (initrd (lambda (fs . rest)
               (apply base-initrd fs
-                     ;; This module is required to mount the sd card.
-                     #:extra-modules (list "omap_hsmmc")
+                     #:extra-modules extra-modules
                      rest)))
-    (services (cons* (agetty-default-service "ttyO0")
+    (services (cons* (agetty-default-service tty)
                      (operating-system-user-services installation-os)))))
 
+(define beaglebone-black-installation-os
+  (embedded-installation-os u-boot-beaglebone-black-bootloader
+                            "/dev/sda"
+                            "ttyO0"
+                            #:extra-modules
+                            ;; This module is required to mount the sd card.
+                            '("omap_hsmmc")))
+
+
 (define a20-olinuxino-lime2-emmc-installation-os
-  (operating-system
-    (inherit installation-os)
-    (bootloader (bootloader-configuration
-                 (bootloader u-boot-a20-olinuxino-lime2-bootloader)
-                 (target "/dev/mmcblk1"))) ; eMMC storage
-    (kernel linux-libre)
-    (services (cons* (agetty-default-service "ttyS0")
-                     (operating-system-user-services installation-os)))))
+  (embedded-installation-os u-boot-a20-olinuxino-lime2-bootloader
+                            "/dev/mmcblk1" ; eMMC storage
+                            "ttyS0"))
 
 (define a20-olinuxino-micro-installation-os
-  (operating-system
-    (inherit installation-os)
-    (bootloader (bootloader-configuration
-                 (bootloader u-boot-a20-olinuxino-lime2-bootloader)
-                 (target "/dev/mmcblk0"))) ; SD card storage
-    (kernel linux-libre)
-    (services (cons* (agetty-default-service "ttyS0")
-                     (operating-system-user-services installation-os)))))
+  (embedded-installation-os u-boot-a20-olinuxino-micro-bootloader
+                            "/dev/mmcblk0" ; SD card storage
+                            "ttyS0"))
 
 (define banana-pi-m2-ultra-installation-os
-  (operating-system
-    (inherit installation-os)
-    (bootloader (bootloader-configuration
-                 (bootloader u-boot-banana-pi-m2-ultra-bootloader)
-                 (target "/dev/mmcblk1"))) ; eMMC storage
-    (kernel linux-libre)
-    (services (cons* (agetty-default-service "ttyS0")
-                     (operating-system-user-services installation-os)))))
+  (embedded-installation-os u-boot-banana-pi-m2-ultra-bootloader
+                            "/dev/mmcblk1" ; eMMC storage
+                            "ttyS0"))
 
 ;; Return the default os here so 'guix system' can consume it directly.
 installation-os



reply via email to

[Prev in Thread] Current Thread [Next in Thread]