help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Cross platform deploy


From: Christoph Buck
Subject: Cross platform deploy
Date: Mon, 08 Apr 2024 18:00:17 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Hi!

I have a quick question if the following is currently possible with the
latest version of guix.

I managed to cross-compile an `aarch64-linux-gnu` images (for the rpi4 in
case this matters) from my `x86_64-linux-gnu` host using

> guix system image --target=aarch64-linux-gnu my-image.scm --no-grafts 
> --skip-checks

(Side note: Looks like i ran into the bug described in
https://issues.guix.gnu.org/66866 because i need the option
`--no-grafts` to sucessfully build the image).

This image boots successfully on my arm board. Now i want to remote
deploy system configurations from my `x86_64-linux-gnu` host. I setup
`guix deploy` using the following configuration

> (define machines
>   (list (machine
>          (operating-system rpi4-os)
>          (environment managed-host-environment-type)
>          (configuration (machine-ssh-configuration
>                          (host-name "pi4")
>                          (system "aarch64-linux")
>                          (user "root")
>                          (build-locally? #t)
>                          (port 2222))))))

where rpi4-os is my os configuration for my arm/rpi board.

To deploy changes I use

> guix deploy  --no-grafts raspberry-pi.scm

After struggling for a bit to setup `qemu-binfmt`, this also seems to
work. However, instead of the cross-compiled kernel which should already
be in store, `guix deploy` recompiles the kernel using
`qemu-aarch64-static` emulation. This takes ages on my machine.

Is there a way to teach `guix deploy` to use the cross-compiled
packages? Unfortunately there seems to be no command line switch
`--target=xxx` which is present for `guix build` and `guix system`


Thanks in advance

Christoph







reply via email to

[Prev in Thread] Current Thread [Next in Thread]