Xorg und Videotreiber

Wir werden in diesem Tutorial Xorg und die entsprechenden Grafiktreiber installieren und einrichten.

Xorg

Wir fügen unseren Benutzer der Gruppe „video“ hinzu, um Zugriff auf das DRI zu gewähren:

pw groupmod video -m $USERNAME

Dann installieren wir die Pakete xorg und xscreensaver:

pkg install xorg xscreensaver

FreeBSD als Gast auf der Virtualbox

Wenn wir FreeBSD unter VirtualBox verwenden wollen, benötigen wir das Paket virtualbox-ose-additions, damit wir die Auflösung automatisch angepasst wird.

pkg install virtualbox-ose-additions

Anschließend tragen wir folgendes in die /etc/rc.conf ein.

nano /etc/rc.conf =>
 
vboxguest_enable="YES"
vboxservice_enable="YES"
vboxservice_flags="--disable-timesync"

Video DRM Drivers (Intel, AMD, ATI)

Ab FreeBSD 11.2 können wir das Paket drm-fbsd11.2-kmod oder für FreeBSD 12 drm-fbsd12.0-kmod verwendet werden:

#FreeBSD 11.2
pkg install drm-fbsd11.2-kmod

#FreeBSD 12
pkg install drm-fbsd12.0-kmod

For amdgpu: sysrc kld_list+="amdgpu"
For Intel: sysrc kld_list+="/boot/modules/i915kms.ko"
For radeonkms: sysrc kld_list+="/boot/modules/radeonkms.ko"

Alte Treiber

Wenn die neuen DRM Treiber Probleme machen, können wir auch die alten Treiber verwenden.

Intel

pkg install xf86-video-intel
sysrc kld_list+="i915kms"

Radeon Graphic

sysrc kld_list+="radeonkms"

Videobeschleunigung für Intel Grafikkarten

Für Intel Grafikkarten gibt es einen VA-API-Treiber (Video Acceleration API) für die Videobeschleunigung. Wir installieren das Paket libva-intel-driver mit diesem Befehl:

pkg install libva-intel-driver

Dann testen wir, dass es funktioniert: Und vor allem testen wir auch den Suspend / Resume.

Für Benutzer der Intel Sandybridge-Karte (oder besser) kann die Aktivierung des SNA-Modus von Vorteil sein (Wir überprüfen dies, indem wir beispielsweise den Unterschied mit gtkperf messen).

Um diesen Modus zu aktivieren, eine Beispielkonfiguration:

nano /usr/local/etc/X11/xorg.conf.d/20-video.conf =>
 
Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
    Option "AccelMethod" "sna"
EndSection

X11-Videotreiber für Nvidia

Für Nvidia-Treiber gibt es je nach Generation der Grafikkarte mehrere Treiber (nvidia-driver-304, nvidia-driver-340, nvidia-driver).

Falls wir eine alte ION 1 haben:

pkg install nvidia-driver-304
 
echo 'nvidia_load="YES"' >> /boot/loader.conf
 
mkdir -p /usr/local/etc/X11/xorg.conf.d/
 
nano /usr/local/etc/X11/xorg.conf.d/20-video.conf =>
 
Section "Device"
    Identifier "NVIDIA Card"
    VendorName "NVIDIA Corporation"
    Driver "nvidia"
EndSection

System Console Frame Buffer (SCFB)

Wenn für unser FreeBSD-System kein beschleunigter Grafiktreiber verfügbar ist, können wir alternativ den Treiber scfb verwenden. Als erstes installieren wir das Paket xf86-video-scfb;

pkg install xf86-video-scfb

Anschließend erstellen wir die Datei /usr/local/etc/X11/xorg.conf.d/driver-scfb.conf mit folgendem Inhalt:

nano  /usr/local/etc/X11/xorg.conf.d/driver-scfb.conf => 

Section "Device"
    Identifier    "Card0"
    Driver        "scfb"
EndSection

Tastaturbelegung

Um den Tastaturtyp festzulegen, erstellen wir die Konfigurationsdatei /usr/local/etc/X11/xorg.conf.d/10-keyboard.conf, die mit folgendem Inhalt gefüllt ist:

nano /usr/local/etc/X11/xorg.conf.d/10-keyboard.conf =>
 
Section "InputClass"
    Identifier "Keyboard Defauls"
    Driver "keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "de"
EndSection

dbus und HAL

Die Verwendung von HAL ist veraltet, da Werkzeuge zunehmend devd verwenden sollten.

Xorg ist mit der Unterstützung von HAL kompiliert (die nur verwendet wird, um die automatische Installation von USB-Geräten unter Gnome / KDE-Umgebungen zu ermöglichen), wir konfigurieren den automatischen Start von diesen:

sysrc dbus_enable=YES
sysrc hald_enable=YES

Und wir starten diese Dienste:

service dbus start
service hald start

Standardmäßig lädt FreeBSD weder procfs noch fdesc. Aber für einige Anwendungen (wie HAL) werden diese benötigt. Wir bearbeiten die Datei /etc/fstab und fügen diese beiden Zeilen hinzu:

nano /etc/fstab => 

proc    /proc        procfs     rw,late        0    0
fdesc   /dev/fd      fdescfs    rw,late        0    0


mount /proc
mount /dev/fd/

Polkit

In Bezug auf Software, die Polkit verwendet (z. B. xfce), können wir wie folgt festlegen, dass der Benutzer den Computer herunterfahren und den Ruhezustand für Benutzer der Gruppe „operator“ aktivieren kann.

nano /usr/local/etc/polkit-1/rules.d/51.shutdown.rules =>

polkit.addRule(function (action, subject) {
	if ((action.id == "org.freedesktop.consolekit.system.restart" || action.id == "org.freedesktop.consolekit.system.stop") && subject.isInGroup("operator")) {
		return polkit.Result.YES;         
	}
});
 
  
  
nano /usr/local/etc/polkit-1/rules.d/52.resume.rules =>
  
polkit.addRule(function (action, subject) {
	if (action.id == "org.freedesktop.consolekit.system.suspend" && subject.isInGroup("operator")) {
		return polkit.Result.YES;
	}
});
   
chown -R polkitd /usr/local/etc/polkit-1/

Dann werden wir ein fehlendes Berechtigungsproblem bezüglich der Aktionen korrigieren. Wir sollten die folgenden Fehler in den /var/log/messages bemerken:

Jul 18 00:21:28 x220 dbus[20382]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.19" (uid=1001 pid=63293 comm="") interface="org.freedesktop.ConsoleKit.Manager" member="CanSuspend" error name="(unset)" requested_reply="0" destination=":1.1" (uid=0 pid=44489 comm="")
Jul 18 00:21:28 x220 dbus[20382]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.19" (uid=1001 pid=63293 comm="") interface="org.freedesktop.ConsoleKit.Manager" member="CanHibernate" error name="(unset)" requested_reply="0" destination=":1.1" (uid=0 pid=44489 comm="")

Um dieses Problem (und entsperren die „Standby“ und „Ruhezustand“ Aktionen) von z. B, XFCE zu beheben, müssen wir die Datei /usr/local/etc/dbus-1/system.d/ConsoleKit.conf bearbeiten, und füge diese 6 Zeileen nach der letzte deny Zeile ein:

nano /usr/local/etc/dbus-1/system.d/ConsoleKit.conf =>

<deny send_destination="org.freedesktop.ConsoleKit"
      send_interface="org.freedesktop.DBus.Properties" />
<allow send_destination="org.freedesktop.ConsoleKit"
       send_interface="org.freedesktop.ConsoleKit.Manager"
       send_member="CanSuspend"/>
<allow send_destination="org.freedesktop.ConsoleKit"
       send_interface="org.freedesktop.ConsoleKit.Manager"
       send_member="CanHibernate"/>
<allow send_destination="org.freedesktop.ConsoleKit"
       send_interface="org.freedesktop.ConsoleKit.Manager"
       send_member="Restart"/>

Synaptics, Trackpoint (Lenovo) oder Elantec

Um es einfach auszudrücken, lassen wir den Daemon die sysmouse-Schnittstelle zu Xorg einführen. Aber wir müssen diesem einen sagen, dass wir diese Art von Maus haben:

echo 'hw.psm.synaptics_support="1"' >> /boot/loader.conf

sysrc moused_enable=YES
service moused start

Für einen Trackpoint oder einen Elantec müssen wir das Wort „synaptics“ durch Ihren Zeigertyp ersetzen.

Unter Xorg verbessert der Befehl xset mouse 5 1 die Beschleunigung. Wir fügen einfach diese Zeile zu unserer ~/.xinitrc hinzu.

nano ~/.xinit => 

xset mouse 5 1

Schriftarten

Wir installieren folgende hübsche Schriftarten:

pkg install dejavu urwfonts bitstream-vera webfonts terminus-font hack-font

Wir überprüfen dann, was in Xorg durch diesen Befehl berücksichtigt wird:

fc-list

Wenn wir ein Anti-Aliasing-Problem mit der Helvetica-Schrift haben (ich habe dieses Problem in Firefox), machen wir Folgendes, um es zu korrigieren:

nano /usr/local/etc/fonts/local.conf =>

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<match target="pattern" name="family">
    	<test qual="any" name="family">
        	<string>Helvetica</string>
        </test>
        <edit name="family" mode="assign">
        	<string>sans-serif</string>
        </edit>
	</match>      
</fontconfig>