aboutsummaryrefslogtreecommitdiff
path: root/scripts/qemu-binfmt-conf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/qemu-binfmt-conf.sh')
-rwxr-xr-xscripts/qemu-binfmt-conf.sh14
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 9900554608..00c9c3aa16 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -161,6 +161,7 @@ usage() {
cat <<EOF
Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU]
[--help][--credential yes|no][--exportdir PATH]
+ [--persistent yes|no]
Configure binfmt_misc to use qemu interpreter
@@ -176,6 +177,9 @@ Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU]
(default: $SYSTEMDDIR or $DEBIANDIR)
--credential: if yes, credential and security tokens are
calculated according to the binary to interpret
+ --persistent: if yes, the interpreter is loaded when binfmt is
+ configured and remains in memory. All future uses
+ are cloned from the open file.
To import templates with update-binfmts, use :
@@ -245,6 +249,9 @@ qemu_generate_register() {
if [ "$CREDENTIAL" = "yes" ] ; then
flags="OC"
fi
+ if [ "$PERSISTENT" = "yes" ] ; then
+ flags="${flags}F"
+ fi
echo ":qemu-$cpu:M::$magic:$mask:$qemu:$flags"
}
@@ -304,8 +311,9 @@ DEBIANDIR="/usr/share/binfmts"
QEMU_PATH=/usr/local/bin
CREDENTIAL=no
+PERSISTENT=no
-options=$(getopt -o ds:Q:e:hc: -l debian,systemd:,qemu-path:,exportdir:,help,credential: -- "$@")
+options=$(getopt -o ds:Q:e:hc:p: -l debian,systemd:,qemu-path:,exportdir:,help,credential:,persistent: -- "$@")
eval set -- "$options"
while true ; do
@@ -353,6 +361,10 @@ while true ; do
shift
CREDENTIAL="$1"
;;
+ -p|--persistent)
+ shift
+ PERSISTENT="$1"
+ ;;
*)
break
;;