Die verheißungsvolle Jagd nach 4K/UHD/2160p

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 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 sein sollten. 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.

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 viele nicht-standartisierte Modi, wie wir gleich sehen werden, und sollte deshalb eine Empfehlung wert sein. Diejenigen unter Ihnen, die die Unterstützung von 30Hz Modi für die ultimative MonitorKompatibiltät unbedingt benötigen, mögen sich beispielsweise lieber ein Fujitsu Siemens Celsius H265/H270 für den professionellen Bereich zulegen. Dieser Mobilrechner verfügt über eine Nvidia Geforce G96GLM [Quadro FX 770M] Karte. Für 4K/30Hz Modi wie bei uns mit dem u2868pqu können Sie dessen DVI-Ausgangsssignal einfach mit einem Adapter auf HDMI wandeln, obwohl auch der DVI-Eingang dieses Bildschirms bei Wahl des richtigen Kabels das gleiche leisten kann. 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 Probleme beim Standy, RAM-Suspend (s2ram) oder bei der Hibernation (s2disk). Das gilt zumindest für Core 2 basierte Fujitsu Hardware; wir bezweifeln jedoch, daß irgendein ähnlich altes System in dieser Hinsicht besser abschneiden würde. 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.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.

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* …

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 als über den DVI-Ausgang verfügbar 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. Unter gewissen Umständen kann es daher 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 kodiert, was Fehler vermeiden und dadurch eine möglichst hohe Übertragungsgeschwindigkeit ermöglichen soll. Stellen Sie nochmals sicher, daß Sie ein geeignetes Kabel verwenden (HDMI 2.0 oder zumindest 1.4), sonst kann auch die TMDS-Kodierung keine Wunder mehr wirken.

nouveau: 3840x2160, 23Hz

Die Standardfrequenz fürs TMDS ist 165 MHz. Das ermöglicht 2560x1600_30.00 oder 2560x1440_30.00. Wenn Sie mit einer Nvidia-Karte höhere Übertragungsfrequenzen erreichen wollen, so spezifizieren Sie hierfür nouveau.hdmimhz=225, 297 oder 330 auf der Kernel-Kommandozeile beim Booten via Grub, LiLo oder was auch immer sie verwenden. Wir empfehlen dabei, daß 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 derzeit die höchste Frequenz und laut Angabe der Entwickler nur über ZweiWeg-DVI-Kabel (Dual-Link DVI) zu erreichen. HDMI Kabel verfügen nach selbiger Quelle setes nur über eine einfache Verbindung. Um das explizit zu machen, könnten Sie nouveau.duallink=0 spezifizieren. Für Kernel 4.5.0-rc6, mit dem wir getestet haben, hat sich daraus allerdings soweit 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.

Hier ist eine kurze Auflistung welche Frequenz - GrafikModus - Kombinationen möglich sein sollten:

Unglücklicherweise konnten wir mit unserer aktuellen KernelVersion, dem Release Candidate 6 (-rc6, „VeröffentlichungsKandidat”) und einer Nvidia Geforce G96GLM [Quadro FX 770M] derzeit keinen höheren Modus als 3840x2160_23.00 erreichen, obwohl höhere Werte für hdmimhz als 225 möglich waren. Das zeigt, daß die Arbeiten im Breich der TMDS-(Über)taktung noch nicht abgeschlossen sind. Wir freuen uns auf allfällige Verbesserungen in neueren Versionen. Wenn Sie den Kernel selbst übersetzen, werden Sie wahrscheinlich bereits eine neuere Version des nouveau und/oder drm - Moduls haben als wir …

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 das 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 (Für genauere Informationen über das HdmiMhz und das DualLink-Feature lesen Sie bitte auch das vorhergehende Kapitel über nouveau und UHD.).

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 und nicht wie von uns vorgesehen von Vornherein false. Falls Sie damit Erfolg haben sollten, schreiben Sie uns bitte ein Email, damit wir unseren Patch entsprechend anpassen können. 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.

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.

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.

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.

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.

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/defaults, /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 oder sonst eben unter dem xfce4-settings-manager oder dem entsprechenden Programm für Gnome.