all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / Atom feed
* Installing Guix System on Honeycomb LX2 (aarch64)
@ 2021-11-24 16:36 Ricardo Wurmus
  0 siblings, 0 replies; only message in thread
From: Ricardo Wurmus @ 2021-11-24 16:36 UTC (permalink / raw)
  To: help-guix

[-- Attachment #1: Type: text/plain, Size: 393 bytes --]

Hi,

I’m trying to install Guix System on three aarch64 machines that 
are supposed to join the build farm.  I followed the instructions 
at [1] to boot and flash Ubuntu onto the SSD.  Then I installed 
Guix with the installer script at https://guix.gnu.org/install.sh.

And then I tried installing a honeycomb system with the attached 
module for the maintenance.git repository.


[-- Attachment #2: honeycomb.scm --]
[-- Type: application/octet-stream, Size: 9179 bytes --]

;;; SolidRun Honeycomb LX2 build machines.
;;;
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This program 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.
;;;
;;; This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.

(define-module (sysadmin honeycomb)
  #:use-module (gnu)
  #:use-module (gnu packages screen)
  #:use-module (gnu packages ssh)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages certs)
  #:use-module (gnu services avahi)
  #:use-module (gnu services cuirass)
  #:use-module (gnu services networking)
  #:use-module (gnu services mcron)
  #:use-module (gnu services ssh)
  #:use-module (gnu services vpn)
  #:export (honeycomb-system))

(define (sysadmin name full-name)
  (user-account
   (name name)
   (comment full-name)
   (group "users")
   (supplementary-groups '("wheel" "kvm"))
   (home-directory (string-append "/home/" name))))

(define %accounts
  (list (sysadmin "ludo" "Ludovic Courtès")
        (sysadmin "rekado" "Ricardo Wurmus")
        (sysadmin "mathieu" "Mathieu Othacehe")
        (user-account
         (name "hydra")
         (comment "Hydra User")
         (group "users")
         (home-directory (string-append "/home/" name)))))

(define %authorized-guix-keys
  ;; List of authorized 'guix archive' keys.
  (list (local-file "../../keys/guix/berlin.guixsd.org-export.pub")))

(define %default-extra-linux-options
  (@@ (gnu packages linux) %default-extra-linux-options))
(define make-linux-libre*
  (@@ (gnu packages linux) make-linux-libre*))

#;
(define-public linux-libre-arm64-honeycomb
  (make-linux-libre* linux-libre-version
                     linux-libre-source
                     '("aarch64-linux")
                     #:defconfig "defconfig"
                     #:extra-version "arm64-generic"
                     #:extra-options
                     (append
                      `(;; needed to fix the RTC on rockchip platforms
                        ("CONFIG_RTC_DRV_RK808" . #t)
                        ;; Pinebook display, battery, charger and usb
                        ("CONFIG_DRM_ANALOGIX_ANX6345" . m)
                        ("CONFIG_CHARGER_AXP20X" . m)
                        ("CONFIG_INPUT_AXP20X_PEK" . m)
                        ("CONFIG_CHARGER_AXP20X" . m)
                        ("CONFIG_BATTERY_AXP20X" . m)
                        ("CONFIG_PINCTRL_AXP209" . m)
                        ("CONFIG_AXP20X_POWER" . m)
                        ("CONFIG_AXP20X_ADC" . m)

                        ("CONFIG_GPIO_SYSFS" . #t)
                        ("CONFIG_GPIO_MPC8XXX" . #t)
                        ("CONFIG_NET_PKTGEN" . #t)
                        ("CONFIG_USB_SERIAL" . #t)
                        ("CONFIG_USB_SERIAL_CONSOLE" . #t)
                        ("CONFIG_USB_SERIAL_GENERIC" . #t)
                        ("CONFIG_USB_SERIAL_SIMPLE" . #t)
                        ("CONFIG_USB_SERIAL_FTDI_SIO" . #t)
                        ("CONFIG_USB_ACM" . #t)
                        ("CONFIG_USB_NET_DRIVERS" . #t)
                        ("CONFIG_USB_USBNET" . #t)
                        ("CONFIG_USB_NET_CDCETHER" . #t)
                        ("CONFIG_USB_NET_CDC_NCM" . #t)
                        ("CONFIG_USB_NET_NET1080" . #t)
                        ("CONFIG_USB_NET_CDC_SUBSET_ENABLE" . #t)
                        ("CONFIG_USB_NET_CDC_SUBSET" . #t)
                        ("CONFIG_USB_ARMLINUX" . #t)
                        ("CONFIG_BLK_DEV_NVME" . #t)
                        ("CONFIG_NVMEM_BCM_OCOTP" . #t)
                        ("CONFIG_DRM_AMDGPU" . #t)
                        ("CONFIG_DRM_AMDGPU_SI" . #t)
                        ("CONFIG_DRM_AMDGPU_CIK" . #t)
                        ("CONFIG_DRM_AMDGPU_USERPTR" . #t)
                        ("CONFIG_DRM_AMD_DC" . #t)
                        ("CONFIG_CHASH" . #t)
                        ("CONFIG_PMBUS" . #t)
                        ("CONFIG_SENSORS_PMBUS" . #t)
                        ("CONFIG_REGULATOR" . #t)
                        ("CONFIG_REGULATOR_FIXED_VOLTAGE" . #t)
                        ("CONFIG_REGULATOR_PWM" . #t)
                        ("CONFIG_SENSORS_AMC6821" . #t)
                        ("CONFIG_SENSORS_LM90" . #t)
                        ("CONFIG_SENSORS_LTC2978" . #t)
                        ("CONFIG_SENSORS_LTC2978_REGULATOR" . #t)
                        ("CONFIG_TMPFS" . #t)
                        ("CONFIG_TMPFS_POSIX_ACL" . #t)
                        ("CONFIG_TMPFS_XATTR" . #t)
                        ("CONFIG_BLK_DEV_RAM_SIZE=5242" . #t)
                        ("CONFIG_POWER_RESET_GPIO" . #t)
                        ("CONFIG_CRYPTO_USER_API_HASH" . #t)
                        ("CONFIG_CRYPTO_USER_API_SKCIPHER" . #t)
                        ("CONFIG_CRYPTO_USER_API_RNG" . #t)
                        ("CONFIG_CRYPTO_USER_API_AEAD" . #t))
                      %default-extra-linux-options)))

(define gc-job
  ;; Run 'guix gc' at 3AM every day.
  #~(job '(next-hour '(3)) "guix gc -F 50G"))

(define berlin-peer
  (wireguard-peer
   (name "peer")
   (endpoint "ci.guix.gnu.org:51820")
   (public-key "wOIfhHqQ+JQmskRS2qSvNRgZGh33UxFDi8uuSXOltF0=")
   (allowed-ips '("10.0.0.1/32"))))

(define* (honeycomb-system name #:key wireguard-ip)
  (operating-system
    (host-name name)
    (timezone "Europe/Berlin")
    (locale "en_US.UTF-8")

    (bootloader (bootloader-configuration
                 (bootloader grub-efi-bootloader)
                 (target "/boot/efi")))

    #;
    (kernel linux-libre-arm64-honeycomb)
    (initrd-modules '())
    (kernel-arguments '("arm-smmu.disable_bypass=0"))

    (file-systems (cons* (file-system
                           (device "/dev/sda2")
                           (mount-point "/")
                           (type "ext4"))
                         (file-system
                           (device "/dev/sda1")
                           (mount-point "/boot/efi")
                           (type "vfat"))
                         %base-file-systems))

    (swap-devices '("/swapfile"))
    (users (append %accounts %base-user-accounts))
    (services (cons* (service dhcp-client-service-type)
                     (service avahi-service-type)
                     (service openssh-service-type
                              (openssh-configuration
                               (password-authentication? #f)
                               (authorized-keys
                                `(("ludo" ,(local-file "../../keys/ssh/ludo.pub"))
                                  ("rekado" ,(local-file "../../keys/ssh/rekado.pub"))
                                  ("mathieu" ,(local-file "../../keys/ssh/mathieu.pub"))
                                  ("maxim" ,(local-file "../../keys/ssh/maxim.pub"))))))
                     (service agetty-service-type
                              (agetty-configuration
                               (tty "ttyAMA0")
                               (keep-baud? #t)
                               (term "vt220")
                               (baud-rate "115200,38400,9600")))
                     (service cuirass-remote-worker-service-type
                              (cuirass-remote-worker-configuration
                               (workers 2)
                               (server "10.0.0.1:5555") ;berlin
                               (systems '("armhf-linux" "aarch64-linux"))))
                     (service wireguard-service-type
                              (wireguard-configuration
                               (addresses (list wireguard-ip))
                               (peers
                                (list berlin-peer))))

                     (service ntp-service-type)
                     (modify-services %base-services
                       (guix-service-type config =>
                                          (guix-configuration
                                           (inherit config)
                                           (max-silent-time (* 12 3600))
                                           (timeout (* 24 3600))
                                           (authorized-keys
                                            %authorized-guix-keys)
                                           (extra-options
                                            '("--max-jobs=4" "--cores=16")))))))
    (packages (cons* screen openssh strace nss-certs
                     %base-packages))))

[-- Attachment #3: Type: text/plain, Size: 861 bytes --]


The system definition looks like this

--8<---------------cut here---------------start------------->8---
(use-modules (sysadmin honeycomb))
(honeycomb-system "pankow"
                  #:wireguard-ip "10.0.0.8/32")
--8<---------------cut here---------------end--------------->8---

And I attempt to build the system with

   guix system build -L modules my-system.scm

from within the ‘hydra‘ directory of the maintenance checkout. 
Unfortunately, I’ll eventually always run into this error:

   guix system: error: cloning builder process: Invalid argument

I already tried using a more recent daemon, but to no avail.  I 
worked around this by running the daemon with “--disable-chroot”, 
but that’s not great.

Is this a bug?  What can I do to get around it without having to 
disable the chroot feature?

-- 
Ricardo

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-11-24 16:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-24 16:36 Installing Guix System on Honeycomb LX2 (aarch64) Ricardo Wurmus

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.