system: Add BeagleBone Black installer.
* gnu/bootloader/u-boot.scm (u-boot-beaglebone-black-bootloader): New exported bootloader. * gnu/system/install.scm (beaglebone-black-installation-os): New exported variable.
This commit is contained in:
parent
5a72ddf176
commit
ceb3952764
|
@ -21,18 +21,35 @@
|
||||||
#:use-module (gnu bootloader extlinux)
|
#:use-module (gnu bootloader extlinux)
|
||||||
#:use-module (gnu bootloader)
|
#:use-module (gnu bootloader)
|
||||||
#:use-module (gnu system)
|
#:use-module (gnu system)
|
||||||
|
#:use-module (gnu build bootloader)
|
||||||
#:use-module (gnu packages bootloaders)
|
#:use-module (gnu packages bootloaders)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:export (u-boot-bootloader))
|
#:export (u-boot-bootloader
|
||||||
|
u-boot-beaglebone-black-bootloader))
|
||||||
|
|
||||||
(define install-u-boot
|
(define install-u-boot
|
||||||
#~(lambda (bootloader device mount-point)
|
#~(lambda (bootloader device mount-point)
|
||||||
(if bootloader
|
(if bootloader
|
||||||
(error "Failed to install U-Boot"))))
|
(error "Failed to install U-Boot"))))
|
||||||
|
|
||||||
|
(define install-beaglebone-black-u-boot
|
||||||
|
;; http://wiki.beyondlogic.org/index.php?title=BeagleBoneBlack_Upgrading_uBoot
|
||||||
|
;; This first stage bootloader called MLO (U-Boot SPL) is expected at
|
||||||
|
;; 0x20000 by BBB ROM code. The second stage bootloader will be loaded by
|
||||||
|
;; the MLO and is expected at 0x60000. Write both first stage ("MLO") and
|
||||||
|
;; second stage ("u-boot.img") images, read in BOOTLOADER directory, to the
|
||||||
|
;; specified DEVICE.
|
||||||
|
#~(lambda (bootloader device mount-point)
|
||||||
|
(let ((mlo (string-append bootloader "/libexec/MLO"))
|
||||||
|
(u-boot (string-append bootloader "/libexec/u-boot.img")))
|
||||||
|
(write-file-on-device mlo (* 256 512)
|
||||||
|
device (* 256 512))
|
||||||
|
(write-file-on-device u-boot (* 1024 512)
|
||||||
|
device (* 768 512)))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
@ -45,3 +62,9 @@
|
||||||
(name 'u-boot)
|
(name 'u-boot)
|
||||||
(package #f)
|
(package #f)
|
||||||
(installer install-u-boot)))
|
(installer install-u-boot)))
|
||||||
|
|
||||||
|
(define u-boot-beaglebone-black-bootloader
|
||||||
|
(bootloader
|
||||||
|
(inherit u-boot-bootloader)
|
||||||
|
(package u-boot-beagle-bone-black)
|
||||||
|
(installer install-beaglebone-black-u-boot)))
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
(define-module (gnu system install)
|
(define-module (gnu system install)
|
||||||
#:use-module (gnu)
|
#:use-module (gnu)
|
||||||
|
#:use-module (gnu bootloader u-boot)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
|
@ -42,7 +43,8 @@
|
||||||
#:use-module (gnu packages nvi)
|
#:use-module (gnu packages nvi)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:export (installation-os))
|
#:export (installation-os
|
||||||
|
beaglebone-black-installation-os))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
|
@ -372,7 +374,30 @@ You have been warned. Thanks for being so brave.\x1b[0m
|
||||||
nvi ;:wq!
|
nvi ;:wq!
|
||||||
%base-packages))))
|
%base-packages))))
|
||||||
|
|
||||||
;; Return it here so 'guix system' can consume it directly.
|
(define beaglebone-black-installation-os
|
||||||
|
(operating-system
|
||||||
|
(inherit installation-os)
|
||||||
|
(bootloader (bootloader-configuration
|
||||||
|
(bootloader u-boot-beaglebone-black-bootloader)
|
||||||
|
(target "/dev/sda")))
|
||||||
|
(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")
|
||||||
|
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)))))
|
||||||
|
|
||||||
|
;; Return the default os here so 'guix system' can consume it directly.
|
||||||
installation-os
|
installation-os
|
||||||
|
|
||||||
;;; install.scm ends here
|
;;; install.scm ends here
|
||||||
|
|
Loading…
Reference in New Issue