Linux Monitorauflösung für Headless Betrieb permanent einstellen
Der Linux Kernel verwendet eine Technik mit dem Namen Kernel Mode Setting zum Konfigurieren des Anzeigemodus (Auflösung, Farbtiefe, Wiederholungsrate) des Displaycontrollers (Grafikkarte). In der Standardkonfiguration liest der Kernel dazu die Extended Display Identification Data (EDID)[1] des angeschlossenen Monitors aus, um die bestmögliche Konfiguration automatisch einzustellen. Wird ein Linux System ohne angeschlossenen Monitor gestartet, kann es durch die fehlenden EDID-Informationen beim Starten dazu kommen, dass nach einem Anschließen eines Monitors das Bild schwarz bleibt. In diesem Artikel zeigen wir, wie Sie dieses Problem lösen.
Problembeschreibung
Im konkreten Testfall kommen folgende Hardware- und Software-Komonenten zum Einsatz:
- Produkt nicht mehr verfügbar (Server mit 2 Display-Port Anschlüssen)
- Kubuntu 16.04.2
Nach der Installation wird das System heruntergefahren und der Monitor abgeschlossen. Das System wird anschließend gestartet (Headless Betrieb). Anschließend wird der Monitor angesteckt, das Bild bleibt dabei jedoch schwarz.
Lösung
Damit die Anzeige auch funktioniert wenn der Monitor erst nach dem Hochfahren des Systems angeschlossen wird, führen Sie die folgenden Schritte aus:[2]
- Lesen Sie die EDID-Daten bei angeschlossenem Monitor aus:
sudo get-edid > monitor.edid
- (Sofern gewünscht können Sie sich die Daten mittels
parse-edid < monitor.edid
in lesbarer Form anzeigen lassen.)
- Kopieren Sie die Daten in das Firmware-Verzeichnis:
sudo mkdir /lib/firmware/edid
sudo cp monitor.edid /lib/firmware/edid/
- Ergänzen Sie die in der Dateil /etc/default/grub die Zeile GRUB_CMDLINE_LINUX_DEFAULT um einen drm_kms_helper.edid_firmware Eintrag:
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash drm_kms_helper.edid_firmware=edid/monitor.edid video=DP-1:1680x1050@60D"
- Den Parameter video= müssen Sie ggf. an Ihre Hardware-Konfiguration anpassen. Den Display-Namen (in unserem Beispiel "DP-1") und die Auflösung finden Sie in den Grafikeinstellungen (siehe Bild anbei). Alternativ finden Sie über das /sys Dateisystem ebenso Informationen zum Display-Namen:
cd /sys
find -iname *edid*
- Aktualisieren Sie Grub-Konfiguration:
sudo update-grub
- Sie können nun das System herunterfahren und den Monitor abstecken. Wenn Sie danach das System neu starten und erst im Nachhinein den Monitor anschließen, funktioniert die Bildschirmanzeige.
EDID Beispiele
Als Beispiel finden Sie hier EDID von zwei Monitoren.
iiyama ProLite B2480HS
EDID Datei: Datei:Iiyama-ProLite-B2480HS.edid.zip
Ausgabe von parse-edid:
$ parse-edid < iiyama-ProLite-B2480HS.edid Checksum Correct Section "Monitor" Identifier "PL2480H" ModelName "PL2480H" VendorName "IVM" # Monitor Manufactured week 40 of 2012 # EDID version 1.3 # Digital Display DisplaySize 520 290 Gamma 2.20 Option "DPMS" "true" Horizsync 30-83 VertRefresh 55-76 # Maximum pixel clock is 170MHz #Not giving standard mode: 1920x1080, 60Hz #Not giving standard mode: 1280x1024, 60Hz #Not giving standard mode: 1440x900, 60Hz #Not giving standard mode: 1680x1050, 60Hz #Not giving standard mode: 1280x960, 60Hz #Not giving standard mode: 1152x864, 75Hz #Not giving standard mode: 1440x900, 75Hz Modeline "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync EndSection
BenQ BL2201
EDID Datei: Datei:BenQ-BL2201.edid.zip
Ausgabe von parse-edid:
$ parse-edid < BenQ-BL2201.edid Checksum Correct Section "Monitor" Identifier "BenQ BL2201" ModelName "BenQ BL2201" VendorName "BNQ" # Monitor Manufactured week 47 of 2013 # EDID version 1.4 # Digital Display DisplaySize 480 300 Gamma 2.20 Option "DPMS" "true" Horizsync 30-83 VertRefresh 50-76 # Maximum pixel clock is 170MHz #Not giving standard mode: 1152x720, 60Hz #Not giving standard mode: 1280x800, 60Hz #Not giving standard mode: 1280x800, 75Hz #Not giving standard mode: 1280x1024, 60Hz #Not giving standard mode: 1600x900, 60Hz #Not giving standard mode: 1680x1050, 60Hz Modeline "Mode 0" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync EndSection
Einzelnachweise
- ↑ Extended Display Identification Data (en.wikipedia.org)
- ↑ Kernel Mode Setting - Forcing modes and EDID (wiki.archlinux.org)
Weitere Informationen
- Kernel Mode Setting (KMS) (kernel.org/doc)
- Kernel Mode Setting (wiki.debian.org)
- Kernel Mode Setting (fedoraproject.org/wiki)
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|