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
