FreeBSD

FreeBSD není Linux a ani Unix, ale jsou si podobní. Z Unixu vychází jádro FreeBSD.

Výzva zkusit něco nového

Jestli máte občas také chvíle, kdy už Vám Váš počítač nestačí a chcete opět něco jiného a něco víc, jsme na jedné vlně. Nemalý podíl měla na instalaci FreeBSD výzva zkusit něco nového a nepoznaného. Naučit se zase nové věci a rozšířit si obzory. Udělá mi radost, když vytvořím dobré nastavení desktopu, které mi sedí.

Linux nestačí?

Vzpomínám si, jak jsem poprvé uviděl příkazovou řádku v Linuxu a byl vedle jak ta jedle. Vzpomínám, jak jsem byl zmatený z orientace v počítači, když došlo na lámání chleba. Dnes jsme na tom o poznání lépe.

Na mém domácím počítači jsem se už nějakou dobu začínal nudit a musel jsem začít hledat alternativu k Linuxu, který jsem používal doteď (Arch Linux, Debian). Zajímavou volbou se mi zdál systém FreeBSD. Již dříve jsem o něm četl zmínky po internetu anebo v dokumentacích. Věděl jsem, že je orientovaný pro experty a možná proto jsem nechal čas, aby mě k němu zavedl sám. Udělal jsem dobře, když jsem se pro něj rozhodl? To Vám brzy povím…

„Útulné“ prostředí

Všechny nešvary a přitěžující okolnosti neznalosti vyváží útulné prostředí systému a pocit bezpečí i jistoty. Začínající uživatele potěší příjemný instalátor, handbook a počáteční obecné nastavení.

Oproti Linuxu je FreeBSD při správě subjektivně ještě náročnější na znalosti a uživatelské dovednosti. O to víc ale jednotlivce naučí a účelu poslouží. Pro základní nastavení je v systému utilita bsdconfig, kde se dá nastavit s jistou nadsázkou první-poslední.

Podpora HW

Jeho nevýhodou je nepříliš velká podpora hardware, není možné jej nainstalovat úplně na každý počítač. Je vyvíjen úzkou komunitou lidí a testování probíhá jen na některých počítačích. Tím pádem ovladače na některé periferie a nebo komponenty počítače nemusí být podporovány a pak jsme odkázáni na podporu od výrobce. Na laptopu IBM T60 funguje bez problému.

Je implementována kompatibilní vrstva pro Linux, díky tomu můžeme spouštět software stejný jako pro Linux s nativní kompatibilitou. Většinu programů je možné spustit, zatím jsem mezi běžným softwarem nenašel výjimku.

Programy a aplikace z platformy Windows lze také pohodlně provozovat a to díky kompatibilní vrstvě Wine.

Podpora sítí a bezpečnosti

Na svém starším notebooku IBM T60 jsem bez problémů nainstaloval verzi i386 z CD s použitím Wi-Fi. Obsahuje rozhraní pro nastavení sítě. Operační systém FreeBSD pracuje tak, že má vlastní oddělenou virtuální vnitřní síť, která umožňuje více bezpečí a ochrany. Ostatní topologie skupin a uživatelů zůstává stejná.

Software na který jsem byl zvyklý

FreeBSD má ve svých repozitářích velké množství open-source software přístupným díky správci balíků pkg. Pro zpestření má FreeBSD snapshot ports obsahující přes 30 000 programů připravených pro kompilaci. Programy, které běžně využívám jsou: feh, Awesome, PCManFM, MC, htop, nano, Volumeicon, VLC, cmus, Inkscape, Gimp, Soundkonverter, Viewnior, DOSBox, Firefox, Thunderbird, Geany, Leafpad, Calcurse, Audacity, Clipgrab, Lxappearance a spoustu dalších… Ze softwarové stránky mi zatím nic nechybělo.

Dobrý instalátor

Instalace FreeBSD jde vždy jako po másle, jednoduchý a mocný instalátor mě provede celým procesem. Instalátor je příjemný a jednoduchý. Během instalace lze systém přizpůsobit daným potřebám, nastavit základní parametry a vytvořit uživatele. Nakonec můžeme celou instalaci doladit vstupem do příkazové řádky.

Instalátor

Instalace FreeBSD

Načtení instalace

Provázet nás bude při instalaci příjemný průvodce, který je jednoduchý a neztratíme se v něm. Můžeme, ale i nemusíme mít přístup k internetu, záleží to na rozsahu balíčků při instalaci. Instalace systému například pro desktop bude vypadat jako v následujícím postupu.

  1. Výběr typu zavedení instalace – dva uživatelé, jeden uživatel a nastavení. Vybereme dva uživatele.
  2. Máme možnost zvolit mezi instalací, shellem a live CD, zvolíme instalaci.
  3. Výběr klávesové mapy rozložení, kde vybereme české klávesy QWERTZ.
  4. Vyplníme hostname, což bude náš název počítače.
  5. Vybereme si součásti systému k nainstalování. V mém případě šlo o base, kernel a ports.
  6. Přichází rozdělení disků. Pro menší disky anebo slabší hardware vybereme UFS – mbr(dos) a když máme výkonnou sestavu s dostatkem paměti RAM i velkým úložištěm, zvolíme variantu ZFS. Jako prozatím nejlepší a nejjednodušší rozdělení disku použijeme automatiku.
  7. Vybereme si síťový adaptér pro přístup k internetu. Klasické nastavení je s adresováním IPv4 a zapnutým DHCP klientem pro automatické IP adresy. IPv6 používat nemusíme.
  8. Nastavení času CMOS můžeme zapnout a zvolíme časovou zónu Europe a zemi Czech Republic.
  9. Služby startované automaticky můžeme vybrat sshd a dumpdev.
  10. Uživatele vytvoříme podle potřeb, pro běžný desktop přidáme uživatele do skupin wheel, games a podobně.
  11. Ve finále můžeme provést ještě poslední změny v nastavení a přihlásit se do shellu.
  12. Je hotovo a můžeme restartovat do nového systému.

Po instalaci

Po instalaci se nacházíme v textovém prostředí s jediným uživatelem (superuživatelem) root a základní sadou balíčků pro chod systému. Textový editor je vi.

Pro chod vstupních periferií jako je myš a klávesnice musíme editovat soubor /etc/rc.conf, pro rozložení klávesnice a povolení myši v konzoli musí soubor obsahovat tyto řádky:

keymap="cs.latin2.qwertz" 
moused_enable="YES"

Pro využití moused musíme nainstalovat příslušný balíček, jestliže se tak ještě nestalo:

pkg install moused

Uživatelé

Bude potřeba přidat uživatele pro běžnou obsluhu počítače pomocí příkazu adduser. Postup přidání uživatele proklikáme a popřípadě zvolíme shell pokud se nám sh nelíbí. Po čisté instalaci by měl být k dispozici shell sh a csh – je podobný jako bash.

adduser

Balíčky a instalace - pkg

Pro instalaci slouží nástroj pkg. Jestliže tento nástroj v systému nemáme, stačí napsat do konzole příkaz pkg a systém zjistí, že je třeba jej nainstalovat a budeme vyzváni k instalaci balíčkovacího nástroje. Jestliže to neuděláte, systém to samé provede při instalaci jakéhokoli balíčku s příkazem pkg.

pkg

Pro nápovědu a možnosti nástroje pkg zadáme příkaz pkg help.

pkg help

Pro zainstalování pár důležitých balíčků zadáme:

pkg install bash sudo mc xorg

Bsdconfig

Pro přehledné základní nastavení slouží nástroj bsdconfig, který dovede pohodlně měnit nastavení přihlášení, uživatele, služby, myš, síť, tty, písmo, jazyk a mnoho jiného.

bsdconfig
bsdconfig

X Server

Pro instalaci grafického serveru a grafického prostředí Xfce nainstalujeme metabalíček xorg a xfce:

pkg install xorg xfce

Pro chod grafiky a vstupních periferií musíme nainstalovat balíčky:

Konfiguraci spouštěcího skriptu xinit můžeme nakopírovat k lokálnímu uživateli a měnit tak pouze uživatelské nastavení. Soubor v domovském adresáři uživatele se bude jmenovat .xinitrc. Nastavení nakopíruji pomocí příkazu:

cp /usr/local/etc/X11/xinit/xinitrc ~/.xinitrc

Soubor .xinitrc pak může na konci obsahovat příkazy spuštěné po startu X Serveru. Spouští tak například správce oken anebo přímo libovolné nainstalované aplikace.

nano /home/franta/.xinitrc

setxkbmap cz & 
startxfce4

XDM

XDM je správce oken pro X Server a spravuje přihlašování uživatelů, volím jej pro jeho jednoduchost.

Nejprve nainstalujeme XDM pomocí ports:

cd /usr/ports/x11/xdm/

make install clean

Dále nastavíme příslušné tty se spuštěním XDM, v souboru /etc/ttys pozměníme nastavení:

nano /etc/ttys

ttyv8 "/usr/local/bin/xdm -nodaemon" xterm on secure
Přihlášení - upravené

Přechod z Linuxu

Přechod z Linux (Archlinux, Debian, Ubuntu) není taková tragédie, jak se může na první pohled zdát. Programy, které jsem byl zvyklý používat se nemění - za to se mění například způsob, jak i kam je instalovat a potažmo hledat.

Rozdíl je v základech systému, které se projeví pokud chci například změnit systémové parametry. Samotnou instalací se dá projít bez problémů a bez rozsáhlých studií dokumentace. Významný rozdíl je v systému souborů, protože FreeBSD používá svůj vlastní styl.

Struktura adresářů se oproti Linuxu mění, uživatelský adresář se nachází v /usr/home a nastavení etc je umístěno v /usr/local/etc. Základní nastavení a to opravdu nejpodstatnější je v /etc.

Konkrétně po nasazení FreeBSD na IBM T60 je nabíhání pomalejší oproti předchozímu Debianu i686. Vyváží to ale „útulnost“ systému a jeho dobré vlastnosti.

FreeBSD - u mě

Zaujal mne operační systém FreeBSD, který není až tak hojně používaný, ale za to nabízí stabilní vydání operačního systému, dobrý souborový systém a výkon.

Používám jej na svém moderním stolním desktopu od začátku roku 2020. Dříve jsem jej pouze zkoušel a testoval na různých počítačích.

Plocha

Správcem displeje je v mém případě program SDDM, dále také v jiných případech využívám třeba XDM anebo LXDM, s těmito správci jsem spokojený.

Pro desktop používám 2 monitory a tedy i 2 plochy.

Moje nastavení xrandru pro 2 monitory:

xrandr --output VGA-0 --mode 1440x900 --primary --pos 1440x0 --output DVI-0 --mode 1440x900 --pos 0x0
Awesome desktop
XFCE desktop

Jak využívám počítač?

Počítač využívám já i má přítelkyně a proto je důležité, aby splňoval požadavky jak pro zkušeného a náročného uživatele, tak pro nezkušené i neznalé. Na počítači se surfuje po internetu, pracuje se s médii a grafikou, převádí formáty multimédií, vypaluje CD/DVD, stahuje z Youtube, pracuje se s dokumenty a takové ty běžné činnosti.

Jako správce displeje a přihlášení využívám SDDM, který pro tento účel bohatě stačí. SDDM jsem si nastavil, aby každému uživateli spouštěl jeho vlastní uživatelské sezení. Jakmile jsem totiž nějakému uživateli vybral například sezení XFCE4, cpalo se pak ke každému uživateli a to jsem nechtěl. Při rozdílných sezeních pro uživatele se to muselo pokaždé přepínat. Individuální sezení upravuji v souboru .xsession. Já si spouštím správce oken Awesome a přítelkyni jsem vybral XFCE4. Náhledy ploch můžete vidět o nadpis výše. Jako terminál v grafickém prostředí používám Xterm.

Úložiště

Předem promyšlené a s ohledem na využití volené nastavení úložiště dat je prvním krokem k dlouhodobému úspěchu a bezpečí svých dat.

Disk s operačním systémem je umístěný na rychlém SSD disku Patriot Burst, díky tomu je start a práce s PC mnohem rychlejší. Souborový systém mám ZFS a oddíly jsem nechal vytvořit instalátorem, to je naprosto dostačující.

Seznam software

Jak jsem již zmínil, na PC používám výhradně open-source software. Některé kategorie mají více zástupců jako například zde uvádím správce oken Awesome, DWM, XFCE4 a Windows Maker, které sice úplně všechny najednou neprovozuji, ale patří mezi oblíbené a tak je porůznu střídám, jak se to hodí.

Zde je seznam programů, které využívám:

FreeBSD a čeština

Operační systém FreeBSD je plně přeložen a lze snadno nastavit lokalizaci. Až na konzoli funguje čeština vskutku bez problémů, takže jestli se budeme pohybovat pouze v grafice X, stačí jen pár kroků. Vybrat si můžeme z možností ISO-8859-2 anebo UTF-8. Pro lokalizaci systému si nastavíme jazyk pro uživatele i systém. Poslední řádka v zápisech končí vždy znakem „:„.

Při nastavení lokalizace pouze pro uživatele stačí postupovat pouze k bodu 1 – jazyk uživatele.

Při nastavení celého systému nemusíme nastavovat jednotlivé uživatele a budeme postupovat v následujících krocích:

  1. Nastavíme jazyk pro uživatele.
  2. Zapíšeme systémové nastavení a aktualizujeme databázi
  3. Restart a kontrola

Jazyk uživatele

Pro nastavení lokalizace daného uživatele se přesuneme do jeho domovského adresáře a poeditujeme soubor .login_conf. Slouží pro nastavení na uživatelské úrovni, doporučuji používat kódování UTF-8. Přidal jsem také parametr tc.

~/.login_conf

me:\
:charset=UTF-8:\
:lang=cs_CZ.UTF-8:\
:tc=default:

Je možné také přidat parametr:

setenv=LC_COLLATE=C

Systémové nastavení lokalizace

Pro nastavení celého systému poslouží systémová konfigurace nacházející se v /etc/login.conf. Pro výchozí systémové nastavení upravíme parametry default.

Default

V souboru /etc/login.conf najdu řádek obsahující default a také už spoustu parametrů, na konec zapíši:

default:\
:passwd_format=sha512
: ... :
:charset=UTF-8:\
:lang=cs_CZ.UTF-8:

Třídy – class

Uživatelé na počítači mohou být přiřazeni do určitých přihlašovacích tříd, které mohou dále určovat charakteristické vlastnosti uživatelů. Například přidáním uživatele do třídy czech a následným zápisem docílíme nastavení lokalizace pro danou třídu czech.

czech|Czech Users Accounts:\
:charset=UTF-8:\
:lang=cs_CZ.UTF-8:\
:tc=default:

Databáze

Při úpravě systémového /etc/login.conf je třeba aktualizovat databázy pomocí příkazu cap_mkdb /etc/login.conf:

cap_mkdb /etc/login.conf

Kontrola a ověření správnosti lokalizace

Pro ověření nastavených jazyků můžeme využít příkaz locale v celé své kráse, pro výpis použitých lokalizací zadáme příkaz:

locale

Výstup příkazu locale vypíše jednotlivá nastavení pro každé odvětví lokalizace (cs_CZ.UTF-8). Každá kategorie by měla obsahovat definovaný typ lokalizace, jaký jsme zapsali do .login_conf.

ISO-8859-2 vs. UTF-8

ISO-8859-2 se zdá být problematičtější oproti UTF-8. Pozor při používání ISO-8859-2 a úpravách souborů a textů, míchání kódování může způsobit znakový mišmaš v souborech a textech.

Důležité příkazy pro desktop

Když jsem si instaloval desktop, setkal jsem se s různými příkazy a hodně bylo nového. Níže můžete vidět příklady, které se mohou hodit.

Detekce hardware

pciconf -lv

Přidělení uživateli práva pro sudo

Konfigurační soubor sudoers se nachází v /usr/local/etc/, musíme do něj zapsat uživatele:

franta ALL=(ALL) ALL

Důležité pravomoce pro uživatele - skupiny

pw group mod -n wheel -m franta

Nastavení textového editoru v shellu

export EDITOR="/usr/local/bin/nano"

Změna shellu uživatele

chsh -s /usr/local/bin/bash

Vypnutí zvuků shellu (beep)

sysctl hw.syscons.bell=0

sysctl kern.vt.enable_bell=0

Pro permanentní vypnutí v souboru /etc/sysctl.conf přidáme řádek:

kern.vt.enable_bell=0

Ovladač Synaptics pro touchpad

Do souboru /boot/loader.conf řádek:

hw.psm.synaptics_support="1"

Soubor /etc/rc.conf musí obsahovat řádek:

moused_enable="YES"

Ports

Systém FreeBSD disponuje takzvaným repozitářem ports, který obsahuje snímek více než 33 000 kusů vloženého software. Je strukturovaný do adresářů podle kategorií a programů v umístění /usr/ports. Takový software lze snadno stáhnout v podobě zdrojového kódu a případných patchů. Každý adresář znázorňující jednotlivý program obsahuje soubor Makefile.

Pro instalaci se přesuneme do adresáře programu jako například /usr/ports/x11-wm/dwm a použijeme nástroj make:

make install clean

Důležité je adresář vyčistit atributem clean, aby se nekupil v systému nepořádek. Dodatečně jej můžeme v adresáři vykonat povelem:

make clean

Služby a Rc.conf

Příkaz service jednoduše ovládá služby a jejich stav. Konfigurační soubor /etc/rc.conf určuje jaké systémové součásti a služby se spustí.

Pro chod grafického serveru X je doporučeno přidat do souboru rc.conf tyto řádky:

hald_enable="YES"
dbus_enable="YES"

Další nastavení pro vlastnosti spouštění systému lze nastavit v souboru /etc/default/rc.conf, například zákaz čekání na síť:

background_dhclient="YES"
defaultroute_delay="0"
defaultroute_carrier_delay="0"

Moduly jádra

Pro zobrazení nahraných modulů slouží příkaz:

kldstat

Pro načtení modulu msdosfs použiji:

kldload msdosfs

Login_conf a čeština

Obsahuje rozmanité atributy a možnosti po přihlášení. Určuje sezení účtu, limity a nastavení uživatelského prostředí. Je použit některými programy pro nastavení po přihlášení do uživatelského prostředí a k vynucení politiky, přihlašování i administrativních omezení.

Soubor uživatelského nastavení .login_conf je v domovském adresáři. Pro český jazyk může vypadat nastavení takto:

me:\
	:charset=iso-8859-2:\
	:lang=cs_CZ.UTF-8:

Systémový soubor je v umístění /etc/login.conf, kde je velká porce parametrů. Na systémový soubor běžně sahat nemusíme.

Loader.conf

Pro zavádění, způsob průběhu zavádění a různé možnosti zavádění je zde konfigurační soubor loader.conf, který se nachází v adresáři /boot. Budeme tedy editovat soubor /boot/loader.conf:

boot_mute=YES
autoboot_delay=2
hw.psm.synaptics_support="1"

boot_mute=YES = Zakryje zavádění systému obrázkem.

autoboot_delay=2 = Menu pro zavedení trvá 2 sekundy a poté se zavede 1. možná varianta.

hw.psm.syna­ptics_support="1" = Zapne podporu touchpadu pro laptopy.

Připojování disků

Pro připojení disku musíme znát jeho umístění v blokových zařízeních /dev/, vědět jaký souborový systém konkrétní oddíl používá a také mít umístění kam ho připojit. Ruční připojení provádíme pomocí příkazu mount, automatické připojení při startu systému nastavíme v souboru /etc/fstab. Pro automatické připojování ostatních USB i jiných zařízení je skvělý nástroj automount, který funguje po rozbalení.

Užitečné povely

Výpis disků:

gpart list

Typ souborového systému:

fstyp /dev/ada3s1

Ruční připojení disku se systémem ext2:

mount -t ext2fs /dev/ada3s1 /mnt/DATA

Připojení CD-ROM do domovského adresáře

mount_cd9660 /dev/cd0 ~/cdrom

Zápisy do fstab

Níže je vidět připojování RAIDového pole /dev/raid/r0 se souborovým systémem ufs do umístění /mnt/DATA, dále připojení disku ada3s1 se systémem souborů ufs a plným přístupem k zapisování, nakonec Swapovací oddíl ada3s2.

device		/mount-point	fstype	options	dumpfreq passno
/dev/raid/r0	/		ufs	rw	1	1
/dev/ada3s1	/mnt/DATA	ufs	rw	1	1
/dev/ada3s2	none		swap	sw	0	0

Problémy s ovladačem radeon

Když jsem instaloval počítač se starší grafickou kartou Ati Radeon, setkal jsem se s případem, že po startu X Serveru byl neviditelný kurzor myši. Jak jsem to vyřešil? Bylo třeba doplnit nastavení Xorg o pár konfiguračních souborů:

Vytvořím soubor v /usr/local/etc/X11/xorg.conf.d/driver-radeon.conf do kterého vložím řádky:

Section "Device"
	Identifier "Device0"
	Driver	"radeon"
EndSection

Vytvořím další soubor v /usr/local/etc/X11/xorg.conf.d/90-cursor.conf do kterého vložím řádky:

Section "Device"
	Identifier "Device0"
	Option "SWCursor" "on"
EndSection

Tímto se problém s neviditelným kurzorem vyřešil.

Ssmtp namísto sendmail

Pokud chceme odesílat poštu vzdáleného poskytovatele pošty jako třeba Gmail, Seznam a podobně, můžeme si nainstalovat nástroj ssmtp a deaktivovat sendmail. Poté už stačí jen vybrat emailového klienta jako například Claws mail/Alpine.

1. Vypneme sendmail

V souboru /etc/rc.conf musíme vytvořit tyto řádky:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Nastavení se projeví po restartu anebo můžeme ukončit sendmail ručně:

killall sendmail

2. Nainstalu­jeme ssmtp

cd /usr/ports/mail/ssmtp/
make install clean

3. Nakonfigu­rujeme ssmtp

Konfigurační soubor najdeme v umístění /usr/local/etc/ssmtp/ssmtp.conf a přidáme do něho řádky:

root=mujemail@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=mujemail@gmail.com
AuthPass=mojeheslo
UseSTARTTLS=YES

Nahraďte mujemail@gmail.com svým emailem a místo mojeheslo své heslo k účtu.

FreeBSD a VirtualBox - sdílené složky a sdílení dat

Nainstaluji VirtualBox-ose-additions, vytvořím si sdílený adresář _DATA přímo v hostitelském manažerovi VirtualBoxu a ten poté připojím do místní složky /mnt/DATA. Pro funkčnost je třeba nainstalovat balík virtualbox-ose-additions a v souboru rc.conf povolit služby pro VirtualBox.

Mimo jiné je možné také využít například WinSCP.

Pro zpřístupnění možností pro VirtualBox je nutné do cílového systému zainstalovat balík virtualbox-ose-additions.

pkg install virtualbox-ose-additions

Ještě musíme říct systému, aby patřičné služby zavedl a používal. Pro startování služeb VirtualBoxu zapíšeme do /etc/rc.conf:

vboxguest_enable="YES"
vboxservice_enable="YES"

Mimo repozitář bude použitelný instalační zdroj z ports, ale ten vyžaduje kernel source:

cd /usr/ports/emulators/virtualbox-ose
make install clean

Připojení sdílených složek

V hostitelském VirtualBoxu jsem si pomocí správce nastavil sdílenou složku s názvem _DATA. Sdílenou složku budu chtít připojit do umístění /mnt/DATA. Nastavení mount pointu v tomto případě nehraje příliš velkou roli. Důležité je nastavit korektní připojení disku v systému.

Pro ruční připojení pak můžu využít ručního příkazu mount_vboxfs.

mount_vboxvfs _DATA /mnt/DATA

Fstab a automatické připojení

Jestliže jsem si vytvořil v hostitelském počítači sdílenou složku s názvem například _DATA, mohu ji pomocí zápisu do fstab připojit do systému jako disk. Pro základní nastavení používám například zápis:

_DATA  /mnt/DATA  vboxvfs  rw,gid=1001,uid=1001  0  0

Další možnosti sdílení dat

Možností jak sdílet data je více, jestliže je hostitelský počítač Windows, můžeme využít WinSCP. V nastavení VirtualBoxu virtuálního počítače FreeBSD nastavíme síť jako síťový most, tímto krokem získá počítač IP adresu zjistitelnou ostatními v síti. IP adresu zjistíme pomocí příkazu ifconfig. Stačí zapnout SSH server pomocí sshd_enable="YES" v /etc/rc.conf. Poté se připojíme přes WinSCP na příslušnou IP adresu s portem 22.

Při použití na domácím počítači v soukromém prostředí není nutné zabývat se bezpečností. Pro SSH server stačí běžné standardní nastavení.