svn commit: r354458 - head/libexec/rc/rc.d

Edward Tomasz Napierala trasz at FreeBSD.org
Thu Nov 7 18:15:25 UTC 2019


Author: trasz
Date: Thu Nov  7 18:15:24 2019
New Revision: 354458
URL: https://svnweb.freebsd.org/changeset/base/354458

Log:
  Extend the linux rc script to mount the neccessary file systems,
  set ELF fallback brand, and load pty(4).
  
  Reviewed by:	emaste (earlier version)
  MFC after:	2 weeks
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D21874

Modified:
  head/libexec/rc/rc.d/linux

Modified: head/libexec/rc/rc.d/linux
==============================================================================
--- head/libexec/rc/rc.d/linux	Thu Nov  7 18:14:58 2019	(r354457)
+++ head/libexec/rc/rc.d/linux	Thu Nov  7 18:15:24 2019	(r354458)
@@ -17,7 +17,7 @@ stop_cmd=":"
 
 linux_start()
 {
-	local _tmpdir
+	local _emul_path _tmpdir
 
 	load_kld -e 'linux(aout|elf)' linux
 	case `sysctl -n hw.machine_arch` in
@@ -33,6 +33,25 @@ linux_start()
 		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
+
+	_emul_path="/compat/linux"
+	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 -t fdescfs fdescfs "${_emul_path}/dev/fd"
+	mount -o nocover,mode=1777 -t tmpfs tmpfs "${_emul_path}/dev/shm"
 }
 
 load_rc_config $name


More information about the svn-src-head mailing list