diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2022-04-19 10:09:57 +0100 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2022-04-20 16:04:20 +0100 |
commit | 396408ee922eeb409f08fdab6f3df7400279e634 (patch) | |
tree | 7c64ef74e9480087458a6605ad5bfbbf0fc328e2 | |
parent | 11593544df6f8febb3ce87015c22b429bf43c4c7 (diff) | |
download | qemu-396408ee922eeb409f08fdab6f3df7400279e634.zip qemu-396408ee922eeb409f08fdab6f3df7400279e634.tar.gz qemu-396408ee922eeb409f08fdab6f3df7400279e634.tar.bz2 |
docs/devel: add some notes on the binfmt-image-debian targets
We document some of this on the wiki but lets move it into our
official developer notes documentation.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220419091020.3008144-3-alex.bennee@linaro.org>
-rw-r--r-- | docs/devel/testing.rst | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst index 92d40cd..5b60a31 100644 --- a/docs/devel/testing.rst +++ b/docs/devel/testing.rst @@ -637,6 +637,44 @@ The full set of annotations can be found here: https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp +docker-binfmt-image-debian-% targets +------------------------------------ + +It is possible to combine Debian's bootstrap scripts with a configured +``binfmt_misc`` to bootstrap a number of Debian's distros including +experimental ports not yet supported by a released OS. This can +simplify setting up a rootfs by using docker to contain the foreign +rootfs rather than manually invoking chroot. + +Setting up ``binfmt_misc`` +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can use the script ``qemu-binfmt-conf.sh`` to configure a QEMU +user binary to automatically run binaries for the foreign +architecture. While the scripts will try their best to work with +dynamically linked QEMU's a statically linked one will present less +potential complications when copying into the docker image. Modern +kernels support the ``F`` (fix binary) flag which will open the QEMU +executable on setup and avoids the need to find and re-open in the +chroot environment. This is triggered with the ``--persistent`` flag. + +Example invocation +~~~~~~~~~~~~~~~~~~ + +For example to setup the HPPA ports builds of Debian:: + + make docker-binfmt-image-debian-sid-hppa \ + DEB_TYPE=sid DEB_ARCH=hppa \ + DEB_URL=http://ftp.ports.debian.org/debian-ports/ \ + DEB_KEYRING=/usr/share/keyrings/debian-ports-archive-keyring.gpg \ + EXECUTABLE=(pwd)/qemu-hppa V=1 + +The ``DEB_`` variables are substitutions used by +``debian-boostrap.pre`` which is called to do the initial debootstrap +of the rootfs before it is copied into the container. The second stage +is run as part of the build. The final image will be tagged as +``qemu/debian-sid-hppa``. + VM testing ---------- |