Subject: Unable to generate a bootable image for pinebook pro

From: Richard Sent <[email-masked]>
Date: Fri, 10 May 2024 15:27:20 -0400

Hi Guix!

When building a system image for the pinebook pro, the image either
fails to build or fail to boot. This occurs when when using the
pinebook-pro-barebones-raw-image defined in the Guix repository.

When --system=aarch64-linux is not passed, the image build fails when
cross compiling packages.

--8<---------------cut here---------------start------------->8---
$ guix system image gnu/system/images/pinebook-pro.scm
...
building /gnu/store/ibjl0n8d1ac107vvkvjgrlb74sxm2b0k-gawk-mesboot-3.1.8.drv...
\ 'configure' phasebuilder for `/gnu/store/ibjl0n8d1ac107vvkvjgrlb74sxm2b0k-gawk-mesboot-3.1.8.drv' failed with exit code 1
build of /gnu/store/ibjl0n8d1ac107vvkvjgrlb74sxm2b0k-gawk-mesboot-3.1.8.drv failed
View build log at '/var/log/guix/drvs/ib/jl0n8d1ac107vvkvjgrlb74sxm2b0k-gawk-mesboot-3.1.8.drv.gz'.
--8<---------------cut here---------------end--------------->8---

When --system=aarch64-linux is passed (enforcing QEMU builds for
packages instead of attempting cross compilation), the image builds but
the Pinebook Pro does not appear to detect it and will fall back on
eMMC.

--8<---------------cut here---------------start------------->8---
guix system image gnu/system/images/pinebook-pro.scm --system=aarch64-linux
--8<---------------cut here---------------end--------------->8---

Per the blog post on
https://othacehe.org/distributing-guix-system-pinebook-pro-images.html,
building a pinebook pro system image should be as simple as the first
command. When package compilation errors occurs, the user should be able
to fall back on the second command.

Below is the tail of the log when cross compiling gawk-mesboot:

--8<---------------cut here---------------start------------->8---
...
checking for function prototypes... yes
checking for string.h... (cached) yes
checking whether NLS is requested... yes
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... no
checking for msgmerge... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized
configure: error: /gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash ./config.sub aarch64-linux-gnu failed
error: in phase 'configure': uncaught exception:
srfi-34 #<condition &invoke-error [program: "/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash" arguments: ("./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash" "SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash" "--prefix=/gnu/store/bl3aq7fnpyxq9w2a7bqa4zqgd8z88y8x-gawk-mesboot-3.1.8" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=aarch64-linux-gnu" "ac_cv_func_connect=no") exit-status: 1 term-signal: #f stop-signal: #f] 152a5c0> 
phase `configure' failed after 30.6 seconds
command "/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash" "./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash" "SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash" "--prefix=/gnu/store/bl3aq7fnpyxq9w2a7bqa4zqgd8z88y8x-gawk-mesboot-3.1.8" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=aarch64-linux-gnu" "ac_cv_func_connect=no" failed with status 1
--8<---------------cut here---------------end--------------->8---

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.