I needed to run cross with CROSS_RUNNER=qemu-system with the powerpc64-linux-unknown-gnu target. I was missing the debug symbols for libc6 within the initrd image which are provided by the libc6-dbg package, so I adjusted the /linux-image.sh shell script within the docker image and ran it with /linux-image.sh powerpc64. However, I wasn't able to build an initrd with the provided linux-image.sh script which actually boots. Long story short:
There were some issues within this script which I finally fixed to be able to build a successfully booting /qemu/initrd.gz and /qemu/kernel.
The binaries and busybox are installed into /usr/bin/ instead of /bin. /bin is used in the linux-image.sh script. I think this happens due to the usage of the ports debian mirror. The ports binaries were installed into /usr/bin.
The kernel modules are installed into /usr/lib/modules instead of /lib/modules. /lib/modules is used in the linux-image.sh.
The kernel modules are compressed with xz and end with *.ko.xz instead of *.ko
Unlike other targets powerpc64 uses a pretty recent kernel (linux-image-6.6.8-powerpc64) and I think 3. and 4. are related to that. None of these problems were particularly hard to fix. Are you interested in a pr with a fixed linux-image.sh script?
What target(s) are you cross-compiling for?
powerpc64-unknown-linux-gnu
Which operating system is the host (e.g computer cross is on) running?
[ ] macOS
[ ] Windows
[X] Linux / BSD
[ ] other OS (specify in description)
What architecture is the host?
[X] x86_64 / AMD64
[ ] arm32
[ ] arm64 (including Mac M1)
What container engine is cross using?
[X] docker
[ ] podman
[ ] other container engine (specify in description)
Checklist
Describe your issue
I needed to run cross with
CROSS_RUNNER=qemu-system
with thepowerpc64-linux-unknown-gnu
target. I was missing the debug symbols forlibc6
within the initrd image which are provided by thelibc6-dbg
package, so I adjusted the/linux-image.sh
shell script within the docker image and ran it with/linux-image.sh powerpc64
. However, I wasn't able to build an initrd with the providedlinux-image.sh
script which actually boots. Long story short:There were some issues within this script which I finally fixed to be able to build a successfully booting
/qemu/initrd.gz
and/qemu/kernel
.Problems:
Debian Ports Archive Automatic Signing Key (2024) <ftpmaster@ports-master.debian.org>
)busybox
are installed into/usr/bin/
instead of/bin
./bin
is used in thelinux-image.sh
script. I think this happens due to the usage of theports
debian mirror. The ports binaries were installed into/usr/bin
./usr/lib/modules
instead of/lib/modules
./lib/modules
is used in thelinux-image.sh
.xz
and end with*.ko.xz
instead of*.ko
Unlike other targets
powerpc64
uses a pretty recent kernel (linux-image-6.6.8-powerpc64
) and I think3.
and4.
are related to that. None of these problems were particularly hard to fix. Are you interested in a pr with a fixedlinux-image.sh
script?What target(s) are you cross-compiling for?
powerpc64-unknown-linux-gnu
Which operating system is the host (e.g computer cross is on) running?
What architecture is the host?
What container engine is cross using?
cross version
cross 0.2.5
Example
No response
Additional information / notes
No response