Ja, meine Posts schlafen in der letzten Zeit etwas 🙁

Um wieder etwas zu schreiben und auch ein paar Wünschen entgegen zu kommen, hier nun etwas zu FreeBSD auf dem Desktop. Das Windows und MAC Benutzer immer etwas irritiert auf die fertige Grundinstallation von einem FreeBSD schauen wundert sicher nicht. Linux Benutzer schauen aber oft ebenfalls etwas „überrascht“….

FreeBSD als Serversystem, damit können sich Linuxuser ja noch einlassen…. Aber als Desktop? Dinge wie VPN, LAN oder WLAN plötzlich wieder selbst konfigurieren müssen… Oder dem Benutzer erst die Rechte zu geben um eine CD brennen zu können, das kennen auch Linuxuser kaum noch. In dieser usability hängt FreeBSD auch noch ein paar Jahre hinter Linux. Nun kann man sich darüber streiten! 2016 sollten bestimmte Dinge einfach gegeben sein. Ich persönlich empfinde es aber als sehr angenehm. Früher habe ich lange mit einem Opensolaris auf dem Desktop gearbeitet. Dieses ist inzwischen leider vollständig von FreeBSD verdrängt worden. Opensolaris ist einfach inzwischen ZU weit weg um auf einem Desktop sinnvoll betrieben zu werden 🙁

Ein FreeBSD bietet mir noch immer das gute alte Unixgefühl, ich habe direkt ein sauberes ZFS unter den Füßen und die für mich wichtigen Anwendungen laufen alle sauber und Problemlos unter FreeBSD und mit so einem Ubuntu bin ich noch nie richtig warm geworden. Ich würde selbst bei einem Linuxdesktop am Ende wieder bei einem Gentoo oder ähnlichem landen.

FreeBSD Desktop

Es sollte aber um die Grundinstallation gehen, nein nicht mit Screenshots bis zum Login…. Ich meine eher den Punkt zwischen der fertigen FreeBSD 10.3 Installation und einem grafischen Desktop.

Der grafische Desktop soll am Ende deutsch sprechen, ein Mate sein, Firefox, Pidgin, Evolution und VLC bieten, sowie einen grafischen Login per SLIM. Also eine ordentliche Startbasis um FreeBSD einmal auf dem Desktop probieren zu können. Oh.. Wer es noch einfacher möchte kann ebenso auf PCBSD zurückgreifen. Ein wunderbares Projekt (viele der deutschen Übersetzungen sind von mir *lach*)! Um mehr mit FreeBSD zu machen dennoch nicht der perfekte Start. Es ist nicht immer SO stabil wie ich es erwarten würde und nimmt dem User dann doch etwas zu viel ab. Kommt den Erwartungen von Linuxusern dafür sehr nahe!

Zurück zum Thema..

Ist die Grundinstallation vom FreeBSD erledigt, hängt man auf dem root Login in der Konsole. Wenn ich nun von einer funktionstüchtigen Internetverbindung ausgehe, bringt einen folgendes zu einem Desktop:

root@errorlap:~ # pkg install mate-desktop mate xorg pidgin evolution firefox libreoffice-i18n de-aspell de-hunspell gimp cups cups-pdf gutenprint-cups icedtea-web openjdk8 xchat cream sudo

Als erstes wird FreeBSD versuchen sich den aktuellen Quellenstand aus dem Internet zu holen. Im Anschluss wird es beginnen die nötigen Pakte zu laden und zu installieren. Die Zeile ist dabei selbsterklärend, oder?

Ist die Installation durch müssen ein paar Einstellungen vorgenommen werden!

Mit dem vi füttert man nun die Datei /etc/rc.conf mit folgenden Informationen:

# Use German (ISO8859-15) console fonts
font8x8="iso15-8x8"
font8x14="iso15-8x14"
font8x16="iso15-8x16"

#dbus and hald for our Desktop
dbus_enable="YES"
hald_enable="YES"

#Activate slim
slim_enable="YES"

# Disable line printer daemon
lpd_enable="NO"

# Enable CUPS
cupsd_enable="YES"

# Clean temporary files.
clear_tmp_enable="YES"
clean_tmp_X="YES"

#activate new devfsrules
devfs_system_ruleset="devfsrules_common"

Ich gehe es mal der Reihe nach durch. Da keymap=“german.iso.kbd“ bereits in der rc.conf gesetzt sein sollte fehlen nur noch die richtigen Schriftarten in der Konsole um alles passen darstellen zu können. Dbus und hald sorgt dafür das unser Desktop am Ende mit allem so wunderbar sprechen kann. Damit slim auch beim Boot gestartet wird muss es aktiviert werden. Drucken wollen wir über cups und zur Sicherheit deaktivieren wir die Konkurrenz. Desktops müllen immer alles gerne voll, temp aufräumen kann da helfen. Um mit unserem Benutzer auf verschiedene Hardware zugreifen zu können, muss er die Rechte bekommen. Dieses wird später über erweiterte devfsrules gesetzt. Damit diese angewendet werden, muss es aktiviert werden!

Wir wollen später deutsch sprechen am einfachsten lässt sich dieses den einzelnen Logins mitgeben, wenn diese Information einfach angepasst für den einzelnen Benutzer mitgegeben wird. Unter FreeBSD legt in der /etc/login.conf Verschiedene „Logingruppen“ an und weißt diese dann später den jeweiligen Benutzern zu, wenn sie greifen sollen.

german|German Users Accounts:\
      :charset=UTF-8:\
      :lang=de_DE.UTF-8:\
      :tc=default:

Diese Änderung muss dem System noch bekannt gemacht werden:

root@errorlap:~ # cap_mkdb /etc/login.conf

Dem jeweiligen Benutzer kann man es nun einfach per vipw zuweisen:

kernel:supertoller-pw-hash:1001:1001:german:0:0:Sebastian van de Meer:/home/kernel:/usr/local/bin/fish

Wie zu erkenne ist, nutzt ich als shell derzeit gerne fish! Solltet ihr ebenfalls mal ausprobieren. Ich mag sie 🙂

xorg soll am Ende ebenfalls eine deutsche Tastatur anbieten, also bitte folgende Datei erstellen:

/usr/local/etc/X11/xorg.conf.d/keyboard-de-nodeadkeys.conf

Section "InputClass"
	Identifier	"KeyboardDefaults"
	Driver		"keyboard"
	MatchIsKeyboard	"on"
	Option		"XkbLayout" "de"
	Option		"XkbVariant" "nodeadkeys"
EndSection

Was fehlt noch? Oh ja, Benutzerrechte für die Hardware:

/etc/devfs.rules

[devfsrules_common=7]
add path 'ad[0-9]\*'		mode 666
add path 'ada[0-9]\*'	mode 666
add path 'da[0-9]\*'		mode 666
add path 'acd[0-9]\*'	mode 666
add path 'cd[0-9]\*'		mode 666
add path 'mmcsd[0-9]\*'	mode 666
add path 'pass[0-9]\*'	mode 666
add path 'xpt[0-9]\*'	mode 666
add path 'ugen[0-9]\*'	mode 666
add path 'usbctl'		mode 666
add path 'usb/\*'		mode 666
add path 'lpt[0-9]\*'	mode 666
add path 'ulpt[0-9]\*'	mode 666
add path 'unlpt[0-9]\*'	mode 666
add path 'fd[0-9]\*'		mode 666
add path 'uscan[0-9]\*'	mode 666
add path 'video[0-9]\*'	mode 666
add path 'tuner[0-9]*'  mode 666
add path 'dvb/\*'		mode 666
add path 'cx88*' mode 0660
add path 'cx23885*' mode 0660 # CX23885-family stream configuration device
add path 'iicdev*' mode 0660
add path 'uvisor[0-9]*' mode 0660

Ebenfalls verständlich und logisch, richtig? Japp 😀

Wie unter Linux sollte der Benutzer in der Gruppe wheel sein um per su zum root wechseln zu können (nur falls mal jemand sucht..). Ebenfalls haben wir zwar sudo installiert, der Benutzer sollte aber noch per visudo die Möglichkeit bekommen es zu benutzen:

##
## User privilege specification
## 
root ALL=(ALL) ALL
kernel ALL=(ALL) ALL
root@errorlap:~ # pw groupmod wheel -m kernel

Im Grunde sollte es damit schon einen nutzbaren Desktop geben. Wer noch weitergehen möchte, ich habe da noch ein paar Dinge in meiner /boot/loader.conf die helfen könnten:

# Use new graphical console driver
kern.vty=vt

# Devil worship in loader logo
loader_logo="beastie"

# Boot-time kernel tuning
kern.ipc.shmseg=1024
kern.ipc.shmmni=1024
kern.maxproc=10000

# Load MMC/SD card-reader support
mmc_load="YES"
mmcsd_load="YES"
sdhci_load="YES"

# Filesystems in Userspace
fuse_load="YES"

# Intel Core thermal sensors
coretemp_load="YES"

# In-memory filesystems
tmpfs_load="YES"

# Asynchronous I/O
aio_load="YES"

# Handle Unicode on removable media
libiconv_load="YES"
libmchain_load="YES"
cd9660_iconv_load="YES"
msdosfs_iconv_load="YES"
snd_driver_load="YES"


cuse4bsd_load="YES"
linux_load="YES"
drm_load="YES"
drm2_load="YES"
iicbus_load="YES"

# Tune ZFS Arc Size - Change to adjust memory used for disk cache
vfs.zfs.arc_max="2048M"

Im Grunde findet sich aber für alles eine recht gute Anleitung. Auch wenn man jetzt Nvidia Karten nutzen möchte oder Virtualbox braucht! Ein wirklich ganz wichtiger Punkt für ein BSD (egal ob FreeBSD / NetBSD usw…) ist die Dokumentation. Wie auch bei einem Solaris oder beim guten alten Unix ist die Dokumentation nicht nur vollständig, sondern auch aktuell, richtig, ausführlich und sehr gut! Bei Linux ist die Dokumentation auch… sagen wir mal „ok“ ABER sie ist nicht immer vollständig, nicht immer aktuell, auch gerne mal nicht ganz korrekt und nicht immer so ausführlich, wie sie sein sollte.

Beim nächsten mal dann vielleicht wirklich etwas zu nvidia, virtualbox, den Ports oder ähnliches!

So long…