Comments (15)
@pvizeli Oh did you already test the released 4.1.0? Thanks for checking.
Now as I mentioned above below version tag images are available too.
$ docker system prune -a -f
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
$ docker run --rm --privileged multiarch/qemu-user-static:4.1.0-1 --reset -p yes
$ cat /proc/sys/fs/binfmt_misc/qemu-aarch64
$ docker run --rm -t multiarch/qemu-user-static:aarch64 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:aarch64-4.1.0-1 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:x86_64-aarch64-4.1.0-1 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:register
from qemu-user-static.
The log and output for 4.0.0-5:
https://dev.azure.com/home-assistant/Hass.io/_build/results?buildId=3377&view=results
ERROR: Failed to set xattrs on usr/libexec/gcc/armv6-alpine-linux-musleabihf/8.3.0/.apk.e5bdab84376a2fa35aedc80d2566e19a87cfa87b24e0ac6b: Function not implemented
from qemu-user-static.
Hi @pvizeli
After I revert to previus version, it works.
Do you know which version is the previous version of qemu? qemu 4.0.0-2?
You faced the issue with qemu 4.0.0-5.
Could you solve the issue by building images from qemu 4.0.0-2 by yourself?
I have a possible solution to improve this kind of issue.
That is to create version tagged images.
In my understanding, currently this repository's pipeline creates below images without qemu version number.
multiarch/qemu-user-static
: (new)multiarch/qemu-user-static:$from_arch-$to_arch
multiarch/qemu-user-static:$to_arch
(same withmultiarch/qemu-user-static:$from_arch-$to_arch
)multiarch/qemu-user-static:register
But for example, we change to add images with version tag, you have some choices when you face specific qemu version's image.
For example, when a used qemu's version is X.Y.Z-R
The pipeline program can set $version = X.Y.Z-R or X.Y in the process, and create below images.
I would prefer the $version is X.Y than X.Y.Z-R so that we can save the number of images.
multiarch/qemu-user-static
multiarch/qemu-user-static:$version
multiarch/qemu-user-static:$from_arch-$to_arch
multiarch/qemu-user-static:$from_arch-$to_arch-$version
multiarch/qemu-user-static:$to_arch
multiarch/qemu-user-static:$to_arch-$version
multiarch/qemu-user-static:register
multiarch/qemu-user-static:register-$version
You can choose one from version tagged images.
multiarch/qemu-user-static:arm-4.0
(the latest version is alias ofmultiarch/qemu-user-static:arm
)multiarch/qemu-user-static:arm-3.1
.
What do you think?
from qemu-user-static.
I'm experiencing the same on v4.0.0-5
from qemu-user-static.
Versioning, as you've described above, would definitely be appreciated. I'd recommend triggering versioned builds on git tags.
from qemu-user-static.
Now the multiarch/qemu-user-static
images started to provide version tag's images.
v4.0.0-5
, v4.0.0-4
and v3.1.1-2
(Latest version of qemu version 3).
Below kind of commands work.
Could you try v4.0.0-4
or v3.1.1-2
images, and report us if it works or not on your environment?
If the versions are not enough, I will run the pipeline for other old qemu versions such as qemu v4.0.0-2
.
It should also have a backward compatibility.
If you want to see the behavior of the containers without local cache, you can run below command to remove all the images at first.
$ docker system prune -a -f
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
$ docker run --rm --privileged multiarch/qemu-user-static:v4.0.0-5 --reset -p yes
$ docker run --rm --privileged multiarch/qemu-user-static:v4.0.0-4 --reset -p yes
$ docker run --rm --privileged multiarch/qemu-user-static:v3.1.1-2 --reset -p yes
$ cat /proc/sys/fs/binfmt_misc/qemu-aarch64
$ docker run --rm --privileged multiarch/qemu-user-static:register --reset
$ cat /proc/sys/fs/binfmt_misc/qemu-aarch64
$ docker run --rm -t multiarch/qemu-user-static:aarch64 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:aarch64-v4.0.0-5 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:aarch64-v4.0.0-4 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:aarch64-v3.1.1-2 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:x86_64-aarch64 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:x86_64-aarch64-v4.0.0-5 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:x86_64-aarch64-v4.0.0-4 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:x86_64-aarch64-v3.1.1-2 /usr/bin/qemu-aarch64-static -version
$ docker run --rm -t multiarch/qemu-user-static:s390x-v4.0.0-4 /usr/bin/qemu-s390x-static -version
This new feature will be documented later.
from qemu-user-static.
Hello, I've come across the same issue recently. Annoyingly I did not come across this issue, however, after a lot of searching I came back with nothing so I reached out to the Alpine devs on IRC. This is the relevant issue https://gitlab.alpinelinux.org/alpine/apk-tools/issues/10657
@pvizeli could you confirm which version did work?
from qemu-user-static.
Tried it with all above mentioned versions, and it seems only 4.0.0-5
causes the issue.
$ docker run --rm --privileged multiarch/qemu-user-static:v4.0.0-4 --reset -p yes
Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha
Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
Setting /usr/bin/qemu-armeb-static as binfmt interpreter for armeb
Setting /usr/bin/qemu-sparc32plus-static as binfmt interpreter for sparc32plus
Setting /usr/bin/qemu-ppc-static as binfmt interpreter for ppc
Setting /usr/bin/qemu-ppc64-static as binfmt interpreter for ppc64
Setting /usr/bin/qemu-ppc64le-static as binfmt interpreter for ppc64le
Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k
Setting /usr/bin/qemu-mips-static as binfmt interpreter for mips
Setting /usr/bin/qemu-mipsel-static as binfmt interpreter for mipsel
Setting /usr/bin/qemu-mipsn32-static as binfmt interpreter for mipsn32
Setting /usr/bin/qemu-mipsn32el-static as binfmt interpreter for mipsn32el
Setting /usr/bin/qemu-mips64-static as binfmt interpreter for mips64
Setting /usr/bin/qemu-mips64el-static as binfmt interpreter for mips64el
Setting /usr/bin/qemu-sh4-static as binfmt interpreter for sh4
Setting /usr/bin/qemu-sh4eb-static as binfmt interpreter for sh4eb
Setting /usr/bin/qemu-s390x-static as binfmt interpreter for s390x
Setting /usr/bin/qemu-aarch64-static as binfmt interpreter for aarch64
Setting /usr/bin/qemu-aarch64_be-static as binfmt interpreter for aarch64_be
Setting /usr/bin/qemu-hppa-static as binfmt interpreter for hppa
Setting /usr/bin/qemu-riscv32-static as binfmt interpreter for riscv32
Setting /usr/bin/qemu-riscv64-static as binfmt interpreter for riscv64
Setting /usr/bin/qemu-xtensa-static as binfmt interpreter for xtensa
Setting /usr/bin/qemu-xtensaeb-static as binfmt interpreter for xtensaeb
Setting /usr/bin/qemu-microblaze-static as binfmt interpreter for microblaze
Setting /usr/bin/qemu-microblazeel-static as binfmt interpreter for microblazeel
Setting /usr/bin/qemu-or1k-static as binfmt interpreter for or1k
$ docker run --rm -it arm64v8/alpine:3.10 apk add gcc
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/aarch64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/aarch64/APKINDEX.tar.gz
(1/10) Installing binutils (2.32-r0)
(2/10) Installing gmp (6.1.2-r1)
(3/10) Installing isl (0.18-r0)
(4/10) Installing libgomp (8.3.0-r0)
(5/10) Installing libatomic (8.3.0-r0)
(6/10) Installing libgcc (8.3.0-r0)
(7/10) Installing mpfr3 (3.1.5-r1)
(8/10) Installing mpc1 (1.1.0-r0)
(9/10) Installing libstdc++ (8.3.0-r0)
(10/10) Installing gcc (8.3.0-r0)
Executing busybox-1.30.1-r2.trigger
OK: 77 MiB in 24 packages
from qemu-user-static.
@hoshsadiq thank you for checking the issue.
Did actually below your report have error message on 4.0.0-5
? Which kind of error did you face on 4.0.0-5
?
$ docker run --rm -it arm64v8/alpine:3.10 apk add gcc
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/aarch64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/aarch64/APKINDEX.tar.gz
(1/10) Installing binutils (2.32-r0)
(2/10) Installing gmp (6.1.2-r1)
(3/10) Installing isl (0.18-r0)
(4/10) Installing libgomp (8.3.0-r0)
(5/10) Installing libatomic (8.3.0-r0)
(6/10) Installing libgcc (8.3.0-r0)
(7/10) Installing mpfr3 (3.1.5-r1)
(8/10) Installing mpc1 (1.1.0-r0)
(9/10) Installing libstdc++ (8.3.0-r0)
(10/10) Installing gcc (8.3.0-r0)
Executing busybox-1.30.1-r2.trigger
OK: 77 MiB in 24 packages
Actually we can reproduce the issue on qemu-user-static
RPM on Fedora, we can report the issue to below page issues.
https://src.fedoraproject.org/rpms/qemu
But it seems the latest version qemu is already 4.1.0
.
from qemu-user-static.
Pretty much same as @pvizeli said:
$ docker run --rm --privileged multiarch/qemu-user-static:v4.0.0-5 --reset -p yes
Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha
Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
Setting /usr/bin/qemu-armeb-static as binfmt interpreter for armeb
Setting /usr/bin/qemu-sparc32plus-static as binfmt interpreter for sparc32plus
Setting /usr/bin/qemu-ppc-static as binfmt interpreter for ppc
Setting /usr/bin/qemu-ppc64-static as binfmt interpreter for ppc64
Setting /usr/bin/qemu-ppc64le-static as binfmt interpreter for ppc64le
Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k
Setting /usr/bin/qemu-mips-static as binfmt interpreter for mips
Setting /usr/bin/qemu-mipsel-static as binfmt interpreter for mipsel
Setting /usr/bin/qemu-mipsn32-static as binfmt interpreter for mipsn32
Setting /usr/bin/qemu-mipsn32el-static as binfmt interpreter for mipsn32el
Setting /usr/bin/qemu-mips64-static as binfmt interpreter for mips64
Setting /usr/bin/qemu-mips64el-static as binfmt interpreter for mips64el
Setting /usr/bin/qemu-sh4-static as binfmt interpreter for sh4
Setting /usr/bin/qemu-sh4eb-static as binfmt interpreter for sh4eb
Setting /usr/bin/qemu-s390x-static as binfmt interpreter for s390x
Setting /usr/bin/qemu-aarch64-static as binfmt interpreter for aarch64
Setting /usr/bin/qemu-aarch64_be-static as binfmt interpreter for aarch64_be
Setting /usr/bin/qemu-hppa-static as binfmt interpreter for hppa
Setting /usr/bin/qemu-riscv32-static as binfmt interpreter for riscv32
Setting /usr/bin/qemu-riscv64-static as binfmt interpreter for riscv64
Setting /usr/bin/qemu-xtensa-static as binfmt interpreter for xtensa
Setting /usr/bin/qemu-xtensaeb-static as binfmt interpreter for xtensaeb
Setting /usr/bin/qemu-microblaze-static as binfmt interpreter for microblaze
Setting /usr/bin/qemu-microblazeel-static as binfmt interpreter for microblazeel
Setting /usr/bin/qemu-or1k-static as binfmt interpreter for or1k
$ docker run --rm -it arm64v8/alpine:3.10 apk add gcc
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/aarch64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/aarch64/APKINDEX.tar.gz
(1/10) Installing binutils (2.32-r0)
(2/10) Installing gmp (6.1.2-r1)
(3/10) Installing isl (0.18-r0)
(4/10) Installing libgomp (8.3.0-r0)
(5/10) Installing libatomic (8.3.0-r0)
(6/10) Installing libgcc (8.3.0-r0)
(7/10) Installing mpfr3 (3.1.5-r1)
(8/10) Installing mpc1 (1.1.0-r0)
(9/10) Installing libstdc++ (8.3.0-r0)
(10/10) Installing gcc (8.3.0-r0)
ERROR: Failed to set xattrs on usr/libexec/gcc/aarch64-alpine-linux-musl/8.3.0/.apk.e7f97aa03b8e515a97a9eb65f467457a2c02cba9c11c4651: Function not implemented
Executing busybox-1.30.1-r2.trigger
1 error; 77 MiB in 24 packages
If you could kick off a build for 4.1.0 I'm happy to test it.
from qemu-user-static.
@hoshsadiq sure, thanks for the report of the error message.
I think maybe someone will upgrade qemu to latest version within a few days. In the meantime, of course below can be your temporary workflow.
$ docker run --rm --privileged multiarch/qemu-user-static:v4.0.0-4 --reset -p yes
If nobody upgrades it, I might do it this week after fixing #91 .
If you could kick off a build for 4.1.0 I'm happy to test it.
Thanks. I will ask you to test it on 4.1.0
.
from qemu-user-static.
solve with 4.1.0
from qemu-user-static.
I would close this ticket.
from qemu-user-static.
Thanks all.
from qemu-user-static.
This new feature will be documented later.
It is documented now by #96 .
from qemu-user-static.
Related Issues (20)
- ldd fails with qemu-aarch64 HOT 6
- Need support for run x86_64 on linux/arm64 HOT 13
- Intermittent exec format error when building linux/arm64 (alpine 3.15+) on amd64 host HOT 1
- speed is slow when use as cross-compile solution HOT 5
- qemu: uncaught target signal 11 (Segmentation fault) - core dumped HOT 1
- Does loong64 and mips/mipsle will be support?
- Where is qemu-$to_arch-static binary files when container whose arch isn't equal to host's one is run? HOT 8
- Undocumented convention: The `--reset` flag must be the first argument
- Mirror docker image to ghcr.io HOT 3
- node.js 16 build on UBI8 is very slow and fails in GH Actions with ECONNRESET and too many open files errors.
- argv[0] can now be automatically fixed
- need to upgrade to support loongarch64 HOT 8
- [Problem] Can I use it in gitlab runner? HOT 4
- iptables-nft not supported in qemu-aarch64-static HOT 6
- Need pinned Alpine Linux versions, e.g., v3.17 HOT 1
- mount: permission denied (are you root?)
- Is this project still active? HOT 1
- armv7 and a page size of 32K
- Have trouble running quemu-static on arm64 with exec format error
- Publish new image with latest busybox
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qemu-user-static.