all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de>
To: Andreas Bauer <andreas.wolfgang.bauer@gmail.com>
Cc: help-guix@gnu.org
Subject: Re: getting crazy with arm build
Date: Wed, 8 Dec 2021 12:48:00 +0100	[thread overview]
Message-ID: <20211208114800.6s2x2inenpptake4@pelzflorian.localdomain> (raw)
In-Reply-To: <CADMsvoCg5PuWqj7SB+YTBn09kOm5kZ9Mh4+k+hibE5j6=yHXyA@mail.gmail.com>

On Mon, Dec 06, 2021 at 11:53:45PM +0100, Andreas Bauer wrote:
> Hi Everyone!
> 
> I am having a hard time getting guix os running on a rock-pro (arm) board.

For other readers, this thread is very similar to
<https://lists.gnu.org/archive/html/bug-guix/2021-12/msg00031.html>.


> So this is what I dont understand:
> 
> Using cross compilation with  "--target=aarch64-linux-gnu" the build fails,
> as soon as I add anythign as simple as an ssh server.

Maybe also pass --system=aarch64-linux for QEMU emulation?  I see that
the Guix repo’s gnu/platforms/arm.scm does both
--target=aarch64-linux-gnu and --system=aarch64-linux.  No idea if it
helps.  Eventually Guix should not require --system though, I think.


> Normlally it fails because of "meson build system" or "perl modules". I
> read that meson-build is cross-compilation compatible, so
> thats the first thing that I dont understand.

In the core-updates-frozen branch, there is Meson cross-compilation
support since July 14 <https://issues.guix.gnu.org/49025> commit
8456581375cf03c46005d00907f8fdd1f5615f1e.  Either wait until it lands
in Guix proper (somewhat soon), or try the core-updates-frozen branch.
However, for me that failed at cross-compiling dosfstools (with
--target only, no --system).


> With qemu compilation, "--system=aarch64-linux" it is cmpiling forever. I
> had to stop after 2 days trying to build my system.

Yes, I think it takes that long.


> What I dont understand here is this:
> 
> 1. arm substitutes should be available via bordeaux substitute server
> (since bordeaux has arm build farm I thought that this should be happening).
> It seems that I do not get any substitutes this way. I understand that
> certain exotic packages have to be build on my machine, but something as
> basic as the kernel? How can this be?

Is bordeaux enabled?  See:

https://guix.gnu.org/blog/2021/substitutes-now-also-available-from-bordeauxguixgnuorg/


> 2. qemu builds only on one core. I have set  "--cores=6", but this seems
> not to matter.

Which package specifically?

This is when you run `guix build --system=aarch64-linux …`?



> 3. It see multiple different kernel versions getting compiled. This is very
> confusing. I didnt add any extra packages in this regard.
> 
> The cookbook mentions a way to build an installer image for arm; but
> building the installer image has a lot of packages, so since my small
> images dont build in days, I dont think the installer would build in a
> week.I know that I saw arm binaries for download at some point on the
> guix website. So I wonder why they are no longer there. A binary download
> for an installer to me seems to be quite important. But I dont
> find anyone asking for it. Am I missing something here?

There are PinebookPro images:

https://guix.gnu.org/en/download/latest/

But I don’t know if there are rockpro64 images; probably not, since
there is no image in the guix repo nor cookbook.


> 4. I finally was successful in building an image to get started, and it
> would only work when I did add zero packages to the os-image,
> and when I have removed all the services except for a shell login. This
> image is runnign now, and what I dont understand is, that
> this image has to have the kernel inside, otherwise how would it run. It
> all came via the cross-compilation. So the substitutes for the kernel
> have to be available then! mWhy dont they appear in the qemu build then?
> 
> 5. The way I am now setting up my rock-pro board is first, I get an image
> that only allows me to boot, and login to the shell. Then I add
> some bootstrap files to it via etc-service-type with (local-file ...)..
> Essentially I add a manifest and an extended os image definiition to it,
> and then start building that
> on the rock-pro board.

Yes, this is faster.



> Now it would be perfect to add an entire directory
> of scripts and batch files to a folder into the image. But the local-file
> only allows me
> to add one file per line. Is there any option where I could add an entire
> folder to the image that gets build? This would help a lot in my
> bootstrapping process.

There is (local-file "…" #:recursive #t) and similar for other kinds
of file.

Cannot answer the rest.

Regards,
Florian Pelz


  reply	other threads:[~2021-12-08 11:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-06 22:53 getting crazy with arm build Andreas Bauer
2021-12-08 11:48 ` pelzflorian (Florian Pelz) [this message]
2021-12-08 14:15 ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211208114800.6s2x2inenpptake4@pelzflorian.localdomain \
    --to=pelzflorian@pelzflorian.de \
    --cc=andreas.wolfgang.bauer@gmail.com \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

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.