Xorg und Videotreiber
Veröffentlicht am: 23.01.2021 08:45Wir 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:
root#: pw groupmod video -m $USERNAME
Dann installieren wir die Pakete xorg und xscreensaver:
root#: 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.
root#: pkg install virtualbox-ose-additions
Anschließend tragen wir folgendes in die /etc/rc.conf
ein.
root#: 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
root#: pkg install drm-fbsd11.2-kmod
#FreeBSD 12
root#: 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
root#: pkg install xf86-video-intel
root#: sysrc kld_list+="i915kms"
Radeon Graphic
root#: 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:
root#: 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:
root#: nano /usr/local/etc/X11/xorg.conf.d/20-video.conf =>
Section "Device"
Identifier "Intel Graphics"
Driver "modesetting"
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-390, nvidia-driver).
Damit wir wissen, welche GPU von welcher Version unterstützt wird schauen wir einfach bei nvidia nach.
- Unterstützte Produkte für nvidia-driver-304
- Unterstützte Produkte für nvidia-driver-340
- Unterstützte Produkte für nvidia-driver-390
- Unterstützte Produkte für nvidia-driver
Für eine aktuelle GPU installieren wir das Paket nvidia-driver folgendermaßen:
root#: pkg install nvidia-driver
root#: echo 'nvidia_load="YES"' >> /boot/loader.conf
root#: mkdir -p /usr/local/etc/X11/xorg.conf.d/
root#: nano /usr/local/etc/X11/xorg.conf.d/20-video.conf =>
Section "Device"
Identifier "NVIDIA Card"
VendorName "NVIDIA Corporation"
Driver "nvidia"
EndSection
Wenn mehr als eine Grafikkarte in unserem Notebook vorhanden ist, kann der Eintrag BusID verwendet werden, um die gewünschte Karte auszuwählen. Eine Liste der BusIDs der Grafikkarten können wir mit pciconf -lv | grep -B3 display ausgegeben lassen.
root#: nano /usr/local/etc/X11/xorg.conf.d/20-video.conf =>
Section "Device"
Identifier "NVIDIA Card"
VendorName "NVIDIA Corporation"
Driver "nvidia"
BusID "PCI:1:0:0"
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:
root#: pkg install xf86-video-scfb
Anschließend erstellen wir die Datei /usr/local/etc/X11/xorg.conf.d/driver-scfb.conf
mit folgendem Inhalt:
root#: nano /usr/local/etc/X11/xorg.conf.d/driver-scfb.conf =>
Section "Device"
Identifier "Card0"
Driver "scfb"
EndSection
dbus und HAL (für Gnome/KDE)
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:
root#: sysrc dbus_enable=YES
root#: sysrc hald_enable=YES
Und wir starten diese Dienste:
root#: service dbus start
root#: 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:
root#: nano /etc/fstab =>
proc /proc procfs rw,late 0 0
fdesc /dev/fd fdescfs rw,late 0 0
root#: mount /proc
root#: 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.
root#: 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;
}
});
root#: 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;
}
});
root#: 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:
root#: 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"/>
Schriftarten
Wir installieren folgende hübsche Schriftarten:
root#: pkg install dejavu urwfonts bitstream-vera webfonts terminus-font hack-font
Wir überprüfen dann, was in Xorg durch diesen Befehl berücksichtigt wird:
root#: 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:
root#: 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>
UDEV
Seit FreeBSD 12.1 wird udev zur automatischen Konfiguration von Eingabegeräten verwendet.
Als erstes installieren wir folgende Pakete, libinput und xf86-input-libinput:
root#: pkg install libinput xf86-input-libinput
Wir werden nun folgende Konfigurationsdatei erstellen:
root#: nano /usr/local/etc/X11/xorg.conf.d/99-myinput.conf =>
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "XkbRules" "evdev"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "MiddleEmulation" "on"
Option "DisableWhileTyping" "on"
EndSection
In der /etc/sysctl.conf
tragen wir folgendes ein:
root#: nano /etc/sysctl.conf =>
kern.evdev.rcpt_mask=12
Weitere einstellungsmöglichkeiten findet man hier.
DEVD
Wenn XOrg mit devd erstellt worden ist, müssen wir folgende Settings verwenden.
root#: echo 'hw.psm.synaptics_support="1"' >> /boot/loader.conf
sysrc moused_enable=YES
root#: 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.
root#: nano ~/.xinit =>
xset mouse 5 1
Wir möchten, ein „MacBook“ ähnliches Scrollen mit zwei Fingern verwenden, dazu tragen wir in der /etc/sysctl.conf
folgendes ein:
root#: nano /etc/sysctl.conf =>
hw.psm.synaptics.min_pressure=45
hw.psm.synaptics.max_pressure=220
hw.psm.synaptics.max_width=10
hw.psm.synaptics.vscroll_hor_area=1300
hw.psm.synaptics.vscroll_ver_area=-600
hw.psm.synaptics.vscroll_min_delta=50
hw.psm.synaptics.vscroll_div_min=100
hw.psm.synaptics.vscroll_div_max=150
hw.psm.synaptics.weight_current=3
hw.psm.synaptics.weight_previous=6
hw.psm.synaptics.weight_previous_na=20
hw.psm.synaptics.weight_len_squared=2000
hw.psm.synaptics.div_min=9
hw.psm.synaptics.div_max=17
hw.psm.synaptics.div_max_na=30
hw.psm.synaptics.div_len=100
hw.psm.synaptics.margin_top=200
hw.psm.synaptics.margin_right=200
hw.psm.synaptics.margin_bottom=200
hw.psm.synaptics.margin_left=200
hw.psm.synaptics.window_min=4
hw.psm.synaptics.window_max=10
hw.psm.synaptics.multiplicator=10000
hw.psm.tap_timeout=0
hw.psm.synaptics.tap_max_delta: 80
hw.psm.synaptics.tap_min_queue: 2
hw.psm.synaptics.taphold_timeout: 125000
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:
root#: nano /usr/local/etc/X11/xorg.conf.d/10-keyboard.conf =>
Section "InputClass"
Identifier "Keyboard Defauls"
Driver "keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "de"
EndSection
Hinterlasse einen Kommentar
Auf der eigenen Website geantwortet? Sende eine Webmention!