diff options
Diffstat (limited to 'gnu/system/install.scm')
-rw-r--r-- | gnu/system/install.scm | 75 |
1 files changed, 59 insertions, 16 deletions
diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 1cc3db1160..e4b2e82378 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -44,7 +44,12 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-26) #:export (installation-os - beaglebone-black-installation-os)) + a20-olinuxino-lime-installation-os + a20-olinuxino-lime2-emmc-installation-os + a20-olinuxino-micro-installation-os + banana-pi-m2-ultra-installation-os + beaglebone-black-installation-os + nintendo-nes-classic-edition-installation-os)) ;;; Commentary: ;;; @@ -376,28 +381,66 @@ You have been warned. Thanks for being so brave.\x1b[0m nvi ;:wq! %base-packages)))) -(define beaglebone-black-installation-os +(define* (agetty-default-service #:optional (tty "ttyS0")) + "Return an agetty-service on the given TTY" + (agetty-service (agetty-configuration + (extra-options '("-L")) + (baud-rate "115200") + (term "vt100") + (tty tty)))) + +(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 (append - ;; mingetty does not work on serial lines. - ;; Use agetty with board-specific serial parameters. - (list (agetty-service - (agetty-configuration - (extra-options '("-L")) - (baud-rate "115200") - (term "vt100") - (tty "ttyO0")))) - (operating-system-user-services installation-os))))) + (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-lime-installation-os + (embedded-installation-os u-boot-a20-olinuxino-lime-bootloader + "/dev/mmcblk0" ; SD card storage + "ttyS0")) + +(define a20-olinuxino-lime2-emmc-installation-os + (embedded-installation-os u-boot-a20-olinuxino-lime2-bootloader + "/dev/mmcblk1" ; eMMC storage + "ttyS0")) + +(define a20-olinuxino-micro-installation-os + (embedded-installation-os u-boot-a20-olinuxino-micro-bootloader + "/dev/mmcblk0" ; SD card storage + "ttyS0")) + +(define banana-pi-m2-ultra-installation-os + (embedded-installation-os u-boot-banana-pi-m2-ultra-bootloader + "/dev/mmcblk1" ; eMMC storage + "ttyS0")) + +(define nintendo-nes-classic-edition-installation-os + (embedded-installation-os u-boot-nintendo-nes-classic-edition-bootloader + "/dev/mmcblk0" ; SD card (solder it yourself) + "ttyS0")) ;; Return the default os here so 'guix system' can consume it directly. installation-os |