Linux Monitorauflösung für Headless Betrieb permanent einstellen

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

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:

  • LES network+ (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

In den Grafikeinstellungen finden Sie Informationen zum Display-Namen und zur Auflösung ("DP-1" sowie "1680x1050" im Beispiel). Diese Informationen sind für den Eintrag in der Datei /etc/default/grub erforderlich.
Damit die Anzeige auch funktioniert wenn der Monitor erst nach dem Hochfahren des Systems angeschlossen wird, führen Sie die folgenden Schritte aus:[2]
  1. 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.)
  2. Kopieren Sie die Daten in das Firmware-Verzeichnis:
    sudo mkdir /lib/firmware/edid
    sudo cp monitor.edid /lib/firmware/edid/
  3. 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*
  4. Aktualisieren Sie Grub-Konfiguration:
    sudo update-grub
  5. 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.

Einzelnachweise

  1. Extended Display Identification Data (en.wikipedia.org)
  2. Kernel Mode Setting - Forcing modes and EDID (wiki.archlinux.org)

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Communications / Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxCon, OSDC, OSMC, LinuxTag u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

Filerecovery unter Linux mit Foremost
ISCSI Multipathing unter Linux
Linux Pipe Viewer (pv)