svn commit: r364882 - stable/12/libexec/rc/rc.d

Edward Tomasz Napierala trasz at FreeBSD.org
Thu Aug 27 19:40:38 UTC 2020


Author: trasz
Date: Thu Aug 27 19:40:33 2020
New Revision: 364882
URL: https://svnweb.freebsd.org/changeset/base/364882

Log:
  MFC r354458:
  
  Extend the linux rc script to mount the neccessary file systems,
  set ELF fallback brand, and load pty(4).
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/12/libexec/rc/rc.d/linux
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/libexec/rc/rc.d/linux
==============================================================================
--- stable/12/libexec/rc/rc.d/linux	Thu Aug 27 19:37:28 2020	(r364881)
+++ stable/12/libexec/rc/rc.d/linux	Thu Aug 27 19:40:33 2020	(r364882)
@@ -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-stable-12 mailing list