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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to