Linux, configuration
Contents |
Loading Linux modules
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
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 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