mirror of
https://github.com/opnsense/src.git
synced 2026-03-12 05:32:15 -04:00
It was unused since 405c3050f1, which removed iBCS support.
This also moves the 'linux' rc script slightly earlier, which
might help in some setups. The original version of this patch
moved it even more, before 'mountcritlocal', which would fixe
mount(8) errors due to missing /dev/shm in setups with entries
for /path/to/chroot/dev/shm without the "late" flag; however,
in the end 'kldxref' turned out to depend on 'mountcritlocal'
anyway.
Reported By: pstef
Reviewed By: dchagin
Sponsored By: EPSRC
Differential Revision: https://reviews.freebsd.org/D29590
68 lines
1.6 KiB
Bash
Executable file
68 lines
1.6 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: linux
|
|
# REQUIRE: kldxref
|
|
# KEYWORD: nojail
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="linux"
|
|
desc="Enable Linux ABI"
|
|
rcvar="linux_enable"
|
|
start_cmd="${name}_start"
|
|
stop_cmd=":"
|
|
|
|
linux_start()
|
|
{
|
|
local _emul_path _tmpdir
|
|
|
|
case `sysctl -n hw.machine_arch` in
|
|
aarch64)
|
|
load_kld -e 'linux64elf' linux64
|
|
;;
|
|
amd64)
|
|
load_kld -e 'linuxelf' linux
|
|
load_kld -e 'linux64elf' linux64
|
|
;;
|
|
i386)
|
|
load_kld -e 'linuxelf' linux
|
|
;;
|
|
esac
|
|
|
|
_emul_path="$(sysctl -n compat.linux.emul_path)"
|
|
|
|
if [ -x ${_emul_path}/sbin/ldconfigDisabled ]; then
|
|
_tmpdir=`mktemp -d -t linux-ldconfig`
|
|
${_emul_path}/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
|
|
if ! cmp -s ${_tmpdir}/ld.so.cache ${_emul_path}/etc/ld.so.cache; then
|
|
cat ${_tmpdir}/ld.so.cache > ${_emul_path}/etc/ld.so.cache
|
|
fi
|
|
rm -rf ${_tmpdir}
|
|
fi
|
|
|
|
# Linux uses the pre-pts(4) tty naming scheme.
|
|
load_kld pty
|
|
|
|
# Handle unbranded ELF executables by defaulting to ELFOSABI_LINUX.
|
|
if [ `sysctl -ni kern.elf64.fallback_brand` -eq "-1" ]; then
|
|
sysctl kern.elf64.fallback_brand=3 > /dev/null
|
|
fi
|
|
|
|
if [ `sysctl -ni kern.elf32.fallback_brand` -eq "-1" ]; then
|
|
sysctl kern.elf32.fallback_brand=3 > /dev/null
|
|
fi
|
|
|
|
if checkyesno linux_mounts_enable; then
|
|
mount -o nocover -t linprocfs linprocfs "${_emul_path}/proc"
|
|
mount -o nocover -t linsysfs linsysfs "${_emul_path}/sys"
|
|
mount -o nocover -t devfs devfs "${_emul_path}/dev"
|
|
mount -o nocover,linrdlnk -t fdescfs fdescfs "${_emul_path}/dev/fd"
|
|
mount -o nocover,mode=1777 -t tmpfs tmpfs "${_emul_path}/dev/shm"
|
|
fi
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|