Displayport - schwarzer Bildschirm

Liebe Kollegen,
mich nervt seit geraumer Zeit folgendes Problem, das auch zu Akzeptanzproblemen bei den Kollegen führt:

Wir haben Lenovo ThinkCentres mit Displayportausgängen (manche auch noch zusätzlich HDMI, andere noch VGA). Was baei VGA und HDMI nie aufgetreten ist, passiert mit DP immer:

Schalte ich den Rechner VOR dem Monitor ein (passiert den Kollegen oft), oder geht
der Monitor in Powersave, dann bleibt der Bildschirm dunkel und es muss ein Hard-Reset gemacht werden. Um das Problem von den eingesetzten Displayverteilern zu isolieren (wir haben Rechner => Adapter DP auf HDMI => HDMI Verteiler => Beamer)
habe ich das im Direktanschluss daheim nachgebaut DP vom Rechner zum Bildschirm
und das Problem tritt analog auf: Zu spät einschalten und es bleibt dunkel.
(Ich verwende hier zwar MINT, sollte aber nicht das Problem sein)

ABER: Ich komme auf eine Konsole!

Kennt jemand das Problem und hat dafür eine Lösung?

HW-Daten:
lspci
00:00.0 Host bridge: Intel Corporation Device 591f (rev 05)
00:02.0 VGA compatible controller: Intel Corporation Device 5912 (rev 04)
00:14.0 USB controller: Intel Corporation Device a2af
00:14.2 Signal processing controller: Intel Corporation Device a2b1
00:16.0 Communication controller: Intel Corporation Device a2ba
00:17.0 SATA controller: Intel Corporation Device a282
00:1b.0 PCI bridge: Intel Corporation Device a2eb (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device a2c8
00:1f.2 Memory controller: Intel Corporation Device a2a1
00:1f.3 Audio device: Intel Corporation Device a2f0
00:1f.4 SMBus: Intel Corporation Device a2a3
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
01:00.0 Non-Volatile memory controller: Intel Corporation Device f1a5 (rev 03)

VG
Wolfgang

Ich Arbeite Praktisch nur mit Mint und wir haben auch bei den Smartbords nur Display Ports über Adapter (Internet gr. Karte)… Ich weis das einige von den leih Laptops dort Probleme haben. Wenn man das nicht in der richtig rein folge anmacht aber die konnte ich Aussortieren. Und unser Desktops können das. Also habe ich das Problem bis her anderes gelöst… Aber das hier würde ich versuchen…

Da bei uns alle Bildschirme gespiegelt werden nutzte ich dieses Skript nach dem Start… (an den Smartbords)


Ich mach das zum Teil 3-4 sec nach dem Start damit ich sicher bin das der Lehrer den Externen Monitor auch an hat. Unsere System brauchen 25 Sec zum Starten und bis dann Script 3-4 sec zum starteten dieses Scritps…

Ton:
Ähnliches muss ich übrigens fast immer beim Ton lösen den dort schaltet sich das System nicht automatisch um aber ich habe auch noch das Mint 18.3 und meine Kernel ist aufgrund der Smartbord Software veraltet… kann auch sein das das nur ich das Problem habe.
pacmd list-source-outputs
pacmd set-cart-profile 0 output:hdmi-stereo

Das mit dem Ton geht aber nicht mit Externe Grafikarten wir nutzten nur Interne (Stromsparend) aber
Kann also sein das das nur bei mir so ist…

Es kann sein das es dein Problem nicht löst oder das es besser wege gibt… keine Ahnung ich habe immer noch das Gefühl das Linux Mint mit mir rum zickt… ich halte das System für gut aber wir haben keine entspannte Beziehung. Linux Mint und ich … Hoffe das war hilfreich …

Hi,
erstmal danke … aber in der Schule läuft der 16.04 Client und dort hab ich das
Problem primär - nur daheim teste ich es gerade mit MINT.
Ich werde das mit dem Script mal testen. Was es aber NICHT lösen wird,
ist das Problem mit dem Abschalten des Monitors, wenn dort der Powersave einschaltet. Viele Kollegen lassen den Rechner laufen, wenn sie die Klasse verlassen und irgendwann ist der Bildschirm dann schwarz. Warum ich mit strg+alt+1 dann aber ein Terminal bekomme, die Grafik aber nicht mehr anspringt, ist mir schleierhaft. Ich kann den Kollegen aber auch nicht beibringen “blind” irgendwelche Scripte zu triggern.
… ich hab 40 solche Kisten und zwar relativ neu - Aussortieren ist nicht :frowning:
VG
Wolfgang

Hallo Wolfgang,

kannst Du eventuell im Bios einstellen welcher Anschluss zu verwenden ist?

Gruß

Alois

Hallo Wolfgang,
hatte das gleiche Problem bein zwei Rechnertypen (mehr habe ich dann nicht probiert) und bin deshalb auf HDMI gegangen, hilft Dir nicht aber zeigt vielleicht, dass das Problem eher beim BS als in spezifischer Hardware zu suchen ist?
Evtl. mal einen neueren Kernel probieren, auch wenn es dann evtl mit Samba Probleme gibt, die sind aber im Forum gelöst, glaube ich.
LG
Max

Hi,
es gibt zwar Video-Einstellungen, die betreffen aber ePCI und keine
Auswahl irgendeines Ausgangs.

VG
Wolfgang

Hi,
Es scheint KEIN Problem des BS zu seins, da man im Netz auch Windows-Nutzer
über ähnliche Probleme schreiben “hört”. Ich hatte nur gehofft, dass wir auf der
Linux-Schiene hier etwas mehr Spielraum haben, da ich die Konsole ja bekomme.
Es scheint übrigens auch nicht völlig systematisch zu sein, da ich in der Schule einen
Rechner mit DP habe, bei dem gab es heute z.B. gar kein Problem bei der “reanimation” des Monitors. Es gibt auch Mutmaßungen, dass das Problem an der Kabelqualität liegen könnte - kann ich weder bestätigen, noch verneinen.
An anderer Stelle wird es so beschrieben, dass der Monitor ein Kabel auf LOW zieht, wenn er aus geht (oder nicht an ist) und dass der Rechner den Pegelwechsel nicht
mehr mitbekommt - DAS widerspricht aber der Konsole, die ich bekomme.

Ich hab auch schon von der Konsole einen Neustart vom Displaymanager gemacht - das war bei einem Rechner, der ohne Bildschirm hochgefahren wurde. Danach hatte ich so eine typische 800x600 Auflösung, die sich beim Anmelden dann aber passend
hingerutscht hat.
Das sind aber alles Wege, die für Normalnutzer nicht gangbar sind und für Kollege schon gar nicht.

VG
Wolfgang

Hallo Wolfgang,

das sind Laptops, oder?
Könntest du bei denen mal, wenn das Porblem auftritt, folgende Tasten
drücken (bei Lenovo meist F7, manchmal F5)

Fn+F7
oder
Fn+F7+F7

Das sollte die Ausgabe von “intern” auf “konen” bzw “erweitert” umschalten.
Kommt dann wieder ein Bild?

LG

Holger

Hi,
nein, sind ThinkCentres M710q. So kleine desktop-Schächtelchen :slight_smile:
An sich super Geräte - wenn sie HDMI haben …
VG
Wolfgang

Lieber Wolfgang,

hast Du mal probiert, entweder mit xrandr eine Auflösungsänderung zu erzwingen und damit Deinen Monitor wieder zum Leben zu erwecken (oft helfen zwei xrandr mit versch. Parametern hintereinander), also so:

(Auf Deinem erwähnten terminal einzugeben)

xrandr --output DisplayPort1 --mode 1024x768
xrandr --output Displayport1 --auto

(wenn DisplayPort1 nicht tut, versuch es ohne die 1 oder mit einer 0 oder 2)

Oder Du greifst ins Energiemanagement ein udn gibst ein:

xset dpms force off
xset dpms force on

Wenn eines der beiden Dinge hilft, schreibe ein bash-Script und belege eine Funktionstaste damit.
(Wenn Dir das nicht leichtfällt, liefere ich Dir gerne eine Anleitung).

L.G.
Christoph

Hi Christoph,
leider ist es nicht so einfach, denn wenn der Rechner ohne Bildschirm hochfährt, dann
komm ich zwar auf die Konsole, xrandr geht dort aber nicht, weil ein “cannot open display” kommt.
Anscheinend muss dafür eine angemeldete Session laufen.

Ich hab das auch schon via ssh probiert und hab mich damit aus dem Displaymanager von meinem
Laptop geworfen :slight_smile: … Ja, bei ssh -X sieht man mit xrandr die Anschlüsse von dem Rechner,
von dem aus man sich anmeldet hat … again what learned :slight_smile:

Nächstes Problem: xrandr müsste ja automatisch laufen, wenn in der Session der Bildschirm schwarz wird. Das kann aber 3 verschiedene Gründe haben:

  1. Der Rechner schaltet den Bildschirm ab - DAS kann ich deaktivieren
  2. Der Monitor geht sebst in den Standby - ich finde nichts im OSM, wo ic das deaktivieren kann
  3. Der HDMI-Verteiler wird z.B. kurzfristig auf die DokuKamera umgestellt

Tja … damit bräucht man nicht nur ein Script für den Start, sondern auch noch ein Key-Binding,
das man den Kollegen antrainieren kann. Aktuell ist in den meisten Fällen Dunkel=reboot.
Wie gesagt - leider ist das auch nicht 100% systematisch …
Leider etwas verzwickt, das Ganze …

VG
Wolfgang

Lieber Wolfgang,

zum ersten Problem: Versuch mal, die DISPLAY-Variable zu setzen:
export DISPLAY=:0
bevor Du die xrandr-Befehle ausführst.

dann sollte das “cannot open display” verschwinden.

Ansonsten: Was ergibt denn ein
echo $DISPLAY

wenn Du vorher das oben Gesagte nicht eingibst ?

Wenn Du ansonsten Deinen Kollegen sagst: die Funktionstaste “F3” bewirkt, dass alles wieder aufwacht, dann ist das wirklich keine Zumutung (man kanns auch auf die Tastatur schreiben).

Eventuell brauchst Du aber ein xrandr-Script, das Dir auch die Ausgänge-Zuordnung wieer herstellt.
Dazu musst Du bei funktionierenden Ausgaben einmal xrandr eingeben.

Diese Ausgabe kannst Du hier einmal posten.
Dann die Ausgabe von xrandr, wenn Dein problem auftritt ! (auch mal posten).

Ein netter Kollege hat hier im Forum schon ein universelles Script eingestellt, um die Ausgänge exakt zu steuern - Du müsstest das mal suchen…

Gruß
Christoph Gü

Hi,
also hier mal mein “Testablauf”:

Variante I … Per SSH … ohne -X

  • Bildschirm aus, Rechner an … warten … Bildschirm an, Bidschirm schwarz
  • ssh root@rechner
  • echo $DISPLAY
    Ausgabe: KEINE AUSGABE
  • xrandr --query
    Ausgabe: Can’t open display
  • export DISPLAY=:0
    Ausgabe: Invalid MIT-MAGIC-COOKIE-1 keyCan’t open display :0.0

Test, ob der Monitor im System bekannt ist:
Eingabe: get-edid | parse-edid
Ausgabe:
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
2 potential busses found: 3 6
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
Checksum Correct

Section “Monitor”
Identifier “S24E650”
ModelName “S24E650”
VendorName “SAM”
# Monitor Manufactured week 35 of 2017
# EDID version 1.4
# Digital Display

Mit anderen Worten wird der Monitor erkannt - super … nur zum Anspringen bekomme ich ihn nicht,
außer sich starte den Displayserver neu. Wir sind hier noch vor dem Login!

Probehalber mal das hier:

xset dpms force off
xset: unable to open display “”

Variante II … SSH mit -X

  • Gleicher Ausgangspunkt
  • ssh -X root@rechner.de
  • echo $DISPLAY
    Ausgabe: localhost:10.0
  • xrandr -q
    Screen 0: minimum 320 x 200, current 1600 x 900, maximum 16384 x 16384
    LVDS-1 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
    1600x900 60.00*+
    1152x864 59.97
    1024x768 59.95
    800x600 59.96
    640x480 59.94
    720x400 59.97
    640x400 59.96
    640x350 59.84
    VGA-1 disconnected (normal left inverted right x axis y axis)
    DP-1 disconnected (normal left inverted right x axis y axis)
    DP-2 disconnected (normal left inverted right x axis y axis)
    DP-3 disconnected (normal left inverted right x axis y axis)

Schönheitsfehler … das sind die Anschlüsse vom Laptop, an dem ich arbeite und nicht die
von der Problemkiste … die hat nämlich kein LVDS-1.

Probieren wir mal

xset dpms force off

Tja, dann ist der Laptop dunkel …

Szenario mit angemeldetem Benutzer

Tja - das kann ich hier nicht so richtig reproduzieren, aber da würde schon eine Sitzung
laufen, da könnte ich mir vorstellen, dass was geht. Aber erstmal muss ich das Boot-Problem
in den Griff bekommen …

VG
Wolfgang

Hallo Wolfgang,
um xrandr über ein ssh (als root) zu steuern, muss ich (bei mir)

cp  /var/run/lightdm/root/\:0 .Xauthority

eingeben, dann bekomme ich mit

xrandr -d :0

die passende xrandr Ausgabe.

LG
Max

Hi,
ok … das war wichtig, jetzt liefert xrandr -d :0 -q

Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 connected (normal left inverted right x axis y axis)
1920x1080 60.00 + 59.94
1680x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.89
1280x800 59.81
1152x864 75.00
1280x720 60.00 59.94
1024x768 75.03 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 59.94
720x400 70.08
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Man sieht DP1 connected …

Allerdings liefert echo $DISPLAY nach wie vor keine Ausgabe.

Ein export DISPLAY=:0
mit xrandr --output DP1 --auto
holt den Monitor aus dem Koma … Super :slight_smile:

Damit könnte man ein Script bauen … ist nur die Frage, wann/wie man es aktiviert.
Das darf in dieser Weise nur laufen, wenn niemand angemeldet ist, der nicht die Displaysettings
für die aktuelle Session eingestellt hat - nicht dass wir den erweiterten Desktop ungewollt wieder auf “Spiegeln” zurückstellen. Ein Cron-Job löst das Problem also nicht.
Kann man / wie kann man einen Shortcut definieren, der von der Sitzung unabhängig ist, d.h. der
quasi “über die Sitzungen hinweg” gilt …

Aber erst mal danke … was würde man nur ohne diese Liste machen :slight_smile:

VG
Wolfgang

Hallo Wolfgang!

Wäre das nicht etwas für den postsync?

Beste Grüße

Thorsten

Ich hab jetzt mal folgendes Script probiert, das ich mit einem Cron-job
in einem noch festzulegenden Intervall starten lasse … bei mir daheim hat das
gestern so funktioniert - och hab mehr variablen drin, als ich aktuell brauche,
aber vielleicht hab ich nen Fall übersehen, was noch passieren kann.

Wenn jemand mit mehr Scripting-technik das noch ausfeilen möchte - bitte gerne :slight_smile:

#!/bin/bash
#########################################
#
# Problem: 
# Monitor ist schwarz, weil ihn der Rechner
# nicht mehr aufweckt. Tritt bei Displayport auf

# Varianten:
# 1) Start bei ausgeschaltetem Monitor - keine Session
#    `who`würde eine leere Zeile liefern
# 2) Wie 1) aber eine Anmeldung über SSH oder lokales 
#    Terminal nach strag+alt+f1. Das können auch mehrere
#    Logins sein - allerdings ist tt7 nicht dabei
# 3) Rechner ist laufen geblieben und Bildschirm hat sich
#    abgeschaltet - tritt unsystematisch auf.
#    tty7 wird erkannt

export DISPLAY=:0.0
angemeldet=$(who|cut -d" " -f1)
terminal=$(who|grep tty7|cut -d" " -f2)
wer=$(who)
anzahl=$(who|wc -l)

# Wer ist angemeldet
if [ "x${wer}" == "x" ];
then
  # kein Benutzer angemeldet - Bildschirm einfach aktivieren
  cp /var/run/lightdm/root/\:0    ~/.Xauthority
  xrandr --output DP1 --auto 
else
  # Wenn eine Session läuft, dann ist tty7 aktiv
  if [ "$terminal" != "tty7" ]; then
     xrandr --output DP1 --auto
  else
     # jemand ist angemeldet, aber nicht grafisch.
     # ssh anmeldung? Dann machen wir nichts.
  fi
fi

Lieber Wolfgang,

aufgrund von extremer Zeitknappheit konnte ich bislang Dir noch nicht antworten. Ich denke, dass Du eine Lösung oder zumindest einen workaround gefunden hast. Allerdings wollte ich Dich noch darauf aufmerksam machen, dass Du Dir Probleme holst, wenn Du als root (oder anderer Benutzer) auf eine quasi existierende X.Session zugreifst (daher auch die Fehlermeldung mit dem magic cookie etc.).
xrand sollte man nicht als root ausführen, es reichen die Benutzerrechte des “Normalbenutzers”. Am besten Du liest Dir das mal kurz durch:
https://www.pug.org/mediawiki/index.php/Als_root_das_Display_des_Users_nutzen

Ausführlicher:
http://www.kai-hildebrandt.de/linux/xauth.html

Da geht es um das Problem der X-Sessions, weswegen einige Deiner Scriptbefehle nicht gleich funktionieren konnten. Besonders der Datei .Xauthority und dass die nicht root gehören sollte, wenn sie im Home-Verzeichnis eines “normalen” Benutzers exisitiert, solltest DU Aufmerksamkeit schenken !

L.G.
Christoph G.

Lieber Christoph

vielen Dank für den Hinweis. Das Script ist ziemlich “grob” und drum hab ich es ja auch
auf ask.linuxmuster.net eingestellt, damit das diejenigen mit dem passenden Hintergrund-
wissen noch etsprechend anpassen können. Ich bin insgesamt nicht wirklich glücklich
mit dieser Lösung - unabgängig von deinen Anmerkungen, weil ich ein “ein-minütliches-cronjobben”
extrem unelegent finde, bei dem “blanko” immer wieder xrandr aufgerufen wird. Ich hätte lieber irgendein flag, einen Status, … gegen den man prüfen kann und erst dann das Display reanimiert.

Zu deinen Anmerkungen.
Wenn ich aktuell KEINE Usersession laufen habe, weil niemand angemeldet ist,
dann komme ich um den “Copy”-Befehl doch nicht rum, oder?

Wenn der zweite Teil für den bereits angemeldeten User nicht im root-kontext
laufen soll, dann müsste das cron-script ja als der User laufen, der aktuell
angemeldet ist. Ich kann aber schlecht jedem User ein Script verpassen, oder?
Hier fehlt mir aktuell der Ansatz, wie ich das besser lösen kann.

Mein Vorteil ist, dass ich dieses Problem nicht mehr vor den Ferien lösen muss.
Vielleicht hast du ja mal ein Zeitfenster mit weniger Stress.

Viele Grüße

Wolfgang

Hallo Wolfgang,

vielleicht kannst du über udev herausfinden, wie es deinem Bildschirm geht (siehe auch hier: https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi → so machen wir das bei uns).

vG Stephan