65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
|
#!/sbin/openrc-run
|
||
|
# Copyright 1999-2017 Gentoo Foundation
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
# Enable automatic non-native program execution by the kernel.
|
||
|
|
||
|
# Defaulting to OC should be safe because it comes down to:
|
||
|
# - do we trust the interp itself to not be malicious? yes; we built it.
|
||
|
# - do we trust the programs we're running? ish; same permission as native
|
||
|
# binaries apply. so if user can do bad stuff natively, cross isn't worse.
|
||
|
: ${QEMU_BINFMT_FLAGS:=OC}
|
||
|
|
||
|
depend() {
|
||
|
after procfs
|
||
|
}
|
||
|
|
||
|
start() {
|
||
|
ebegin "Registering qemu-user binaries (flags: ${QEMU_BINFMT_FLAGS})"
|
||
|
|
||
|
if [ ! -d /proc/sys/fs/binfmt_misc ] ; then
|
||
|
modprobe -q binfmt_misc
|
||
|
fi
|
||
|
|
||
|
if [ ! -d /proc/sys/fs/binfmt_misc ] ; then
|
||
|
eend 1 "You need support for 'misc binaries' in your kernel!"
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
if [ ! -f /proc/sys/fs/binfmt_misc/register ] ; then
|
||
|
mount -t binfmt_misc -o nodev,noexec,nosuid \
|
||
|
binfmt_misc /proc/sys/fs/binfmt_misc >/dev/null 2>&1
|
||
|
eend $? || return
|
||
|
fi
|
||
|
|
||
|
# Probe the native cpu type so we don't try registering them.
|
||
|
local cpu="$(uname -m)"
|
||
|
case "${cpu}" in
|
||
|
armv[4-9]*)
|
||
|
cpu="arm"
|
||
|
;;
|
||
|
i386|i486|i586|i686|i86pc|BePC|x86_64)
|
||
|
cpu="i386"
|
||
|
;;
|
||
|
m68k)
|
||
|
cpu="m68k"
|
||
|
;;
|
||
|
mips*)
|
||
|
cpu="mips"
|
||
|
;;
|
||
|
"Power Macintosh"|ppc|ppc64)
|
||
|
cpu="ppc"
|
||
|
;;
|
||
|
s390*)
|
||
|
cpu="s390"
|
||
|
;;
|
||
|
sh*)
|
||
|
cpu="sh"
|
||
|
;;
|
||
|
sparc*)
|
||
|
cpu="sparc"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
# Register the interpreter for each cpu except for the native one.
|