all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* getting crazy with arm build
@ 2021-12-06 22:53 Andreas Bauer
  2021-12-08 11:48 ` pelzflorian (Florian Pelz)
  2021-12-08 14:15 ` Ricardo Wurmus
  0 siblings, 2 replies; 3+ messages in thread
From: Andreas Bauer @ 2021-12-06 22:53 UTC (permalink / raw)
  To: help-guix

Hi Everyone!

I am having a hard time getting guix os running on a rock-pro (arm) board.

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.
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.

With qemu compilation, "--system=aarch64-linux" it is cmpiling forever. I
had to stop after 2 days trying to build my system.
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?

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

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?

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. 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.

6. Once I am up and running, I need to buy a supported wlan card, as I like
the idea of not having blobs in the kernel. I was searching for such wlan
cards,
(I am searching for options for usb wlan cards), but I am still unsure
which ones can be recommended. Buying such a cheap wlan card is not easy;
on amazon
I cannot search for it. Does someone have recommendations for me? I need
wlan usb cards that work for x86 and rock-pro (arm).

7. I want to setup a simple NFS server. And the docs on guix are quite good
about that. But I am absolutely lost on how to get the permission system
working.
I would assume that the X507 certificates work like normal private/public
key pairs. Unfortunately I have not foudn a single example for that. And I
was searching
for days. Can anyone point me to the right direction?

8. For arm there are wonderful projects like DietPi and openmediavault and
FreeNAS. This projects can be installed in an hour or so. To me, doing
something like
that on Guix makes much more sense. Guix is lightyears ahead of all other
os. Most of the interesting services are available in guix. But configuring
them is
currently a pain in the ass. Its impossible to find examples. I find it
hard to understand why the guix universe, which is used for HPC and other
sophisticated stuff,
does not have that yet. For mailservers it is another issue. Only half of
the commonly used mailserver programms are available in guix. But for a NAS
or a Media
server guix has everythign that is needed. I am running my own mailserver,
as a hobby. But every other year my mailserver breaks; a "normal" os just
breaks at
some point. With guix, I believe it is posible to create unbreakable NAS
and mailservers. And since the configuration is static, it is very easy to
move to a different
server, or to customize the config. So I wonder why nobody made an example
for that?

Thanks!

awb99

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: getting crazy with arm build
  2021-12-06 22:53 getting crazy with arm build Andreas Bauer
@ 2021-12-08 11:48 ` pelzflorian (Florian Pelz)
  2021-12-08 14:15 ` Ricardo Wurmus
  1 sibling, 0 replies; 3+ messages in thread
From: pelzflorian (Florian Pelz) @ 2021-12-08 11:48 UTC (permalink / raw)
  To: Andreas Bauer; +Cc: help-guix

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: getting crazy with arm build
  2021-12-06 22:53 getting crazy with arm build Andreas Bauer
  2021-12-08 11:48 ` pelzflorian (Florian Pelz)
@ 2021-12-08 14:15 ` Ricardo Wurmus
  1 sibling, 0 replies; 3+ messages in thread
From: Ricardo Wurmus @ 2021-12-08 14:15 UTC (permalink / raw)
  To: Andreas Bauer; +Cc: help-guix


Andreas Bauer <andreas.wolfgang.bauer@gmail.com> writes:

> 1. arm substitutes should be available via bordeaux substitute server
> (since bordeaux has arm build farm I thought that this should be happening).

https://ci.guix.gnu.org also has two aarch64 build machines, “grunewald” and
“pankow”.

-- 
Ricardo


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-12-08 14:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-06 22:53 getting crazy with arm build Andreas Bauer
2021-12-08 11:48 ` pelzflorian (Florian Pelz)
2021-12-08 14:15 ` Ricardo Wurmus

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.