LINUX(4) | Device Drivers Manual | LINUX(4) |
linux
— Linux ABI
support
To compile support for this ABI into an i386 kernel place the following line in your kernel configuration file:
options COMPAT_LINUX
for an amd64 kernel use:
options
COMPAT_LINUX32
Alternatively, to load the ABI as a module at boot time, place the following line in loader.conf(5):
linux_load="YES"
The linux
module provides limited Linux
ABI (application binary interface) compatibility for userland applications.
The module provides the following significant facilities:
It is important to note that the Linux ABI support it not provided through an emulator. Rather, a true (albeit limited) ABI implementation is provided.
The following sysctl(8) tunable variables are available:
The linux
module can be linked into the
kernel statically with the COMPAT_LINUX
kernel
configuration option or loaded as required. The following command will load
the module if it is neither linked into the kernel nor already loaded as a
module:
if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then kldload linux > /dev/null 2>&1 fi
Note that dynamically linked Linux executables will require a suitable environment in /compat/linux. Specifically, the Linux run-time linker's hints files should be correctly initialized. For this reason, it is common to execute the following commands to prepare the system to correctly run Linux executables:
if [ -x /compat/linux/sbin/ldconfig ]; then /compat/linux/sbin/ldconfig -r /compat/linux fi
For information on loading the linux
kernel loadable module automatically on system startup, see
rc.conf(5). This information applies regardless of whether
the linux
module is statically linked into the
kernel or loaded as a module.
Linux ABI support first appeared in FreeBSD 2.1.
August 1, 2017 | Debian |