Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
4 of 11 tasks
gamma0987 opened this issue Jan 2, 2024 · 2 comments · Fixed by #1405
Closed
4 of 11 tasks

Comments

@gamma0987
Copy link
Contributor

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

@Emilgardis
Copy link
Member

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

@gamma0987
Copy link
Contributor Author

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

gamma0987 added a commit to gamma0987/cross that referenced this issue Jan 7, 2024
gamma0987 added a commit to gamma0987/cross that referenced this issue Jan 7, 2024
gamma0987 added a commit to gamma0987/cross that referenced this issue Jan 7, 2024
gamma0987 added a commit to gamma0987/cross that referenced this issue Jan 8, 2024
github-merge-queue bot pushed a commit that referenced this issue Jan 8, 2024
As promised here's the fixed `linux-image.sh` script.

As outlined in #1399 this pr fixes:

* Missing gpg key 8D69674688B6CB36 (Debian Ports Archive Automatic
Signing Key (2024) <ftpmaster@ports-master.debian.org>)
* The binaries and busybox might also be installed into `/usr/bin/`
instead of `/bin`.
* The kernel modules might also installed into `/usr/lib/modules`
instead of `/lib/modules`.
* The kernel modules might be compressed with `xz` and end with
`*.ko.xz` instead of just `*.ko`

The first commit adds some vim special files to `.gitignore` and in the
second commit the script was formatted with `shfmt` with standard
settings and some minor issues from `shellcheck` were fixed.

The third commit fixes the actual issues. Not sure if you wanna keep the
first two commits but they made working on this file easier.

Closes #1399
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants