mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-01 00:52:55 -05:00
gnu: raspberry-pi: Add helpers for config.txt file generation.
* gnu/packages/raspberry-pi.scm (raspi-config-file, raspi-custom-txt): New functions. (%raspi-config-txt, %raspi-bcm27-dtb-txt, %raspi-bcm28-dtb-txt %raspi-u-boot-bootloader-txt): New variables. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
13f9110e5f
commit
4e2e4b222f
1 changed files with 56 additions and 1 deletions
|
@ -42,7 +42,9 @@ (define-module (gnu packages raspberry-pi)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-2)
|
#:use-module (srfi srfi-2)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match)
|
||||||
|
#:export (raspi-config-file
|
||||||
|
raspi-custom-txt))
|
||||||
|
|
||||||
(define-public bcm2835
|
(define-public bcm2835
|
||||||
(package
|
(package
|
||||||
|
@ -238,6 +240,59 @@ (define-public raspi-arm64-chainloader
|
||||||
#t))))))))
|
#t))))))))
|
||||||
(supported-systems '("aarch64-linux"))))
|
(supported-systems '("aarch64-linux"))))
|
||||||
|
|
||||||
|
(define (raspi-config-file name content)
|
||||||
|
"Make a configuration file like config.txt for the Raspberry Pi firmware.
|
||||||
|
CONTENT can be a list of strings, which are concatenated with a newline
|
||||||
|
character. Alternatively CONTENT can be a string with the full file content."
|
||||||
|
(plain-file
|
||||||
|
name
|
||||||
|
(if (list? content)
|
||||||
|
(string-join content "\n" 'suffix)
|
||||||
|
content)))
|
||||||
|
|
||||||
|
(define-public %raspi-config-txt
|
||||||
|
;; A config.txt file to start the ARM cores up in 64-bit mode if necessary
|
||||||
|
;; and to include a dtb.txt, bootloader.txt, and a custom.txt, each with
|
||||||
|
;; separated configurations for the Raspberry Pi firmware.
|
||||||
|
(raspi-config-file
|
||||||
|
"config.txt"
|
||||||
|
`("# See https://www.raspberrypi.org/documentation/configuration/config-txt/README.md for details."
|
||||||
|
""
|
||||||
|
,(string-append "arm_64bit=" (if (target-aarch64?) "1" "0"))
|
||||||
|
"include dtb.txt"
|
||||||
|
"include bootloader.txt"
|
||||||
|
"include custom.txt")))
|
||||||
|
|
||||||
|
(define-public %raspi-bcm27-dtb-txt
|
||||||
|
;; A dtb.txt file to be included by the config.txt to ensure that the
|
||||||
|
;; downstream device tree files bcm27*.dtb will be used.
|
||||||
|
(raspi-config-file
|
||||||
|
"dtb.txt"
|
||||||
|
"upstream_kernel=0"))
|
||||||
|
|
||||||
|
(define-public %raspi-bcm28-dtb-txt
|
||||||
|
;; A dtb.txt file to be included by the config.txt to ensure that the
|
||||||
|
;; upstream device tree files bcm28*.dtb will be used.
|
||||||
|
;; This also implies the use of the dtoverlay=upstream.
|
||||||
|
(raspi-config-file
|
||||||
|
"dtb.txt"
|
||||||
|
"upstream_kernel=1"))
|
||||||
|
|
||||||
|
(define-public %raspi-u-boot-bootloader-txt
|
||||||
|
;; A bootloader.txt file to be included by the config.txt to load the
|
||||||
|
;; U-Boot bootloader.
|
||||||
|
(raspi-config-file
|
||||||
|
"bootloader.txt"
|
||||||
|
'("dtoverlay=upstream"
|
||||||
|
"enable_uart=1"
|
||||||
|
"kernel=u-boot.bin")))
|
||||||
|
|
||||||
|
(define (raspi-custom-txt content)
|
||||||
|
"Make a custom.txt file for the Raspberry Pi firmware.
|
||||||
|
CONTENT can be a list of strings, which are concatenated with a newline
|
||||||
|
character. Alternatively CONTENT can be a string with the full file content."
|
||||||
|
(raspi-config-file "custom.txt" content))
|
||||||
|
|
||||||
(define (make-raspi-defconfig arch defconfig sha256-as-base32)
|
(define (make-raspi-defconfig arch defconfig sha256-as-base32)
|
||||||
"Make for the architecture ARCH a file-like object from the DEFCONFIG file
|
"Make for the architecture ARCH a file-like object from the DEFCONFIG file
|
||||||
with the hash SHA256-AS-BASE32. This object can be used as the #:defconfig
|
with the hash SHA256-AS-BASE32. This object can be used as the #:defconfig
|
||||||
|
|
Loading…
Reference in a new issue