13 desc="Enable Linux ABI"
15 start_cmd="${name}_start"
20 local _emul_path _tmpdir
21 _emul_path="$(sysctl -n compat.linux.emul_path)"
23 load_kld -e 'linux(aout|elf)' linux
24 case `sysctl -n hw.machine_arch` in
26 load_kld -e 'linux64elf' linux64
29 if [ -x ${_emul_path}/sbin/ldconfigDisabled ]; then
30 _tmpdir=`mktemp -d -t linux-ldconfig`
31 ${_emul_path}/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
32 if ! cmp -s ${_tmpdir}/ld.so.cache ${_emul_path}/etc/ld.so.cache; then
33 cat ${_tmpdir}/ld.so.cache > ${_emul_path}/etc/ld.so.cache
38 # Linux uses the pre-pts(4) tty naming scheme.
41 # Handle unbranded ELF executables by defaulting to ELFOSABI_LINUX.
42 if [ `sysctl -ni kern.elf64.fallback_brand` -eq "-1" ]; then
43 sysctl kern.elf64.fallback_brand=3 > /dev/null
46 if [ `sysctl -ni kern.elf32.fallback_brand` -eq "-1" ]; then
47 sysctl kern.elf32.fallback_brand=3 > /dev/null
50 if checkyesno linux_mounts_enable; then
51 mount -o nocover -t linprocfs linprocfs "${_emul_path}/proc"
52 mount -o nocover -t linsysfs linsysfs "${_emul_path}/sys"
53 mount -o nocover -t devfs devfs "${_emul_path}/dev"
54 mount -o nocover,linrdlnk -t fdescfs fdescfs "${_emul_path}/dev/fd"
55 mount -o nocover,mode=1777 -t tmpfs tmpfs "${_emul_path}/dev/shm"