Provided container images¶
When QEMU is installed from distribution package managers, it is normally set up along with binfmt_misc
.
Nonetheless, in the context of this project we want to configure it with custom options, instead of relying on the
defaults.
A script provided by QEMU, qemu-binfmt-conf.sh,
can be used to do so.
Among other options, the flag that tells binfmt
to hold interpreters in memory is supported in qemu-binfmt-conf.sh
,
as -p
.
This project uses a modified version of qemu-binfmt-conf.sh
[1], which includes the following enhancements:
Optionally, the list of QEMU interpreters to be registered on the host can be limited.
Add option
--clear
.Add option
--test
.
In fact, the entrypoint to the following docker images is a wrapper [2] around qemu-binfmt-conf.sh
to provide
some synctactic sugar.
Manifests¶
Manifests are provided for the following hosts: amd64
, arm64v8
, arm32v7
, arm32v6
, i386
, s390x
or
ppc64le
.
That is, any of the target architectures provided by QEMU can be used on any of those hosts.
The procedure to generate each image involves extracting pre-built binaries and packaging them in container images, along with helper scripts. Hence, multiple images are generated in the process:
aptman/qus:pkg
: all theqemu-*-static
binaries from packages.debian.org/sid/qemu-user-static extracted on ascratch
image.aptman/qus:register
: abusybox
image with register.sh and qemu-binfmt-conf.sh. The entrypoint is set toregister.sh
.aptman/qus
: union of the two previous images.
Tip
Find usage instructions in the README.
Debian¶
For each HOST_ARCH
, an image named ${HOST_ARCH}-d${VERSION}${TAG}
is published; where TAG
is
-pkg|-register|""
.
Moreover, three manifests are available:
aptman/qus:d${VERSION}-pkg
,
aptman/qus:d${VERSION}-register
and aptman/qus:d${VERSION}
.
Tip
latest
/default versions above correspond to these Debian variants. Therefore, running aptman/qus
on an
amd64
host is equivalent to running aptman/qus:d6.2
or aptman/qus:amd64-d6.2
.
Apart from those, aptman/qus:mips-pkg
and aptman/qus:mips64el-pkg
are also available.
Fedora¶
For each HOST_ARCH
(except arm32v6
), an image named ${HOST_ARCH}-f${VERSION}${TAG}
is published; where
TAG
is -pkg|-register|""
.
Moreover, three manifests are available:
aptman/qus:f${VERSION}-pkg
,
aptman/qus:f${VERSION}-register
and aptman/qus:f${VERSION}
.