pavement

Linux, configuration

From FreeBSDwiki
Revision as of 15:46, 6 March 2015 by Sidetone (Talk | contribs)
Jump to: navigation, search

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

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 improving Linux compatibility :

% make distclean
% cd /usr/ports/emulators/linux_base-c6
% make install distclean

References

Personal tools