Message ID | 04c59bffe5d465cb17c0b7e8159642f910ce3f35.1700321434.git.herman@rimm.ee |
---|---|
State | New |
Headers | show |
Series | Update u-boot to 2023.10. | expand |
On 2023-11-18, Herman Rimm wrote: > * gnu/local.mk: Register image. > * gnu/system/images/orangepi-r1-plus-lts-rk3328.scm: New file. > * gnu/system/install.scm (orangepi-r1-plus-lts-rk3328-installation-os): > New variable. I guess this opens in my mind a larger question of how many images do we want to build out-of-the-box? Building images for every (ARM) board variant possibly supported in guix might not be sustainable in the long term... this could easily become hundreds of images. How big is each image? On the other hand, most of the images for a given architecture will share much of the work between them, as most of the individual packages used to build each image are the same. Not having CI build each and every image is one approach... although then you might not notice when an individual image breaks. live well, vagrant
On Fri, Dec 01, 2023 at 11:58:57AM -0800, Vagrant Cascadian wrote: > On 2023-11-18, Herman Rimm wrote: > > * gnu/local.mk: Register image. > > * gnu/system/images/orangepi-r1-plus-lts-rk3328.scm: New file. > > * gnu/system/install.scm (orangepi-r1-plus-lts-rk3328-installation-os): > > New variable. > > I guess this opens in my mind a larger question of how many images do we > want to build out-of-the-box? > > Building images for every (ARM) board variant possibly supported in guix > might not be sustainable in the long term... this could easily become > hundreds of images. How big is each image? > > On the other hand, most of the images for a given architecture will > share much of the work between them, as most of the individual packages > used to build each image are the same. > > Not having CI build each and every image is one approach... although > then you might not notice when an individual image breaks. Do we normally build all the images in (gnu system images)? There seems to be a large number of different file-system offsets needed for different boards. I suppose we could standardize on a larger size that would take care of most of them, but until something is setup to make it possible I'm not sure it's possible to support them for Guix System without also adding an OS config for the offsets for the root file system.
On 2023-12-03, Efraim Flashner wrote: > On Fri, Dec 01, 2023 at 11:58:57AM -0800, Vagrant Cascadian wrote: >> On 2023-11-18, Herman Rimm wrote: >> > * gnu/local.mk: Register image. >> > * gnu/system/images/orangepi-r1-plus-lts-rk3328.scm: New file. >> > * gnu/system/install.scm (orangepi-r1-plus-lts-rk3328-installation-os): >> > New variable. >> >> I guess this opens in my mind a larger question of how many images do we >> want to build out-of-the-box? >> >> Building images for every (ARM) board variant possibly supported in guix >> might not be sustainable in the long term... this could easily become >> hundreds of images. How big is each image? >> >> On the other hand, most of the images for a given architecture will >> share much of the work between them, as most of the individual packages >> used to build each image are the same. >> >> Not having CI build each and every image is one approach... although >> then you might not notice when an individual image breaks. > > Do we normally build all the images in (gnu system images)? There seems > to be a large number of different file-system offsets needed for > different boards. I suppose we could standardize on a larger size that > would take care of most of them, but until something is setup to make it > possible I'm not sure it's possible to support them for Guix System > without also adding an OS config for the offsets for the root file > system. From a quick look, ci.guix.gnu.org builds pinebook-pro-barebones-raw-image, pine64-barebones-raw-image, novena-barebones-raw-image ... but I could not find an image for rock64 ... so I am not sure what is built by CI out of the box. live well, vagrant
diff --git a/gnu/local.mk b/gnu/local.mk index 84fcb9c54e..428dc20969 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -749,6 +749,7 @@ GNU_SYSTEM_MODULES = \ \ %D%/system/images/hurd.scm \ %D%/system/images/novena.scm \ + %D%/system/images/orangepi-r1-plus-lts-rk3328.scm \ %D%/system/images/pine64.scm \ %D%/system/images/pinebook-pro.scm \ %D%/system/images/rock64.scm \ diff --git a/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm b/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm new file mode 100644 index 0000000000..eaaa12ba78 --- /dev/null +++ b/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm @@ -0,0 +1,76 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Herman Rimm <herman@rimm.ee> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu system images orangepi-r1-plus-lts-rk3328) + #:use-module (gnu bootloader) + #:use-module (gnu bootloader u-boot) + #:use-module (gnu image) + #:use-module (gnu packages linux) + #:use-module (gnu packages certs) + #:use-module (guix platforms arm) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services networking) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system image) + #:use-module (srfi srfi-26) + #:export (orangepi-r1-plus-lts-rk3328-barebones-os + orangepi-r1-plus-lts-rk3328-image-type + orangepi-r1-plus-lts-rk3328-barebones-raw-image)) + +(define orangepi-r1-plus-lts-rk3328-barebones-os + (operating-system + (host-name "windmolen") + (timezone "Europe/Amsterdam") + (locale "en_US.utf8") + (bootloader (bootloader-configuration + (bootloader u-boot-orangepi-r1-plus-lts-rk3328-bootloader) + (targets '("/dev/mmcblk0")))) + (initrd-modules '()) + (kernel linux-libre-arm64-generic) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) %base-file-systems)) + (services + (cons* (service agetty-service-type + (agetty-configuration (extra-options '("-L")) ;no carrier detect + (baud-rate "1500000") + (term "vt100") + (tty "ttyS2"))) + (service dhcp-client-service-type) + (service ntp-service-type) %base-services)) + (packages (cons nss-certs %base-packages)))) + +(define orangepi-r1-plus-lts-rk3328-image-type + (image-type (name 'orangepi-r1-plus-lts-rk3328-raw) + (constructor (lambda (os) + (image (inherit (raw-with-offset-disk-image (expt + 2 24))) + (operating-system + os) + (platform aarch64-linux)))))) + +(define orangepi-r1-plus-lts-rk3328-barebones-raw-image + (image (inherit (os+platform->image orangepi-r1-plus-lts-rk3328-barebones-os + aarch64-linux + #:type orangepi-r1-plus-lts-rk3328-image-type)) + (name 'orangepi-r1-plus-lts-rk3328-barebones-raw-image))) + +orangepi-r1-plus-lts-rk3328-barebones-raw-image diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 28161de153..03d2b0b2f4 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz> +;;; Copyright © 2023 Herman Rimm <herman@rimm.ee> ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,6 +70,7 @@ (define-module (gnu system install) mx6cuboxi-installation-os nintendo-nes-classic-edition-installation-os novena-installation-os + orangepi-r1-plus-lts-rk3328-installation-os firefly-rk3399-installation-os pine64-plus-installation-os pinebook-installation-os @@ -633,6 +635,11 @@ (define nintendo-nes-classic-edition-installation-os "/dev/mmcblk0" ; SD card (solder it yourself) "ttyS0")) +(define orangepi-r1-plus-lts-rk3328-installation-os + (embedded-installation-os u-boot-orangepi-r1-plus-lts-rk3328-bootloader + "/dev/mmcblk0" ; SD card storage + "ttyS0")) + (define pine64-plus-installation-os (embedded-installation-os u-boot-pine64-plus-bootloader "/dev/mmcblk0" ; SD card storage