[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 8/9] qemu-binfmt-conf.sh: add option --clear
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v5 8/9] qemu-binfmt-conf.sh: add option --clear |
Date: |
Tue, 12 Mar 2019 12:34:43 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 |
On 11/03/2019 21:23, Unai Martinez-Corral wrote:
> This is a partial implementation.
>
> Allows to remove a single or a list of already registered binfmt
> interpreters. Valid values are those in qemu_target_list.
> If TARGETS is empty, all the existing 'qemu-*' interpreters are
> removed.
>
> This is partial because 'debian' and 'systemd' configurations are not
> supported. The script will exit with error 'option clear not
> implemented for this mode yet'.
>
> Removal is done by printing '-1' as explained at:
> https://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rst
>
> Signed-off-by: Unai Martinez-Corral <address@hidden>
> ---
> scripts/qemu-binfmt-conf.sh | 39 +++++++++++++++++++++++++++++++++++--
> 1 file changed, 37 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
> index 2be9867727..382bdaabfe 100755
> --- a/scripts/qemu-binfmt-conf.sh
> +++ b/scripts/qemu-binfmt-conf.sh
> @@ -197,7 +197,7 @@ Options and associated environment variables:
>
> Argument Env-variable Description
> TARGETS QEMU_TARGETS A single arch name or a list of them
> (see all names below);
> - if empty, configure all known targets;
> + if empty, configure/clear all known
> targets;
> if 'NONE', no interpreter is
> configured.
> -h|--help display this usage
> -Q|--path PATH QEMU_PATH set path to qemu interpreter(s)
> @@ -206,6 +206,8 @@ TARGETS QEMU_TARGETS A single arch name
> or a list of them (see
> uses are cloned from the open file.
> -c|--credential QEMU_CREDENTIAL (yes) credential and security tokens
> are calculated according
> to the binary to interpret
> +-r|--clear QEMU_CLEAR (yes) remove registered interpreters
> for target TARGETS;
> + then exit.
> -e|--exportdir PATH DEBIANDIR define where to write configuration
> files
> SYSTEMDDIR
> -s|--systemd don't write into /proc, generate
> file(s) for
> @@ -218,6 +220,7 @@ QEMU_PATH=$QEMU_PATH
> QEMU_SUFFIX=$QEMU_SUFFIX
> QEMU_PERSISTENT=$QEMU_PERSISTENT
> QEMU_CREDENTIAL=$QEMU_CREDENTIAL
> +QEMU_CLEAR=$QEMU_CLEAR
>
> To import templates with update-binfmts, use :
>
> @@ -344,8 +347,28 @@ qemu_set_binfmts() {
> done
> }
>
> +qemu_clear_notimplemented() {
> + echo "ERROR: option clear not implemented for this mode yet" 1>&2
> + usage
> + exit 1
> +}
> +
> +qemu_clear_interpreter() {
> + names='qemu-*'
> + if [ $# -ne 0 ] ; then
> + qemu_check_target_list $1
> + unset names pre
> + for t in $checked_target_list ; do
> + names="${names}${pre}qemu-$t"
> + pre=' -o -name '
> + done
> + fi
> + find /proc/sys/fs/binfmt_misc/ -type f -name "$names" -exec sh -c
> 'printf %s -1 > {}' \;
You don't need to use "find".
put the printf in the loop with the full path
/proc/sys/fs/binfmt_mist/qemu-$t.
For the ALL case, use the list of the known interpreters, or if you want
to remove them all, use the "status" file that does that.
Thanks,
Laurent
- [Qemu-devel] [PATCH v5 4/9] qemu-binfmt-conf.sh: use the same presentation format as for qemu-*, (continued)
- [Qemu-devel] [PATCH v5 4/9] qemu-binfmt-conf.sh: use the same presentation format as for qemu-*, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 3/9] qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 2/9] qemu-binfmt-conf.sh: make opts -p and -c boolean, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 1/9] qemu-binfmt-conf.sh: enforce safe style consistency, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 5/9] qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 6/9] qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 7/9] qemu-binfmt-conf.sh: generalize <CPU> to positional TARGETS, Unai Martinez-Corral, 2019/03/11
- [Qemu-devel] [PATCH v5 8/9] qemu-binfmt-conf.sh: add option --clear, Unai Martinez-Corral, 2019/03/11
- Re: [Qemu-devel] [PATCH v5 8/9] qemu-binfmt-conf.sh: add option --clear,
Laurent Vivier <=
- [Qemu-devel] [PATCH v5 9/9] qemu-binfmt-conf.sh: add --test, Unai Martinez-Corral, 2019/03/11
- Re: [Qemu-devel] [PATCH v5 0/10] qemu-binfmt-conf.sh, Unai Martinez-Corral, 2019/03/11