On 4/5/22 04:53, Tobias Platen wrote:
The SoC is the same, but the PineBook Pro and RockPro64 have different u-boot bootloaders: u-boot-rockpro64-rk3399-bootloader and u-boot-pinebook-pro-rk3399-bootloader, both in gnu/bootloader/u-boot.scm .I had a look at the guix page, there is a latest version image for the PineBook Pro, which uses the same SoC.
I have attached the image config that I used to build a RockPro64 image last week. See below for my plans to upstream.
Unfortunately I was unable to find the reciepe to build that image. The guix page is currently down, I will try again tomorrow.
FWIW, the PineBook Pro image is at gnu/system/images/pinebook-pro.scm
Today I was able to install guix on top of Debian which I have installed on my RockPro64.
That should be useful, to be able to build aarch64 images without having to do cross-compilation.
However, it's inconvenient that each aarch64 platform needs its own aarch64 image. To improve on this, I'm working on Tow-Boot[0] support for Guix. The result is that a single generic aarch64 image will work across all Tow-Boot supported devices[1], including the RockPro64.
0. https://tow-boot.org/ 1. https://tow-boot.org/devices/index.html
commit 397ee4242238905c8c1071aff6d345c600a709d6 Author: Tom Fitzhenry <t...@tom-fitzhenry.me.uk> Date: Mon Apr 25 16:51:52 2022 +1000 add rockpro64 image diff --git a/gnu/system/images/rockpro64.scm b/gnu/system/images/rockpro64.scm new file mode 100644 index 0000000000..d03b4b90de --- /dev/null +++ b/gnu/system/images/rockpro64.scm @@ -0,0 +1,69 @@ + +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Marius Bakke <mar...@gnu.org> +;;; +;;; 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 rockpro64) + #:use-module (gnu bootloader) + #:use-module (gnu bootloader u-boot) + #:use-module (gnu image) + #:use-module (gnu packages linux) + #:use-module (gnu 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 (rockpro64-barebones-os + rockpro64-image-type + rockpro64-barebones-raw-image)) + +(define rockpro64-barebones-os + (operating-system + (host-name "jiehkkevarri") + (timezone "Europe/Oslo") + (locale "en_US.utf8") + (bootloader (bootloader-configuration + (bootloader u-boot-rockpro64-rk3399-bootloader) + (targets '("/dev/sda")))) + (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 (append (list (service dhcp-client-service-type)) + %base-services)))) + +(define rockpro64-image-type + (image-type + (name 'rockpro64-raw) + (constructor (cut image-with-os + (raw-with-offset-disk-image (expt 2 24)) + <>)))) + +(define rockpro64-barebones-raw-image + (image + (inherit + (os+platform->image rockpro64-barebones-os aarch64-linux + #:type rockpro64-image-type)) + (name 'rockpro64-barebones-raw-image))) + +rockpro64-barebones-raw-image