cross-rs/cross

Building a custom `initrd` with the `linux-image.sh` script of the docker image fails on powerpc64

gamma0987 opened this issue · 2 comments

Checklist

Describe your issue

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.

Problems:

  1. Missing gpg key 8D69674688B6CB36 (Debian Ports Archive Automatic Signing Key (2024) <ftpmaster@ports-master.debian.org>)
  2. 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.
  3. The kernel modules are installed into /usr/lib/modules instead of /lib/modules. /lib/modules is used in the linux-image.sh.
  4. 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
  • Linux / BSD
  • other OS (specify in description)

What architecture is the host?

  • x86_64 / AMD64
  • arm32
  • arm64 (including Mac M1)

What container engine is cross using?

  • docker
  • podman
  • other container engine (specify in description)

cross version

cross 0.2.5

Example

No response

Additional information / notes

No response

Id be very interested in a pr with fixes to this!

Ok :) I'm a little bit busy right now, but I'll start a pr the next days.