User Tools

Site Tools


project:freebsd:start

This is an old revision of the document!


Freebsd
freebsd.jpg
founder: maxfx
depends on:
interested: ruza
malanius
RAINBOF
ray
foonix
software license: BSD
hardware license: BSD

~~META: status = active &relation firstimage = :project:freebsd.jpg ~~

FreeBSD

FreeBSD is a freely available and open source implementation of the Berkeley version of the UNIX operating system.This system is in the same family of operating systems as Solaris, AIX, HP-UX, and Digital UNIX. The original UNIX operating system can trace its roots back to the 1960s. The designers of UNIX created a design so flexible and powerful that even 30 years later, UNIX (and thus FreeBSD as well) remains one of the most versatile, well-respected operating systems available. It runs on the following platforms: AMD64, ARM, ARM64, I386, MIPS, PC98, PPC, SPARC, XBOX, RPI, PICO. FreeBSD offers advanced networking, performance, security and compatibility features today which are still missing in other operating systems, even some of the best commercial ones.

Goals and ideas project

* More information about FreeBSD OS.

* More information about network layer

* More information about kernel

* Porting kernel for other unfriendly platforms

* Porting or Run kernel for other unfriendly android mobile phones or tablet.

* More desktops with BSD ! ….

Derivates FreeBSD OS

Derivate FreeBSD Use Link
FreeBSD Easy use https://www.freebsd.org/
TrueOS / PCBSD Easy use https://www.trueos.org/
True-Pico https://www.trueos.org/trueos-pico/
GhostBSD Easy use http://www.ghostbsd.org/
DesktopBSD Easy use http://www.desktopbsd.net/
HardenedBSD Easy use https://hardenedbsd.org/
MidnightBSD Easy use http://www.midnightbsd.org/
DragonFly Easy use https://www.dragonflybsd.org/
TrustedBSD Easy use http://www.trustedbsd.org/
Frenzy Easy use http://frenzy.org.ua/eng/
Debian FreeBSD Easy use https://wiki.debian.org/Debian_GNU/kFreeBSD
Gentoo FreeBSD Easy use https://wiki.gentoo.org/wiki/Gentoo_FreeBSD
Raspbsd Easy use http://www.raspbsd.org/
Freesbie Easy use http://www.freesbie.org/


Information about FreeBSD

For Beginner

FreeBSD is not Windows

FreeBSD features

FreeBSD tips and tricks

FreeBSD Video

FreeBSD Kernel Porting

FreeBSD Sound

FreeBSD Myth (For linux users)

Avoiding Linuxisms

For Linux users

http://www.freebsd.cz/doc/en/articles/linux-users/article.html

FreeBSD command Purpose Linux® command (Red Hat) Linux® command (Debian)
pkg install package Install package from remote repository yum install package apt-get install package
pkg add package Install local package rpm -ivh package dpkg -i package
pkg info List installed packages rpm -qa dpkg -l
pciconf List PCI devices lspci lspci
kldstat List loaded kernel modules lsmod lsmod
kldload / kldunload Load/Unload kernel modules modprobe modprobe
truss Trace system calls strace strace

FreeBSD handbook

Support Laptops

First step after installation FreeBSD

PortSnap

Portsnap tool is used to fetch and update compressed snapshots of the FreeBSD ports tree.

portsnap fetch
portsnap extract

Update ports is east command

portsnap fetch update

If you need audit package for vulnerable.

pkg audit -F

FreeBSD update, upgrade

FreeBSD update, upgrade

freebsd-update fetch
freebsd-update upgrade -r 11.0-RELEASE or other version
freebsd-update install

Desktop Environments

FreeBSD have several desktop enviroments - Xfce4, Mate, Gnome3, Cinnamon, KDE, Lumina

How install Desktop Xfce

pkg install xfce4-desktop xfce xorg slim

Enable components for kernel in etc/rc.conf

You need for run desktop

zfs_enable="YES"  - if you use ZFS file system
hald_enable="YES"
dbus_enable="YES"
slim_enable="YES"

if you want enable crash dump, if no write “NO”

dumpdev="AUTO"

Next step is create file .xinitrc in /root/ and /home/user/ with command

exec startxfce4
and reboot.

How to set slim theme

# pkg install slim-themes
# cd /usr/local/share/slim/themes
# fetch http://daemon-notes.com/downloads/assets/themes/slim-freebsd.tar.bz2
# tar jxvf slim-freebsd.tar.bz2
# rm slim-freebsd.tar.bz2

Edit and set /usr/local/etc/slim.conf
#current_theme       default
current_theme       freebsd

NTPD

NTPD synchronize

ntpdate_enable="YES"
ntpdate_hosts="in.pool.ntp.org"

Or manualy update time and date

securelevel on 2 then you cannot set time only about second.

ntpdate -b pool.ntp.org
sudo service ntpd start

Portmaster

portmaster -L - Check all update for ports
portmaster -a - Upgrade ports
portmaster -af - Rebuild of installed application

Debug ports

Just put the following in /etc/make.conf and then recompile the ports you want to include debug symbols:

WITH_DEBUG=	yes

more information

/usr/ports/Mk/bsd.port.mk

Compiling programs

Python3, Py3-QT5

First thing is add version python to /etc/make.conf .If you havent this file you must create. This conf file is for every compilation in system.

DEFAULT_VERSIONS+= python=3.5 python3=3.5

Next step is compile with default version python3.5

sudo portmaster python3

How to setup MYSQL Database

First step is installation

sudo pkg install mysql56-server

next step is enable in /etc/rc.conf

sudo sysrc mysql_enable=yes

Remember to run mysql_upgrade the first time you start the MySQL server after an upgrade from an earlier version.

Now start MYSQL Server

sudo service mysql-server start

then set database

sudo mysql_secure_installation

Virtualbox

Virtuabox in FreeBSD

Added line with kernel module to /boot/loader.conf

 
vboxdrv_load="YES"

Added line for bridged or host-only networking to /etc/rc.conf

vboxnet_enable="YES"

Added to group

pw groupmod vboxusers -m yourusername
chown root:vboxusers /dev/vboxnetctl
chmod 0660 /dev/vboxnetctl

Permanent permisions added lines to /etc/devfs.conf

own     vboxnetctl root:vboxusers
perm    vboxnetctl 0660

Wifi in FreeBSD

How to setup WIFI card

pciconf -l - look for if see wifi hardware
sudo ifconfig wlan0 create wlandev wpi0
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf

How to setup USB WIFI

Add kernel module to /boot/loader.conf

# Kenel drives for wifi 
if_ath_load="YES"
if_iw_load="YES"

# Next wifi modules
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"

Add to configure /etc/rc.conf this lines. Configure you wifi device.

wlans_run0="wlan0"
create_args_wlan0="wlanmode sta country CZ mtu 1500 indoor"

Look to your hardware if you have drivers.

# Look for if see wifi hardware (wpi, run0)
pciconf -l 

# Create device with name wlan0
sudo ifconfig wlan0 create wlandev wpi0

# Create wpa_supplicant configure file with ssid network 
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf

# Scan your wifi networks
ifconfig wlan0 up scan 
SSID/MESH ID    BSSID              CHAN RATE   S:N     INT CAPS
lol        00:13:46:49:41:76   11   54M -90:96   100 EPS  WPA WME
trololo    00:11:95:c3:0d:ac    1   54M -83:96   100 EPS  WPA

# ip adress from DHCP server
sudo dhclient wlan0

Mount

Mount USB

Mount msdosfs

# ls /dev/da*
# mount_msdosfs /dev/da0 /media/usb

Mount ntfs

For mounting ntfs file system you must kernel driver loaded.

For control kernels driver is command:

sudo kldstat

For load kernel drive is command:

sudo kldload fuse

and then you can mount ntfs filesystem.

# ls /dev/da*
# sudo ntfs-3g  /dev/da0  /mnt/

Automounting Removable Media

Uncomment in config file in /etc/auto_master

/media		-media		-nosuid

Add lines to /etc/devd.conf

notify 100 {
	match "system" "GEOM";
	match "subsystem" "DEV";
	action "/usr/sbin/automount -c";
};

Reload service

service automount reload
service devd restart

and added configuration /etc/rc.conf

autofs_enable="YES"

ACPI

IBM ACPI

If you use notebooks, is better enable acpi driver in /boot/loader.conf For IBM notebooks is command:

acpi_ibm_load="YES"

HP ACPI

If you use notebooks, is better enable acpi driver in /boot/loader.conf For HP notebooks is command:

acpi_hp_load="YES"

More : https://www.freebsd.org/cgi/man.cgi?acpi_ibm

Linux® Binary Compatibility

# kldload linux
# kldload linux64

# kldstat - you can look for modules
 1   72 0xffffffff80200000 1fa7c38  kernel
 2    1 0xffffffff821a9000 30aec0   zfs.ko
 3    2 0xffffffff824b4000 adc0     opensolaris.ko
 4    1 0xffffffff824bf000 231f8    if_urtw.ko
 5    1 0xffffffff82621000 4fac     ng_ubt.ko
 6    5 0xffffffff82626000 befc     netgraph.ko
 7    1 0xffffffff82632000 a58f     ng_hci.ko
 8    3 0xffffffff8263d000 107c     ng_bluetooth.ko
 9    1 0xffffffff8263f000 2a05     uhid.ko
10    1 0xffffffff82642000 3710     ums.ko
11    1 0xffffffff82646000 677b     u3g.ko
12    1 0xffffffff8264d000 53df     ucom.ko
13    1 0xffffffff82653000 d57d     ng_l2cap.ko
14    1 0xffffffff82661000 1b187    ng_btsocket.ko
15    1 0xffffffff8267d000 393d     ng_socket.ko
16    1 0xffffffff82681000 978bd    i915kms.ko
17    1 0xffffffff82719000 55180    drm2.ko
18    4 0xffffffff8276f000 26e8     iicbus.ko
19    1 0xffffffff82772000 1c75     iic.ko
20    1 0xffffffff82774000 1e70     iicbb.ko
21    1 0xffffffff82776000 3de40    linux.ko
22    2 0xffffffff827b4000 7b08     linux_common.ko
23    1 0xffffffff827bc000 389f4    linux64.ko

and add line to /etc/rc.conf:
linux_enable="YES"

Disable Beep

# sysctl hw.syscons.bell=0
# reboot

or if you use XFCE

set bell-style none

Sudo user

visudo

Change standard shell

You must add line in /etc/shells for example fish shell

/usr/local/bin/fish

Change shell and path your favorite shell

chsh -s /usr/local/bin/fish

GELI

Install CD -> Partition -> Shell

gpart create -s gpt vtbd0
gpart add -t freebsd-boot -s 512k -a 4k vtbd0
gpart add -t freebsd-ufs -a 1M vtbd0
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 vtbd0

geli init -b -g vtbd0p2
geli attach vtbd0p2

newfs -j /dev/vtbd0p2.eli
mount /dev/vtbd0p2.eli /mnt

- /tmp/bsdinstall_etc/fstab
/dev/vtbd0p2.eli / ufs rw,noatime 1 1

- /tmp/bsdinstall_boot/loader.conf
geom_eli_load="YES"

exit (installer will continue)

Change  /dev/vtbd0p2.eli to gptid/rawuuid (gpart list):
/dev/gptid/015ceb9a-90a4-11e6-b8fc-1392a9ed1847 / ufs rw,noatime 1 1

FreeBSD Kernel

Source code FreeBSD kernel

sudo pkg install subversion  
sudo svn checkout https://svn0.us-east.FreeBSD.org/base/stable/you_version_system /usr/src
svn up /usr/src

Profiling and debugging kernel

Performance observality tools

}

Kernel module

Simple kernel module.
https://github.com/Martinfx/FreeBSD-Kernel-module

FreeBSD Security

Security on FreeBSD

To check the status of the securelevel on a running system: Add to /etc/sysctl.conf

kern.securelevel=2
security.bsd.see_other_uids=0
security.bsd.stack_guard_page=1
net.inet.ip.random_id=1

more : http://www.freebsd.cz/doc/faq/security.html

Enabling and Utilizing Process Accounting

Tracking information such as CPU statistics and executed commands.

touch /var/account/acct
chmod 600 /var/account/acct
accton /var/account/acct
echo 'accounting_enable="YES"' >> /etc/rc.conf

ZFS

Mount ZFS

zpool import

For control command mount.

Mount ZFS from Live CD

zpool import -fR /media zroot

Tuning zfs on i386

If you will have i386 OS you must set wm.kmem_size=“512M” and vm.kmem_size_max=“” is minimal value.

This is little tunables more information on http://www.freebsd.cz/doc/handbook/zfs-advanced.html

vfs.zfs.prefetch_disable=0
vm.kmem_size="512M"
vm.kmem_size_max="768M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

Troubleshooting with FreeBSD

SSH

Too many authentication failures

If You are not able to authenticate via ssh and mesage “Too many authentication failures” is logged in /var/log/auth.log you probably have more than 2 keys loaded in your ssh agent that are failing to authenticate. To solve this unload keys you are not using from ssh agent (ssh-add -d path/ ssh-add -D), use ssh -i path_to_key or create appropriate section in your ~/.ssh/config with IdentityFile.

BOOT on FreeBSD

Fatal double fault FreeBSD 10.3 - i386 , FreeBSD 11 - i386

Fatal double fault is problem on FreeBSD - i386 with ZFS file system.

As described in /usr/src/UPDATING entry 20121223, rebuilding the kernel with options KSTACK_PAGES=4 has been observed to resolve the boot-time crash. This, however, is not an ideal solution for inclusion in the GENERIC kernel configuration, as increasing KSTACK_PAGES implicitly decreases available usermode threads in an environment that is already resource-starved.

You must do this steps for new kernel:

# mkdir -p /usr/src
# svnlite co svn://svn.freebsd.org/base/releng/10.2 /usr/src
# make -C /usr/src kernel-toolchain
# printf "include GENERIC\noptions KSTACK_PAGES=4\n" > /usr/src/sys/i386/conf/ZFS
# make -C /usr/src buildkernel KERNCONF=ZFS
# make -C /usr/src installkernel KERNCONF=ZFS

For FreeBSD 10.3 - More information on page https://www.freebsd.org/releases/10.3R/errata.html

For FreeBSD 11.0 - More information on page https://www.freebsd.org/releases/11.0R/errata.html

How to boot from live CD

If you have problem with boot on freebsd and cannot run system.

Back to FreeBSD menu and choose option 3. ( Escape to loader prompt ) For help in commandline is command help or ? (list of commands ) help set are options for command set

For boot from CD is commnad

set boot_cdrom (for mount filesystem)
boot

Look for mounted filesystem with command mount.If you havent zfs filesystem mounted you must run command and connect zpool :

zpool import -f zroot
project/freebsd/start.1508338944.txt.gz · Last modified: 2017/10/18 15:02 by maxfx