qemu-binfmt-conf.sh: allow to provide a suffix to the interpreter name

some distros provide a qemu-CPU-static binary beside the qemu-CPU one.
This change allows to use it by providing "--qemu-suffix -static" to the
script.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20180627205317.10343-4-laurent@vivier.eu>
This commit is contained in:
Laurent Vivier 2018-06-27 22:53:17 +02:00
parent 01ecd22a29
commit 7155be7cda

View File

@ -161,25 +161,26 @@ usage() {
cat <<EOF cat <<EOF
Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU] Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU]
[--help][--credential yes|no][--exportdir PATH] [--help][--credential yes|no][--exportdir PATH]
[--persistent yes|no] [--persistent yes|no][--qemu-suffix SUFFIX]
Configure binfmt_misc to use qemu interpreter Configure binfmt_misc to use qemu interpreter
--help: display this usage --help: display this usage
--qemu-path: set path to qemu interpreter ($QEMU_PATH) --qemu-path: set path to qemu interpreter ($QEMU_PATH)
--debian: don't write into /proc, --qemu-suffix: add a suffix to the default interpreter name
instead generate update-binfmts templates --debian: don't write into /proc,
--systemd: don't write into /proc, instead generate update-binfmts templates
instead generate file for systemd-binfmt.service --systemd: don't write into /proc,
for the given CPU. If CPU is "ALL", generate a instead generate file for systemd-binfmt.service
file for all known cpus for the given CPU. If CPU is "ALL", generate a
--exportdir: define where to write configuration files file for all known cpus
(default: $SYSTEMDDIR or $DEBIANDIR) --exportdir: define where to write configuration files
--credential: if yes, credential and security tokens are (default: $SYSTEMDDIR or $DEBIANDIR)
calculated according to the binary to interpret --credential: if yes, credential and security tokens are
--persistent: if yes, the interpreter is loaded when binfmt is calculated according to the binary to interpret
configured and remains in memory. All future uses --persistent: if yes, the interpreter is loaded when binfmt is
are cloned from the open file. configured and remains in memory. All future uses
are cloned from the open file.
To import templates with update-binfmts, use : To import templates with update-binfmts, use :
@ -297,6 +298,7 @@ qemu_set_binfmts() {
qemu="$QEMU_PATH/qemu-i386" qemu="$QEMU_PATH/qemu-i386"
fi fi
qemu="$qemu$QEMU_SUFFIX"
if [ "$host_family" != "$family" ] ; then if [ "$host_family" != "$family" ] ; then
$BINFMT_SET $BINFMT_SET
fi fi
@ -312,8 +314,9 @@ DEBIANDIR="/usr/share/binfmts"
QEMU_PATH=/usr/local/bin QEMU_PATH=/usr/local/bin
CREDENTIAL=no CREDENTIAL=no
PERSISTENT=no PERSISTENT=no
QEMU_SUFFIX=""
options=$(getopt -o ds:Q:e:hc:p: -l debian,systemd:,qemu-path:,exportdir:,help,credential:,persistent: -- "$@") options=$(getopt -o ds:Q:S:e:hc:p: -l debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,credential:,persistent: -- "$@")
eval set -- "$options" eval set -- "$options"
while true ; do while true ; do
@ -349,6 +352,10 @@ while true ; do
shift shift
QEMU_PATH="$1" QEMU_PATH="$1"
;; ;;
-F|--qemu-suffix)
shift
QEMU_SUFFIX="$1"
;;
-e|--exportdir) -e|--exportdir)
shift shift
EXPORTDIR="$1" EXPORTDIR="$1"