Linux, configuration
(→More etc/ configurations) |
|||
Line 1: | Line 1: | ||
==Loading Linux modules== | ==Loading Linux modules== | ||
+ | ===Quick method=== | ||
First add to ''/etc/rc.conf'', to enable Linux/ELF binary emulation: | First add to ''/etc/rc.conf'', to enable Linux/ELF binary emulation: | ||
linux_enable="YES" | linux_enable="YES" | ||
Line 12: | Line 13: | ||
kldload linux | kldload linux | ||
− | ==Compiling modules directly into kernel== | + | ===Compiling modules directly into kernel=== |
Alternatively, compile directly into the kernel by adding these options to your custom KERNCONF file in ''/usr/src/sys/*/conf/'' : | Alternatively, compile directly into the kernel by adding these options to your custom KERNCONF file in ''/usr/src/sys/*/conf/'' : | ||
options COMPAT_LINUX32 # This is used for 64bit processors | options COMPAT_LINUX32 # This is used for 64bit processors | ||
Line 58: | Line 59: | ||
==Ports== | ==Ports== | ||
− | Installing Linux Centos is a recommended way of | + | Installing Linux Centos is a recommended way of adding to Linux compatibility : |
% make distclean | % make distclean | ||
% cd /usr/ports/emulators/linux_base-c6 | % cd /usr/ports/emulators/linux_base-c6 |
Revision as of 15:49, 6 March 2015
Contents |
Loading Linux modules
Quick method
First add to /etc/rc.conf, to enable Linux/ELF binary emulation:
linux_enable="YES"
Then either edit /boot/loader.conf to include:
linprocfs_load="YES" linsysfs="YES" linux_load="YES" lindev_load="YES"
To load the module without rebooting type:
kldload linux
Compiling modules directly into kernel
Alternatively, compile directly into the kernel by adding these options to your custom KERNCONF file in /usr/src/sys/*/conf/ :
options COMPAT_LINUX32 # This is used for 64bit processors #options COMPAT_LINUX # This is used for 32bit processors; this option won't work on 64bit processors options LINPROCFS options LINSYSFS device lindev
If this is done, comment out linux related lines in both rc.conf and loader.conf as mentioned in the previous section.
Linux filesystems
Linux filesystems then need to be mounted via adding the following to /etc/fstab :
linproc /compat/linux/proc linprocfs rw 0 0 linsys /compat/linux/sys linsysfs rw 0 0
The mount command may also be used by reflecting what normally goes into fstab.
More etc/ configurations
Most of the below is according to messages after compiling ports, or is from the FreeBSD Handbook, these instructions may change over time:
/etc/devfs.conf :
link /tmp shm
/etc/sysctl.conf :
compat.linux.osrelease=2.6.18 # This or a similar line is only required if the linux emulated kernel is incompatible or outdated
/compat/linux/etc/yp.conf
domainname mydomain.com # this is your network's domain-name without localhost ypserver localhost # my.yp.server
/compat/linux/etc/nsswitch.conf
passwd: files nis shadow: files nis group: files nis hosts: files nis dns
/compat/linux/etc/host.conf should look similar to, with an adjustment for your network settings:
order hosts, bind multi on
If the sub-directories don't exist yet, use "mkdir -p".
Emulated files
Use the command ldd to find libraries. brandelf is used to label programs as linux files.
brandelf -t Linux myfile
Ports
Installing Linux Centos is a recommended way of adding to Linux compatibility :
% make distclean % cd /usr/ports/emulators/linux_base-c6 % make install distclean
References
- Related manpages; and filesystem documentation
- FreeBSD Handbook: Linux® Binary Compatibility