Die ver­heiß­ungs­volle Jagd nach 4K/UHD/2160p/HiDPI

Neue Fortschritte bei der Entwicklung des Linux Kernels machen es möglich: den Genuß einer vollen 4K/UHD/2160p Auflösung mit 3840x2160 Bildpunkten und mehr - und das sogar auf älterer Hardware. Was die notwendige Performanz Ihrer CPU betrifft brauchen Sie nicht mehr als ein gutgedientes, älteres Core 2 Duo oder Core 2 Quad System. Das ist vollkommen ausreichend für den normalen Bürobetrieb oder das Anschauen von Photos bei solchen Auflösungen. Vielen Grafikkarten, die nie als 4K/UHD tauglich beworben worden sind, kann man mit den richtigen Kernelparametern und Patches 4K/UHD/2160p Modi entlocken, was eine Übertaktung des TMDS (Transition Minimized Differential Signaling), also der Ausgabefrequenz auf dem HDMI oder DVI Port, erfordert.

UHD monitor

Sogar ein kleines Intel Atom MiniNotebook, das inzwischen mehr als fünf Jahre alt ist, bringt über seinen VGA-Port eine Auflösung von 2560x1440 zustande; ganz ohne Übertakten oder spezielle Tricks, die einen neueren Kernel erfordern würden; vorausgesetzt man konfiguriert es richtig.

Wenn Sie diesen Artikel lesen, werden Sie schon bald höhere Grafikmodi unter Linux genießen können. - und Sie werden sich nie wieder das alte 1080p, auch „Full HD” genannt zurück wünschen. Unserer Meinung nach sind höhere Grafikmodi einfach eine Wohltat - nicht nur wegen der so schön abgerundeten Form von Buchstaben und der gestochen scharfen Wiedergabe von Photos. Sie werden sofort merken, daß viel mehr auf ihren Monitor paßt - etwas das Sie nicht unterschätzen sollten, speziell als Programmierer, wenn Sie mit größeren Textmengen arbeiten oder wenn Sie sich auch nur einen ordentlichen Überblick über Ihren Email-Posteingang verschaffen wollen.

Beschaffen Sie sich die richtige Hardware

Das erste, was Sie brauchen werden, ist ein 4K/UHD fähiger Bildschirm wie unser AOC u2868pqu, hier. Dieser Flachbildschirm hat uns am Zeitpunkt seiner Anschaffung (06.11.2015) 398.50€ gekostet, ist aber inzwischen auch gebraucht für rund 300€ zu haben (07.03.2016). Dieser Monitor erlaubt auf seinem HDMI und DVI Eingang eine Frequenz von 30Hz für 3840x2160, während er in selbiger Auflösung über den DisplayPort sogar eine Frequenz von 60Hz wiedergeben könnte. Entsprechende Adapter, die ein HDMI 2.0 Signal in ein DisplayPort Signal verwandeln, sind derzeit, mit Beginn von 2016, noch sehr rar (die meisten Adapter konvertieren genau in die andere Richtung; eine Ausnahme wäre da der #HD2DP von startech.com.).

Für optimale Geschmeidigkeit sich bewegender Bildschirmausschnitte wie etwa dem Mauszeiger wäre allerdings eine Auffrischungsrate von 60Hz empfehlenswert. Doch es gibt einen Trick mit dem wir die Kontinuität von bewegten Elementen unter 30Hz gleich schön ausschauen lassen können, als ob eine Bildwiederholungsrate von 60Hz unterstützt würde: Interlaced-Modi, die den Bildschirminhalt zeilenverschränkt erneuern: erst alle ungeraden Zeilen, dann alle geraden und danach fängt es wieder von vorne bei den ungeraden an. Das obwohl allgemeinen Wissens nach 25 Bilder pro Sekunde vollkommen ausreichend für fortlaufende, rukellose Bewegtbilder sind. Der Grund dafür ist, daß die Framerate mit der ein Programm Bewegtbilder dekodiert niemals genau der Framerate des Monitors entspricht. Ein neuerer Bildschirm aus derselben Reihe, der u3277pqu würde sogar direkt 60Hz für HDMI 2.0 bieten. Und dennoch, HDMI 2.0 ist etwas, das nur von den neuesten Grafikkarten unterstützt wird und daher für unsere Ambitionen mit bestehender Hardware etwas zu hoch gegriffen sein könnte. Wir werden uns hier wohl mit einer maximalen BildWiederholFrequenz von 30Hz (oder effektiven 60Hz bei Interlacing) zufrieden geben müssen. Leider zeigen sich beim aktuellen Nouveau Treiber beim Interlacing noch Probleme mit dem Mauszeiger. Auch für Videos sollten 30 Hz reichen.

Was den Preis des Rechners betrifft kostet ein besseres Core 2 Notebook wie das Fujitsu Siemens Xi 3650 heute gebraucht nicht unter 200€. Was dessen Grafikkarte, eine NVIDIA Corporation G96M [GeForce 9600M GT] angeht, schafft diese bei einer TMDS-Ansteuerung von 225 MHz eine BildWiederholRate von 24Hz für 3840x2160. Das liegt etwas unter 30Hz, ist keine Standardfrequenz und wird daher auch nicht von allen 4K/UHD-fähigen Monitoren unterstützt. Unser u2868pqu ermöglicht jedoch wie die meisten PC Bildschirme viele nicht-standartisierte Modi, wie wir gleich sehen werden, was bei vielen TV-Schirmen nicht der Fall ist. Das Fujitsu Siemens Xi 3650 bietet unter Linux zusätzlich Flashrom support.

Wer ein Business-Notebook wie das Fujitsu Siemens Celsius H265/H270 mit Nvidia Geforce G96GLM [Quadro FX 770M] bevorzugt, hat neben Special-Features wie 3G/UMTS, einem Chipkartenleser und vielen BIOS-Einstellungen wie ein Abschalten des TPM (Trusted Platform Module) von Haus aus eine hardwaremäßig garantierte Ausstattung für 3840x2160@30. Leider konnten wir im Moment mit Kernel 4.5.0 auch hier keine höhere Bildwiederholrate als 24 Hz erreichen, obwohl sich das in Zukunft aufgrund der regen Entwicklungstätigkeit des Nouveau-Treibers sehr rasch ändern dürfte. Wer garantierte 30 oder 60 Hz braucht, sollte deshalb in diesem Fall auf eine neuere Nvidia-Karte zurückgreifen. Verwenden Sie für dieses Notebook einfach einen DVI zu HDMI Konverter auch unter Windows mit 30 Hz. Beide Notebooks bieten Ihnen eSATAp, ein SDHC-Kartenlesegerät und einen ExpressCard Schacht, den man u.a. für USB 3.0 Karten verwenden kann.

Core 2 basierte und neuere Standrechner sind natürlich entsprechend billiger als Notebooks. Solche Rechner kann man mit der richtigen Grafikkarte ganz einfach 4K/UHD-fähig machen. Soweit wir das getestet haben, verursachen aber viele UHD/4K-fähigen Grafikkarten mit Core 2 basierte Fujitsu Hardware Probleme beim Standy, RAM-Suspend (s2ram) oder bei der Hibernation (s2disk). Eine Grafikkarte, die für uns in jedem erdenklichen Setting mit 3840x2160@30Hz gut funktioniert hat, war die Radeon R5 230 Core 2GB DDR3 PCIe, so wie sie etwa von XFX angeboten wird. Alle anderen UHD-Karten, die uns untergekommen sind, haben Probleme beim Standby und Suspend verursacht: die Radeon R7 240 Core 2GB DDR3 PCIe, die Nvidia GeForce GT 720 GDDR5 oder die GeForce 730. Die Karte mit dem GDDR5 - RAM hat im Test zusätzlich undokumentierte Überhitzungsprobleme gezeigt. Alle der vorhin angeführten Grafikkarten sind passiv gekühlt; kein Belästigung durch einen zusätzlichen Geräuschpegel also.

Sehr angenehm und parktisch bei der R5 230 ist ihr flacher Kühlkörper mit nur einfacher Slothöhe. Damit wird es Ihnen möglich alle PCIe Steckplätze in ihrem Computer voll auszunutzen, ohne daß der oft so wertvolle, über der Karte liegende Steckplatz durch diese verdeckt würde. Die Karte hat einen VGA, einen DVI und einen HDMI Ausgang und kann auch in einem Schreibtischrechner mit SFF (Small Form Factor / Half Height), bei der die PCIe-Karten nur die halbe Höhe aufweisen, installiert werden. Für die meisten Core 2 Systeme, die USB 3.0 zumeist noch nicht von Haus aus unterstützen, ist ebenfalls eine USB 3.0 Erweiterungskarte zu empfehlen; falls Sie sich nicht mit einem eSATAp SlotBlech alleine zufrieden geben wollen. Für uns hat die Silverstone SST-EC04-P mit allen Core 2 Systemen gut zusammen funktioniert. Eine der Besonderheiten dieser USB 3.0 Erweiterungskarte ist der interne USB 3.0 Port, wie er sonst nur direkt am Mainboard zu finden ist. Dieser ist sehr, sehr parktisch wenn Sie damit einen SDHC/SDXC oder CompactFlash Kartenleser in größe eines Floppy Laufwerks betreiben wollen. Dann können Sie auch angenehm und schnell auf Ihre Photos zugreifen.

Noch ein wichtiger Hinweis zur Hardware: Prüfen Sie ihre HDMI Kabel lieber zweimal, ob diese wohl HDMI 1.3 oder 1.4 unterstützen. Mit älteren Kabel ist es nämlich nicht möglich, ein 4K/UHD-Bild zu übertragen. Wir haben unsererseits überdies für alle Konfigurationen zur Sicherheit nur HDMI 2.0 Kabel verwendet. Auch bei VGA Kabeln ist ein gutes Kabel empfehlenswert wenn man es mit Modi jenseits von Full HD probieren möchte.

Benutzerdefinierte Grafikmodi

bessere Grafik über HDMI/DVI (in Verwendung eines MacBook 3,1)

Der erste Computer, dessen Grafikausgabe wir entsprechend verbessert haben, war ein altes MacBook 3,1 aufpoliert unter Verwendung von Debian Stable. Obwohl wir uns da zumindest eine Ausgabe in Full HD für unseren externen Monitor erwartet hätten, war ursprünglich nicht einmal das verfügbar. Obwohl solche Probleme dieser Tage eher selten sind, werden wir zeigen wie man für dieses Notebook Full HD, ja sogar 2560x1600_30 auf einem zugeschalteten Bildschirm erzeugen kann.

Studieren Sie einfach einmal folgende Kommandozeile:

~> xrandr Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192 LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 286mm x 178mm 1280x800 59.91 + 1024x768 60.00* 800x600 60.32 56.25 640x480 59.94 DVI1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 621mm x 341mm 1680x1050 59.88 1280x1024 75.02 60.02 1440x900 59.90 1280x960 60.00 1280x720 59.97 1024x768 75.08 70.07 60.00* 832x624 74.55 800x600 72.19 75.00 60.32 56.25 640x480 75.00 72.81 66.67 60.00 720x400 70.08 ~> cvt --reduced 1920 1080 60 # 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz Modeline "1920x1080R" 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync ~> xrandr --newmode "1920x1080R" 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync ~> xrandr --addmode DVI1 1920x1080R ~> xrandr --output DVI1 --mode 1920x1080R --right-of LVDS1 ~> xrandr DVI1 connected 1920x1080+1024+0 (normal left inverted right x axis y axis) 621mm x 341mm … 1920x1080R 59.93* … ~> umc 1920 1080 60Hz # 1920x1080x60.00 @ 67.260kHz Modeline "1920x1080x60.00" 173.261760 1920 2040 2248 2576 1080 1084 1088 1121 -HSync +VSync

Zuallererst fragen wir die aktuellen Bildschirmeinstellungen ab. Dann lassen wir uns von cvt eine „GrafikModusZeile” (genannt auf Englisch ModeLine) ausgeben. Diese können Sie entweder direkt in Ihrem xorg.conf oder gleich auf der Kommandozeile mit xrandr weiterverwenden, indem Sie diesen neuen Modus für den DVI-Ausgang hinzufügen. Schließlich müssen Sie den neu verfügbaren Grafikmodus noch aktivieren um zu schauen ob dieser auch wirklich funktioniert. Der --reduced Parameter verringert dabei die Schwarztastung (en: Blanking), den Bereich also, in dem sich der Elektronenstrahl umdreht um in der nächste Zeile wieder anzufangen. Dadurch läßt sich eine etwas höhere, vertikale Gesamtwiederaufbaufrequenz für den Bildschirm erreichen. Das sollte vor allem bei modernen TFTs und LCDs gut funktionieren, bei denen es zwar de facto keine Röhre und keinen Elektronenstrahl mehr gibt, die aber immer noch in vergleichbarer Weise angesteuert werden. Deshalb ist es generell auch besser für solche Bildschirme das neuere Dienstprogramm namens gtf statt cvt zu verwenden, obwohl der Unterschied zwischen beiden Programmen unserer Erfahrung nach wirklich nur marginal ist. Das umc Tool hingegen ist noch eine andere Alternative falls cvt und gtf keine funktionierenden Modi zurückgeben (SourceForge Seite, direkter Download der Sourcen für v0.2). Unter gewissen Umständen kann es besser sein gleich ein Werkzeug wie den übers Internet zugänglichen Arachnoid Modeline Calculator zu verwenden. Der unterstützt auch gleich die sog. Interlaced-Modi, die zeilenverschränkt arbeiten und damit eine effektiv doppelt so hohe Auffrsichungsgeschwindigkeit erlauben.

~> ./newmode --gtf DVI1 2560 1600 30 --output DVI1: 2560x1600 mode "2560x1600_30.00": 164.10 2560 2688 2960 3360 1600 1601 1604 1628 -HSync +Vsync xrandr --output DVI1 --mode 2560x1600@30 ~> xrandr --output DVI1 --mode 1920@1080R --right-of LVDS1 ~> xrandr --output DVI1 --mode 2560x1600@30 --right-of LVDS1

Für 2560x1440 oder 2560x1600 müßten Sie einfach nur dieselbe Prozedur wie oben noch einmal wiederholen. Um Ihnen das Leben etwas leichter zu machen, haben wir Ihnen auch gleich unser newmode Skript zur Verfügung gestellt, das alle drei Schritte beim Aufruf von gtf oder cvt angefangen, bis zum Zuordnen des Modus an den entsprechenden Ausgang (DVI/HDMI/VGA), in einen zusammenfaßt. Das ist vor allem praktisch, wenn Sie verschiedene Frequenzen auf einmal durchprobieren wollen: Fügen Sie einfach durch Leerzeichen getrennt neue Frequenzen anstatt von oder nach der 30er Frequenz hinzu um gleich für jede dieser Frequenzen einen neuen Modus zu definieren. Damit können Sie jetzt einfacher verschiedene Frequenzen durchprobieren bis Sie die für ihre Verhältnisse höchstmögliche Frequenz gefunden haben; und noch etwas: Bevor Sie einen neuen Modus tatsächlich einstellen, versichern Sie sich, daß Sie den Bildschirm wieder zurückschalten können, falls dieser nicht funktionieren sollte. Setzen Sie dafür den aktuell funktionierenden Grafikmodus mit xrandr einfach noch einmal, was erst einmal gar keinen Effekt hat. Falls der Schirm aber nach Einstellen des neuen Modus wirklich nichts mehr anzeigen sollte, brauchen Sie dann auf Ihrer Kommandozeile nur mehr zweimal die Taste nach oben zu drücken, um die vorhergehenden Befehle noch einmal abzurufen und dann zur Ausführung die Eingabetaste zu drücken.

Nun bleibt immer noch das Problem, daß Sie diese Schritte nach jedem Systemstart wiederholen müßten. Verwenden Sie deshalb lieber das von uns fertig vorbereitete xorg.conf.MacBook3,1, welches Sie dann, natürlich entsprechenderweise Ihrem System angepaßt, nur nach /etc/X11/xorg.conf kopieren müssen. Auch das newmode - Skript, wie es ganz am Ende dieser Seite verfügbar ist, wird Ihnen hilfreich sein.

bessere Modi für VGA (unter Verwendung eines PB Dots E2 Atombooks)

Höhere Grafikmodi über den VGA-Ausgang zustande zu bringen kann etwas trickreicher sein als über eine DVI/HDMI - Verbindung, da dies häufig eine händische Zusammenstellung der ModeLine (wörtl.: GrafikModusZeile) inklusive Abtastparameter notwendig macht. Eine noch detailliertere Beschreibung als hier gibt es dazu auf Arachnoid (der Link zur Seite befindet sich in der Zusammenstellung am Ende dieser Seite). Eine ModusZeile inklusive Abtastparametern hat unter Linux folgende Form:

ModeLine ModeName DotClock ScreenX HSyncStart HSyncEnd HTotal ScreenY VSyncStart VSyncEnd vTotal

ModeName ist der Name des neuen Grafikmodus, so wie Sie ihn für xrandr eingeben oder in ihrem Lieblingstool zur Konfiguration des Bildschirms sehen können. ScreenX und ScreenY geben die Auflösung des Schirmes an, so wie sie bei Einstellung des Grafikmodus sichtbar wird. ScreenX < HSyncStart < HSyncEnd < HTotal bezeichnen reihum numerisch ansteigende Parameter, so wie sie bei Röhrenschirmen für die Synchronisation des Elektronenstrahls und bei Flachbildschirmen einfach nur für die Steuerung der Bildschirmauffrischung in horizontaler Richtung beim Zeilenwechsel zuständig sind. Ein gleicher Zusammenhang besteht für die vertikalen Synchronisationsparameter. Je kleiner die Schwarztastung außerhalb des sichtbaren Bereiches, desto niedriger die demnach notwendige Frequenz (DotClock) mit der die Bildpunkte gezeichnet werden müssen. Das macht wiederum Luft nach oben hin für eine höhere Auffrischungsrate (RefreshRate) des Bildschirms (gemessen in Bildern pro Sekunde):

DotClock = RefreshRate in Hz * HTotal * VTotal / 1,000,000

Die Auffrischungsrate (RefreshRate) haben wir ja bereits kennen gelernt; sie kann etwa 30Hz, 60Hz oder ähnliche Werte betragen.

Nun, wenn das Bild zuweit am rechten Rand klebt und dort abgeschnitten wird während links ein schwarzer Streifen frei bleibt, dann versuchen Sie ausgehend von einer bestehenden ModusZeile HSyncStart und HSyncEnd in Achterschritten zu erhöhen. Verfahren sie mit VSyncStart und VSyncEnd gleich, nur möglichst kleinen Schrittes wenn das Bild zu weit unten landet; oder subtrahieren Sie entsprechende Werte um das Bild in die jeweils andere Richtung zu verschieben.

Ein Bild, das zu groß oder zu weit auseinandergezogen erscheint, erfordert da die kleinschrittige Vergrößerung von HTotal; und trotz allem; für die höheren Grafikmodi kann es anfangs notwendig sein erst einmal richtig zu raten, damit der Bildschirm überhaupt etwas anzeigt. Um Ihnen diese Aufgabe zu erleichtern, haben wir für Sie ein paar KommandozeilenRoutinen für die Bash-Shell zusammengestellt, welche u.a. die Berechnung der DotClock-Frequenz automatisieren:

~> cat modehack delmod() { xrandr --delmode VGA-1 "$1"; xrandr --rmmode "$1"; } addmod() { xrandr --newmode "$@"; xrandr --addmode VGA-1 "$1"; } chmod() { delmod "$1"; addmod "$@"; } newmod2() { xrandr --newmode "$1" $(bc <<<"scale=2; (30*$6*${10}+5000)/1000000") $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13}; } newmod() { echo xrandr --newmode "$1" $(bc <<<"scale=2; ($2*$6*${10}+5000)/1000000") $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13}; xrandr --newmode "$1" $(bc <<<"scale=2; ($2*$6*${10}+5000)/1000000") $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13}; } addmod() { newmod "$@"; xrandr --addmode VGA-1 "$1"; } ~> source modehack ~> addmod 2560x1440 30 2560 2568 2592 2744 1440 1441 1444 1482 -HSync +Vsync xrandr --newmode 2560x1440 122.00 2560 2568 2592 2744 1440 1441 1444 1482 -HSync +Vsync ~> chmod 2560x1440 50 2560 2568 2592 2744 1440 1441 1444 1482 -HSync +Vsync xrandr --newmode 2560x1440 203.33 2560 2568 2592 2744 1440 1441 1444 1482 -HSync +Vsync ~> xrandr --output VGA-1 --mode 2560x1440

Als erstes ändern Sie den Bezeichner "VGA-1" im modehack Skript, welcher den Ausgabekanal bezeichnet, auf jenen Ausgabekanal, an dem Sie ihren Monitor angeschlossen haben (siehe xrandr). Danach können Sie das Skript mit source in den Speicher laden. Jetzt können Sie neue Modi mit addmod definieren und bestehende gleichen Namens mit chmod ändern. Nicht nur daß, Sie den neuen Modus gleich mit xrandr einstellen können, sondern Sie können die entsprechende ModusZeile (ModeLine) auch gleich in ihr xorg.conf aufnehmen.

An dieser Stelle haben wir für Sie gleich die letzte Konfiguration von oben, die mit dem u2868pqu Monitor bekanntermaßen gut funktioniert, in die in der Tabelle am Ende dieser Seite verfügbare Datei xorg.conf.intel-VGA aufgenommen. Das einzige, was Sie tun müssen ist diese Datei als /etc/X11/xorg.conf in Ihrem System zu installieren und den X-Server neu zu starten. Das geht entweder über einen Reboot oder auf einen der über [Strg][Alt][F1-9] erreichbaren Terminals, indem Sie ihren DisplayManager neu starten. Achtung: alle grafischen Programme vorher beenden und vom DisplayManager ausloggen. (Das Terminal des X-Servers erreichen Sie üblicherweise mit [Strg][Alt][F7/8/1]):

systemctl -t service -a | grep dm # ermitteln Sie den von Ihnen verwendeten DisplayManager systemctl restart kdm.service # auch bspw.: gdm, sddm, etc.

Echtes 4K/UHD/2160p

Um eine Anzeige in vollen 3840x2160 Pixeln darstellen zu können, braucht es noch etwas mehr: Eine Erhöhung der Übertragungsgeschwindigkeit durch das Kabel. Die Übertragung im Kabel wird mittels TMDS (Transition Minimized Differential Signaling) kodiert, was Fehler vermeiden und dadurch eine möglichst hohe Übertragungsgeschwindigkeit ermöglichen soll. Es kann nun notwendig oder sinnvoll sein, die TMDS- Frequenz händisch einzustellen oder nachzujustieren, wie wir das gleich sehen werden, um höhere Auflösungen und damit UHD erst möglich zu machen. Sie brauchen aber selbst vor der Übertaktung des TMDS keine Angst zu haben, da Sie Ihre Karte damit selbst unter den unwahrscheinlichsten Umständen kaum beschädigen können. Die GeForce 9600M GT, die wir getestet haben, hat bei uns mit einer leicht erhöhten TMDS-Frequenz von 225 MHz mindestens 24 Stunden ohne jegliche Überhitzung durchgehalten.

Bei ATI-Karten, die den Radeon-Treiber verwenden, kann es ebenfalls nötig sein, nachzujustieren, was derzeit nur mit einem Kernel-Patch möglich ist. So etwa bei der von uns aus Kompatibilitäts- und Platzgründen empfohlenen Radeon R5 230. Diese Karte funktioniert mit Patch prima, vollkommen stabil und einwandfrei; eine händische Einstellung des Grafikmodus wie im vorhergehenden Abschnitt kann entfallen. Die Karte wurde von NeXus Mobile ursprünglich als 4K-tauglich über HDMI verkauft, obwohl ATI dies offiziell nicht bestätigen möchte.

Stellen Sie, bevor Sie fortfahren, bitte nochmals sicher, dass Sie ein geeignetes Kabel verwenden (HDMI 2.0 oder zumindest 1.3/1.4), sonst kann auch die TMDS-Kodierung keine Wunder mehr wirken.

TMDS- Takt und Grafikmodus

Hier ist eine kurze Auflistung, welche Frequenz-Grafikmodus-Kombinationen im allgemeinen möglich sind:

hdmimhz=165: 2560x1600 oder 2560x1440 in 30 Hz (HDMI 1.0)
hdmimhz=225: 3840x2160, 23 Hz oder vielleicht sogar 24 Hz
hdmimhz=297: 3840x2160, 30 Hz (überschlagsmäßig: 23.00 / 225 * 297)
hdmimhz=330: 4096x2160, 30 Hz (Dual-Link Feature, HDMI 1.3)

Die für einen Grafikmodus notwendige TMDS-Pixelclock errechnet sich dabei wie folgt: 3840 * 2160 * 30Hz / 1.000.000 = 248,832 MHz, was durch 297 bereits abgedeckt ist. Ohnedies sind hier aufgrund der Schwarztastung geringfügig höhere Werte notwendig.

Die entsprechenden Kernelparameter, die Sie auf der Grub-Kommandozeile tatsächlich eingeben können, heißen nouveau.hdmimhz und radeon.hdmimhz, wobei zweiterer Parameter zusätzlich zu Kernel 4.5 noch den bereits erwähnten Patch benötigt. Gemäß einer Auskunft war ich davon ausgegangen daß der Patch bereits in den Mageia Kernel aufgenommen worden wäre. Wie jetzt naheliegt, war das aber offenbar nie wirklich der Fall. Für Intel-Grafikkarten gibt es derzeit noch keine Möglichkeit, das TMDS händisch nachzujustieren.

Wenn Sie höhere Übertragungsfrequenzen erreichen wollen, so spezifizieren Sie hierfür kernelmodul.hdmimhz=225, 297 oder 330 auf der Kernel-Kommandozeile beim Booten via Grub. Wir empfehlen dabei, dass Sie mit 225 anfangen und erst dann schrittweise höhere Frequenzen ausprobieren, solange bis Ihr Schirm die Darstellung des Bildes verweigert; dann aber nicht mehr notwendigerweise höher. 330 ist bisweilen eine der höchsten Frequenzen und laut Angabe der Entwickler nur über ZweiWeg-DVI-Kabel (Dual-Link DVI, i.e. zwei Verbindungen mit 2*165 MHz = 330 MHz) zu erreichen. HDMI-Kabel verfügen nach selbiger Quelle stets nur über eine einfache Verbindung, erlauben aber im Fall von HDMI 2.0 eine Pixelclock von 600 MHz.

nouveau: 3840x2160, 23Hz

Nvidia kann je nach Chipsatz der Grafikkarte zumindest folgende Mindestfrequenzen garantieren, obwohl wir festgestellt haben, dass einige Karten wie die GeForce 9600M GT (Tesla) auch stabil auf höhrem Takt zu betreiben sind.

Für eine Fermi-Karte hat uns erst kürzlich ein anderer Tester über den #nouveau IRC-Channel berichtet, dass er zwei Monitore mit 3840x2160@60 Hz und einen Monitor mit 3840x2160@30 Hz gleichzeitig betreiben konnte. Mit den beiden von uns getesteten Core 2 kompatiblen Nouveau-Karten (GeForce 9600M GT, Quadro FX 770M) konnten wir derzeit aber nur 3840x2160 mit 23 Hz erreichen, obwohl die Quadro FX höhere hdmimhz-Raten als 225 erlaubt. Wenn Sie zweitere Karte haben, testen Sie es am besten mit der neuesten Ihnen zur Verfügung stehenden Kernel-Version noch einmal; es sollten schon bald 3840x2160 und 30 Hz unter automatischer Konfiguration möglich sein. Um das Dual-Link Feature gegebenenfalls auszuschalten, könnten Sie zusätzlich nouveau.duallink=0 spezifizieren. Für Kernel 4.5.0, mit dem wir getestet haben, hat sich daraus allerdings soweit noch keinerlei Vorteil ergeben.

Viel wichtiger als die Verwendung dieses zusätzlichen Parameters ist jedoch die KernelVersion, die Sie für Ihre Tests verwenden. Der nouveau.hdmimhz Parameter wird offiziell nur von Kerneln der HauptVersionsNummer 4.5.0 unterstützt, nicht aber von irgendeinem Kernel davor.

~> uname -a Linux AmiloXi3650 4.5.0-rc6-ARCH #5 SMP PREEMPT Wed Mar 2 16:13:46 CET 2016 x86_64 GNU/Linux
~/linux-stable> grep MODULE_PARM_DESC drivers/gpu/drm/nouveau/*.[ch] | egrep "hdmi|duallink"
drivers/gpu/drm/nouveau/nouveau_connector.c:MODULE_PARM_DESC(duallink, "Allow dual-link TMDS (default: enabled)"); drivers/gpu/drm/nouveau/nouveau_connector.c:MODULE_PARM_DESC(hdmimhz, "Force a maximum HDMI pixel clock (in MHz)");
~> lspci | grep -i VGA
01:00.0 VGA compatible controller: NVIDIA Corporation G96M [GeForce 9600M GT] (rev a1)
~> cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-custom root=/dev/disk/by-label/arch ro resume=/dev/disk/by-label/swap nouveau.hdmimhz=225

uname -a zeigt Ihnen die Version des Kernels, mit der Sie gebootet haben. Um alle installierten KernelVersionen ausfindig zu machen fragen Sie am besten die Paketverwaltung Ihrer Linux-Distribution oder, wenn Sie es sich einfacher machen wollen schauen Sie sich mit ls das Inhaltsverzeichnis von /lib/modules oder /boot an. Die SourceCodes (eines ihrer/) ihres aktuellen Kernels legen die meisten Distributionen, falls bereits über die Paketverwaltung installiert, unter /src/linux ab. Um sich der Version 100%ig sicher zu sein können Sie in diesem Ordner auch make kernelversion eingeben um diese angezeigt zu bekommen. Falls Ihr Kernel also den nouveau.hdmimhz - Parameter nicht unterstützt gehen Sie jetzt einfach zum Kapitel zwecks Übersetzung des Linux-Kernels über.

radeon: 3840x2160, 30Hz

Auf den ersten Blick mag die Sache mit dem radeon - Treiber, falls Sie eine ATI Grafikkarte haben, etwas komplizierter erscheinen. Schließlich müssen Sie den Kernel selbst kompilieren und unser KernelPatch, das den radeon.hdmimhz Parameter einführt, selbst einspielen, da der Patch noch nicht offiziell in den Mainline - Kernel aufgenommen worden ist. Auf der anderen Seite sind wir aber zu dem Schluß gekommen, daß sich das von uns selbst entwickelte radeon - Patch zumindest hier bei unseren Testverhälntissen als äußerst stabil und zuverlässig erwiesen hat.

Das radeon - Patch war unsere eigene Entwicklung. Es kombiniert den hdmimhz und den duallink Parameter in einen, genannt „radeon.hdmimhz”. Das bedeutet in der Praxis, daß das DualLink - Feature (die ZweiwegVerbindungsEigenschaft) für Kabel und Ausgänge stets ausgeschalten bleibt, sobald Sie den radeon.hdmimhz Parameter angeben und dieser ungleich null ist. Das sollte für die radoen.hdmimhz - Werte 225 und 297 in jedem Fall gut funktionieren.

Wenn Sie neugierig sind und sich einen Blick auf den besagten Patch erlauben, dann werden Sie sehen, daß dieser gar nicht schwer zu verstehen ist: Die Routine radeon_dvi_mode_valid gibt einfach true / wahr zurück wenn die per radeon.hdmimhz spezifizierte Frequenz nicht überschritten wird. Wenn Sie nun mit dem radeon.hdmimhz=330 Parameter und der DualLink - Eigenschaft experimentieren wollen, dann müßten Sie wohl veranlassen, daß die Funktion radoen_dvi_monitor_is_duallink genau für diese Konfiguration true zurückgibt (radeon.duallink patch) und nicht wie von uns vorgesehen von Vornherein false. Falls Sie damit Erfolg haben sollten, schreiben Sie uns bitte ein Email. Doch Vorsicht: Wenn diese Funktion true zurückgibt und kein ZweiWegVerbindungskabel angeschlossen und unterstützt wird, dann führt das im besten Fall zu Störungen der Grafikwiedergabe während der Schirm im schlechteren Fall gleich schwarz bleibt. Beachten Sie auch, daß mehrere Schirme auf einmal angeschlossen sein können, nämlich so daß dabei Bildschirme mit und ohne DualLink - Eigenschaft kombiniert werden. Falls Sie mit einem anderen Übertaktungsexperiment wie etwa 600 MHz für HDMI 2.0 Erfolg haben, informieren Sie uns bitte ebenfalls.

Nun, wenn Sie sich eine Radeon R5 230 Karte zugelegt haben, dann ist alles ganz einfach: Spezifizieren Sie radeon.hdmimhz=297 auf der Kernel-Kommandozeile und alles wird ausgezeichnet funktionieren. Sie müssen dann nicht einmal den 3840x2160@30 Modus mehr händisch konfigurieren; der wird dann automatisch bereitgestellt und ausgewählt. Ja, so einfach kann es sein sich eine 4K/UHD taugliche Grafikausgabe zu verschaffen!

Der Linux Kernel

wie man den Linux Kernel übersetzt

Es mag ja da draußen zahlreiche Anleitungen zum Übersetzen des Linux-Kernels geben. Für um so bedeutungsvoller halten wir es dennoch Ihnen kurz und schnell zu zeigen was wirklich wichtig ist:

~> git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git ~/linux-stable> zcat /proc/config.gz >.config ~/linux-stable> make oldconfig evtl.: ~/linux-stable> make menuconfig # falls Sie schnell noch irgendwelche Kernel-Parameter anpassen wollen ~/linux-stable> getconf _NPROCESSORS_ONLN # wieviele Recheneinheiten hat Ihre CPU (_NPROCESSORS_CONF) oder genauer, wieviele sind für Sie effektiv verfügbar? 4 ~/linux-stable> make --jobs=4 bzImage # übersetzt ein mit bzip2 komprimiertes KernelAbbild unter Verwendung von 4 parallel laufenden Threads ~/linux-stable> make install # das KernelAbbild installieren; das funktioniert so für die meisten Distributionen or: ~/linux-stable> cp arch/x86_64/boot/bzImage /boot/vmlinuz-custom # … und so installiert man es unter der Arch-Linux ~/linux-stable> make --jobs=4 modules # übersetzen der Module (inklusive der für uns wichtigen Module radeon, nouveau und drm) ~/linux-stable> make modules_install # Installation der Module unter /lib/modules/YOUR-KERNEL-VERSION ~/linux-stable> mkinitcpio -k YOUR-KERNEL-VERSION -g /boot/initramfs-custom # initrd erzeugen, unter Arch-Linux; andere Distributionen: mkinitrd/ geninitramfs etc. stattdessen verwenden

git ist das VersionsVerwaltungsSystem, das bei der Entwicklung des Kernels Einsatz findet. svn und cvs sind andere, ebenfalls gut bekannte VersionsVerwaltungsSysteme. Sie werden git hier verwenden um den Kernel herunterzuladen und um Patches einzuspielen.

Es ist möglich, daß bei Ihnen der Schritt zcat /proc/config.gz >.config nicht geht, da die entsprechende Funktionalität für das procfs gesperrt ist. Finden Sie in diesem Fall über uname -r die aktuell gebootete Kernelversion heraus und suchen Sie unter /boot nach einer entsprechendem config- Datei. Es ist gut möglich, daß make bzImage Ihnen immer noch eine Reihe an Fragen über die Kernel-Konfguration stelllt. Das macht nichts. Drücken Sie einfach mehrmals Return (Eingabetaste) um eine Standardkonfiguration zu erhalten.

Der letzte Schritt in obiger Anleitung besteht darin eine initrd anzulegen, welche alle KernelModule enthält, die für den Systemstart erforderlich sind; beispielsweise auch um das Dateisystem ihrer Systempartition einzuhängen und darauf zugreifen zu könnnen. Wie sich das hierfür notwendige Kommando unter der von Ihnen verwendeten Distribution nennt, finden Sie am besten mit man -k ramfs oder man -k initrd heraus, falls ein entsprechender Prozeß nicht durch ein erneutes / ans Ende verschobenes make install angestoßen werden kann.

Unter Debian kann der Übersetzungsvorgang so einfach wie folgt angestoßen werden:

~> git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git ~/linux-stable> cp /boot/config-VERSION >.config ~/linux-stable> make oldconfig ~/linux-stable> make --jobs=4 deb-pkg # übersetzt alles und baut Debian-Pakete unter Verwendung von 4 parallel laufenden Threads > dpkg -i linux-headers-VERSION.deb # Installation der Debian-Pakete > dpkg -i linux-image-VERSION.deb

Wenn Sie eine radeon/ATI - Karte haben, wenden Sie den von uns zur Verfügung gestellten KernelPatch direkt nach dem git clone an. Im folgenden Listing brauchen Sie die ersten beiden Befehle nur dann, wenn Sie git auf Ihrem Computer noch nie verwendet habe:

~> git config --global user.name "Max Mustermann" ~> git config --global user.email "your@email.com" ~/linux-stable> git am ~/Downloads/0001-radeon.hdmimhz-parameter-introduced.patch applying: radeon.hdmimhz parameter introduced
* proven to work for a radeon XFX R5 230 card with radeon.hdmimhz=297 3840x2160@30 is offered automatically and can be set successfully with an AOC u2868pqu monitor apparently without heat issues (cooler moderately warm after running half a day)
* radeon_encoders.c: radeon_dig_monitor_is_duallink must always return false otherwise screen stays black for the settings described above

Abschließend müssen Sie noch den Kernel, den Sie gerade übersetzt und installiert haben, in Ihr BootMenü aufnehmen (siehe auch: Anpassung der Kernel-Kommandozeile). Halten Sie nach einem Komamndo wie grub-mkconfig Ausschau oder noch besser nach einem distributionsspezifischen Kommando, das Ihr /boot/grub/grub.cfg automatisch generiert, falls Sie wie heute allgemein üblich Grub als BootLader verwenden. In manchen Distributionen brauchen Sie hier gar nichts zu machen, da der neue Kernel automatisch mit make install oder dpkg -i zum Bootmenü hinzugefügt wird.

Die Kommandos ganz oben sind für Arch-Linux und machen einiges händisch, was unter Distributionen wie Debian automatisch mit einem make install geht: cp arch/x86_64/boot/bzImage /boot/vmlinuz-custom, mkinitcpio, grub-mkconfig. Wichtig ist dabei, daß Sie make install nach make modules_install aufrufen.

wie man einen bereits übersetzten Kernel updatet

Als erstes versichern wir uns mittels git show noch einmal, daß das mit git am angewendete Patch auch richtig eingespielt worden ist:

~> git show # das Anschauen mit der 'q'-Taste beenden ~> git pull remote: Counting objects: 7094, done. remote: Compressing objects: 100% (7086/7086), done. remote: Total 7094 (delta 4817), reused 3 (delta 0) Empfange Objekte: 100% (7094/7094), 8.53 MiB | 910.00 KiB/s, Fertig. Löse Unterschiede auf: 100% (4817/4817), Fertig. ~> git merge origin/master # Sie brauchen hier keine Kommentare einzugeben; einfach mit ':wq' + Eingabetaste beenden ~> git log ~> gitk &

Nachdem wir uns den radeon-hdmimhz Patch noch einmal angeschaut haben, bringen wir unser git - Depot (en: Repository) noch einmal auf den neuesten Stand. Nun werden Sie merken, daß sich an Ihrer lokalen Arbeitskopie (en: check-out), i.e. den Dateien, die Sie sehen können, rein gar nichts geändert hat (alle Änderungen befinden sich in einem versteckten Verzeichnis namens ".git"). Um die eben heruntergeladenen Änderungen in unseren lokalen VersionsZweig (en: Branch), der im Moment nur aus unserem radeon - Patch besteht, hereinzubekommen, müssen Sie erst ein git merge origin/master ausführen, welches Ihren eigenen, lokalen Zweig mit der MasterKopie des entfernten Zweiges, dem das ganze Depot entspringt (en: origin), zusammenführt. Zum Abschluß können Sie sich noch einmal anschauen was git nun wirklich getan hat: geben Sie git log ein oder schauen Sie sich den VersionsBaum mittels gitk an, einem Programm, das Sie wahrscheinlich erst installieren müssen.

Wenn Sie den Kernel immer mit einigen Patches übersetzen, dann aber wieder auf den ursprünglichen Zustand wie im Master-Repository aus dem Netz zurück wollen, können Sie folgende Kommandos verwenden:

> git checkout origin/master # zurücksetzen auf das Master-Repository aus dem Netz > git pull # git Repository updaten - Sie können dieses Kommando auch alleine verwenden, wenn Sie die derzeitigen Patches beibehalten wollen > git checkout origin/master > rm -fr .git/rebase-apply # mit diesem Kommando aufpassen: es löscht ein ganzes Verzeichnis samt Inhalt; hier aber nur ihre lokalen Änderungen im git-Repository > git am xy.patch # jetzt können Sie die Patches, die Sie brauchen, erneut anwenden

Anpassung der Kernel - Kommandozeile

Testen Sie den nouveau.hdmimhz=XXX oder radeon.hdmimhz=XXX KernelParameter, indem Sie einfach die 'e'-Taste drücken, wenn Sie unter Grub über dem jeweiligen BootLaderEintrag stehen. Sie können sich vorher auch die Kernel - Kommandozeile über cat /proc/cmdline anschauen, sodaß Sie beim nächsten Systemstart gleich wissen, wo Sie den hdmimhz - Parameter anfügen müssen. Finden Sie mittels lspci | grep -i VGA heraus, welche Grafikkarte Sie haben und ob es sich dabei um eine ATI (radeon) oder Nvidia (nouveau) - Karte handelt; sie brauchen dann nur den jeweils passenden statt beiden Parametern anzugeben. Derzeit gibt es noch keinen hdmimhz Parameter für Grafikkarten von Intel. Wenn Sie Linux über CD booten, kann es notwendig sein erst eine Tastenkombination wie [ESC]menu[RETURN] einzugeben, damit Sie überhaupt erst ins Grub - BootMenü kommen, wo Sie dann wie bereits besprochen über die 'e'-Taste den entsprechenden BootLaderEintrag anpassen können. All die hier besprochenen Änderungen sind jedoch rein temporärer Natur; das heißt, daß Sie bei jedem Systemstart dieselbe Eingabe wiederholen müssen.

Um nun einen KernelParameter dauerhaft in ihre BootLaderKonfiguration zu übernehmen, müssen Sie erst einmal herausfinden, wie diese bei Ihrer Linux-Distribution am einfachsten angepaßt werden kann. Entweder es gibt bei Ihnen so und so ein grafisches, normalerweise auch über das Menü zugängliches Konfigurationsprogramm dafür oder die notwendigen, distributionsspezifischen Konfigurationsdateien befinden sich unter /etc/default, /etc/syscfg oder einem anderen Verzeichnis unter /etc. Suchen Sie dort nach einer Datei namens 'grub', 'bootloader' oder versuchen Sie mittels grep "+ einem Wort des Kernelparameters" * alle Dateien nach einem Wort zu durchsuchen, das in jedem Fall in einer solchen Konfigurationsdatei enthalten sein muß.

Falls Sie Arch - Linux verwenden, müssen Sie den Bootloader eigentlich schon während der Installation einmal selbst händisch konfiguriert haben. Trotzdem haben wir hier noch einmal zusammengefaßt, wie wir das üblicherweise machen:

~> mcedit /boot/grub/menu.lst ~> grub-menulst2cfg /boot/grub/menu.lst /boot/grub/grub.cfg

Beachten Sie auch, daß die Datei grub.cfg von den Hilfsprogrammen ihrer Distribution wahrscheinlich automatisch generiert wird und somit jederzeit überschrieben werden kann, sobald es zu einer Neuinstallation des BootLaders kommt.




4K/UHD und Ihre grafische Oberfläche

Text und ArbeitsflächenSymbole werden wahrscheinlich nach Aktivierung eines UHD/4K - Modus zu klein für Ihren Geschmack sein. Grundsätzlich gäbe es eine Möglichkeit um die Darstellungsgröße unabhängig von der gerade verwendeten Auflösung nur an der Bildschirmgröße festzumachen. Das würde aber wohl erfordern, daß Sie ein Maßband zücken und den Bildschirm abmessen um dann entsprechende Werte in Ihrem xorg.conf eintragen zu können. Abgesehen davon, daß wir Ihnen nicht einmal für jede Desktopumgebung sicher garantieren können, daß diese Einstellung auch wirklich honoriert würde, wollen wir Ihnen solche Umstände ersparen. Einfacher geht es den dpi-Wert (DotsPerInch: Pixel pro Zoll) der verwendeten Schrift und die Symbolgröße anzupassen, was bei den KDE - systemsettings oder systemsettings5 (SystemEinstellungen) unter „Allgemeines Erscheinungsbild und Verhalten / Erscheinungsbild von Anwendungen” zu finden ist.

Unter der neuesten version von KDE, KDE Plasma 5 gibt es stattdessen eine globale Einstellung in den Systemeinstellungen unter „Hardware ➙ Hardware ➙ Anzeige und Monitor ➙ Anzeigen ➙ Anzeige skalieren”

Unter dem xfce4-settings-manager ließ sich bisweilen nur die DPI Größe der Schriftarten einstellen, nämlich unter „Erscheinungsblid ➙ Schriften ➙ DPI”. Modernere Desktop Umgebungen wie der Unity Desktop unter Ubuntu haben einen allgemeinen, stufenlosen Skalierungsfaktor, der für die gesamte Oberfläche gilt: „Anzeigegeräte ➙ Vergrößerungsfaktor für die Menü und Titelleisten”; hingegen ist „Skaliere alle FensterInhalte passend” nur für den Multi-Monitor Betrieb relevant; man kann hier entweder an die Größe des kleineren oder des größeren Bildschirms anpassen. Es gibt dann noch einen dritten Vergrößerungsfaktor unter „Darstellung ➙ Erscheinungsbild ➙ Größe der Startersymbole”

Gnome läßt normalerweise nur einen Sklaierungsfaktor von eins oder zwei zu, was für manche Bildschirme wieder zu groß sein kann. Eine stufenlose Einstellung kann für Wayland mit dem Befehl gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']" erreicht werden. Ob Gnome wirklich unter Wayland läuft läßt sich mit env | grep -i wayland überprüfen. Bleibt die Ausgabe leer ist das ältere Xorg in Verwendung. Die Einstellung findet sich schließlich unter „Geräte ➙ Bildschirme ➙ Skalieren”.

Bleibt noch Cinnamon mit der Einstellung „Einstellungen ➙ Allgemein ➙ Skalierung” welche Werte von 1 und 2 ohne Zwischenschritte annehmen kann. Schließlich gibt es noch eine ähnliche Einstellung mit dem dconf Editor des Mate Desktops: „org ➙ mate ➙ desktop ➙ interface ➙ window-scaling-factor”. Erlaubte Werte sind 1 und 2. Die Schriftgröße kann man unter „System ➙ Einstellungen ➙ Darstellung ➙ Erscheinungsbild ➙ Schriften” anpassen.

Andere DesktopUmgebungen wie IceWM oder Enlightment haben oft keine DPI Einstellung für Schriften und auch keine für die Icon-Größe, was bedeutet daß der Window Manager dieser Umgebungen die Größe der Titelzeile von Anwendungen nicht anpaßt. Sie werden wahrscheinlich trotzdem wollen, daß Qt und Gtk Anwendungen wie Firefox in der richtigen Größe erscheinen. Die folgenden Befehle können das für QT Anwendungen, die meisten GTK Anwendungen (Firefox), für Gnome 3 und für Gnome 2 Anwendungen erreichen:

xrandr --output DVI-D-1 --primary --dpi 128 export QT_SCALE_FACTOR=1.33 export GDK_DPI_SCALE=1.33 gsettings set org.gnome.desktop.interface text-scaling-factor 1.33 gconftool-2 --type float --set /desktop/gnome/font_rendering/dpi 128

Im Prinzip wäre es richtig nur xrandr zu verwenden, doch leider beachten die meisten Anwendungen diese Einstellung nicht, zumindest nicht direkt. Ein Vergrößerungsfaktor von 1.33 entspricht einem DPI Wert von 128 = 96 * 1.33. Sie können das Xclient-settings Script von oben für diese Aufgabe verwenden. Verwenden Sie xrandr | grep connected um den richtigen Interfacenamen für ihren Bidschirm herauszufinden. Der ist höchstwahrscheinlich nicht DVI-D-1.

Einfach obige Kommandos in einer Konsole auszuführen, nachdem ihre Desktopumgebung gestartet hat, ist leider unzureichend. Umgebungsvariablen werden nämlich beim Programmstart vererbt. Das heißt, wenn Sie eine Konsole starten, obige Befehle ausführen und dann beenden, dann gehen die Einstellungen für die Umgebungsvariablen QT_SCALE_FACTOR und GDK_DPI_SCALE wieder verloren. Plazieren Sie Xclient-settings in /etc/X11/ und fügen Sie folgende Zeile am Beginn von /etc/X11/Xsession ein:

source /etc/X11/Xclient-settings

Damit Sie /etc/X11/Xsession nicht bei jeder Neuinstallation und jedem entsprechenden Update neu anpassen müssen, können Sie wie in folgenden Kommandos einen Patch verwenden:

cp /etc/X11/Xsession /etc/X11/Xsession.orig
# modify /etc/X11/Xsession diff -c /etc/X11/Xsession.patch.orig /etc/X11/Xsession.patch >~/Xsession.patch # create context diff sed -i s#/etc/X11/Xsession.orig#/etc/X11/Xsession# ~/Xsession.patch # adjust for file name in the patch header cd / patch --forward -p0 -ci ~/Xsession.patch # --forward ~ do not reverse the application of the patch, -p0 ~ use path names unmodified, -c ~ context diff, i ~ followed by patch file