Status Quo: 2 externe Monitore über Dockingstation

enrico

Active member
Registriert
20 Juni 2007
Beiträge
2.284
Hallo,

wer von Euch
  • hat das Denkbrett in einer Dockingstation und
  • nutzt Linux produktiv und
  • nutzt 2 externe Bildschirme, die beide an der Dockingstation angeschlossen sind?
Falls ihr das macht: wie gut funktioniert das? Welches Thinkpad nutzt ihr und welchen Desktop-/Fenstermanager?
Ich habe noch ein T440s und nutze Xfce.
Nutzt hier jemand dieses Skript für den Anwendungsfall mit Xfce?

Bisherige Inhalte als Lektüre, die im Gros mind. 1,5 Jahre alt sind (bzw. deren aktuellsten Beiträge):
https://thinkpad-forum.de/threads/165520-Thinkpad-Ultra-Dock-mit-T440s-und-Linux
https://www.reddit.com/r/thinkpad/comments/59uuiv/t460s_ultra_dock_multimonitor_and_linux_woes/
https://www.reddit.com/r/thinkpad/comments/4fobbk/2016_thinkpads_ultra_dock_and_linux/
https://www.reddit.com/r/thinkpad/comments/7pat6z/external_monitors_on_thinkpad_p71_running_linux/ (für P71 aber)
https://forums.linuxmint.com/viewtopic.php?t=241884 (für P50 aber)
 
Ich hatte unter Debian Testing bei einer Kernel Version von > 4 und KDE als Desktopumgebung in Kombination mit SDDM als Fenstermanager keine wirklichen Probleme. Es handelte sich um ein W530 bei zwei externen Monitoren mit 2560x1440@60Hz, angeschlossen per DisplayPort 1.1.

In den 3.X Kerneln gab es häufiger mal Probleme mit der Reaktivierung der Nvidia GPU aus dem Suspend to RAM. Das komplette System wurde nur mit der Nvidia GPU betrieben, bumblebee und Konsorten hatte nie zufriedenstellend funktioniert. Es wurde immer wieder zwischen dem proprietären und nouveau Treiber gewechselt ohne jetzt große Unterschiede feststellen zu können (mal von der fehlenden Unterstützung von colord des proprietären Treibers abgesehen).

Da ich vermute das es um den Fall Externe Monitore <-> Mobiler Betrieb geht, hierzu war unter KDE keine extra Konfiguration notwendig.
 
Ich nutze mein Firmen-X260 (Debian stable XFCE) in der Dock. Hier hängt dann ein 22" FHD per DVI + ein 17" SXGA per VGA dran. Das interne Display ist ausgeschaltet und zugeklappt. Ich habe mir ein Script gebaut (vom Prinzip her ähnlich dem von dir verlinkten) welches prüft, welcher Monitor angeschlossen ist und danach die gewünschte Monitorkonstellation aktiviert. Das Skript habe ich mir auf eine Tastenkombi gelegt und führe es bei Bedarf aus.
Wenn ich das TP alleine hochfahre ist alles OK, wenn ich das TP in der Dock starte ist auch alles OK, man muss nur einmal in xfce4-display-settings die gewünschte Konstellation einstellen. Problematisch wird es erst, wenn ich während des Betriebs aus- oder eindocke. Dann passiert einfach nichts. In dem Fall starte ich per Tastenkombi das Skript und das richtet mir die Monitore so ein wie ich sie brauche.
Das blöde ist nur, wenn das Thinkpad dann in der Dock neu starte, ist die am Anfang eingestellte Monitoreinstellung durcheinander und muss neu gesetzt werden. Evtl. kann man das auch per xfce4-display-settings/xfconf anstelle eines Scripts machen, aber damit habe ich mich noch nicht beschäftigt.
 
X250 mit i3wm in einem ProDock, 2x FullHD Monitore mit DVI und VGA.
Anordnung der Monitore mach ich via xrandr-script oder mit arandr, wenn ich mal spontan einen Monitor um 90 Grad drehe.

Probleme beim eindocken im Betrieb hab ich manchmal auch, dann wirft xrandr irgendeinen crtc1 Fehler ... reboot hilft dann, passiert aber nur bei ca jedem 10ten mal eindocken im Betrieb.
 
Ich hatte unter Debian Testing bei einer Kernel Version von > 4 und KDE als Desktopumgebung in Kombination mit SDDM als Fenstermanager keine wirklichen Probleme. Es handelte sich um ein W530 bei zwei externen Monitoren mit 2560x1440@60Hz, angeschlossen per DisplayPort 1.1.

In den 3.X Kerneln gab es häufiger mal Probleme mit der Reaktivierung der Nvidia GPU aus dem Suspend to RAM. Das komplette System wurde nur mit der Nvidia GPU betrieben, bumblebee und Konsorten hatte nie zufriedenstellend funktioniert. Es wurde immer wieder zwischen dem proprietären und nouveau Treiber gewechselt ohne jetzt große Unterschiede feststellen zu können (mal von der fehlenden Unterstützung von colord des proprietären Treibers abgesehen).

Da ich vermute das es um den Fall Externe Monitore <-> Mobiler Betrieb geht, hierzu war unter KDE keine extra Konfiguration notwendig.
Ah, also mein T440s hat nur die iGPU von Intel, hätte ich wohl sagen können.

@kristatos und @Jumper0
Danke für Eure Beiträge, klingt also halbwegs i. O. mit der Nutzung. Momentan nutze ich mein T440s nicht ausgiebig mobil.

kristatos, könntest du noch dein Skript posten eventuell? Hier im Forum gibt es auch
Code:
code-tags
 
Hi.

Also ich empfehle zu Beginn ein einfaches Skript für den Monitorwechsel zu schreiben, welches über Parameter verschiedene Aufgaben via xrandr ausführt. Das wichtigste dabei ist, dass das Skript sauber die ganzen benötigten Anwendungsfälle abdeckt. Sprich alle möglichen Monitor-Kombinationen. Ggf. auch hochkant gestellt Monitore.

Ich empfehle bewusst ein manuelles vorgehen, da die automatische Konfiguration häufig nicht funktioniert und auch unter Umständen mehr Aufwand zur Einrichtung erfordert. Du kannst das von mir empfohlene Skript dann in einem nächsten Schritt für eine Automatisierung nutzen. Dazu rufst du einfach von einem anderen Skript oder über udev oder andere event-basierte Mechanismen das Monitor-Switching-Skript auf. Du kannst dann sowohl automatische Konfiguration, als auch manuelle durchführen. Ich bin bisher nicht wirklich über manuelle Konfiguration hinausgekommen. Es geht einfach super fix das manuell per Tastenkombi zu switchen.

Wenn das Skript geschrieben ist ist, dann kannst du die Kombinationen über Aufrufe des Skriptes manuell steuern. Dazu belegst du idealerweise Hotkeys in deinem DE oder Window Manager. Ctrl+Alt+, ruft dann das Skript auf mit dem Parameter für z.B. dem internen Monitor. Ctrl+Alt+. dann für den erste externen Monitor usw.

Außerdem kommt es vor, dass dein Bildschirm beim Ausdocken mal schwarz ist.. dann schaltest du einfach per Tastenkombi auf den internen Monitor um :thumbup:.

Da du drei Screens hast, lohnt es sich ggf. eine toggle Funktion einzubauen, die einfach zwischen den Modi durchschaltet. Dazu musst du den State deiner aktuellen Monitorkonfiguration irgendwo speichern. Dazu kann das Skript einfach nach jedem xrandr Aufruf ein einer .monitor-config.last oder ähnlichem den aktuellen State reinschreiben. Falls aktuell nur der interne Montor an ist, dann würde dort einfach int drinstehen. Das machst du ungefähr so:
Code:
if [ "$scheme" == "int" ]; then
  xrandr --output $ext --off --output $int --auto
  echo "int" > $HOME/.monitor-config.last
fi

Dann musst du am Anfang des Skripts die letzte config wieder einlesen in eine Variable:
Code:
lastscheme=$(<$HOME/.monitor-config.last)
So, und dann musst du eben zum nächsten möglichen State springen der nach dem letzten kommt. Dafür müsstest du dir irgendwas ausdenken. Das kann man bestimmt mit einem einfachen Bash Array lösen.

Und hier noch das Skript an sich ohne die toggle-Funktion. Du musst dann noch eine weitere ext Variable einfügen. Du hättest dann ext1 ext2 oder so etwas. Oder extleft, extright. Der Fantasie sind keine Grenzen gesetzt, solange die Variablennamen den Vorgaben der bash entsprechen :).

Code:
#!/bin/bash

int="LVDS1"
ext="DP1"

scheme="$1"

# automatic
if [ "$scheme" == "auto" ]; then
  xrandr --auto
fi

# only internal monitor
if [ "$scheme" == "int" ]; then
  xrandr --output $ext --off --output $int --auto
fi

# only external monitor
if [ "$scheme" == "ext" ]; then
  xrandr --output $int --off --output $ext --auto
fi

# both internal and external monitor. external is primary
if [ "$scheme" == "dual" ]; then
  xrandr --output $ext --auto --right-of $int --primary --output $int --auto
fi

Das Skript rufst du dann so als normaler user auf:
Code:
./monitor-switch auto
./monitor-switch ext
./monitor-switch dual
usw.

Wenn du das Skript in $HOME/bin ablegst und dieser Pfad in deiner PATH Variable ist, dann kannst du das wie ein ganz normales Kommando ausführen.

So, ich hoffe das war verständlich genug. Bitte gib Bescheid, falls etwas unklar ist. Viel Spaß beim Konfigurieren.

- - - Beitrag zusammengeführt - - -

Achja, es kann passieren, dass du einen schwarzen Bildschirm hast und deine Tastenkombi nicht funktioniert.. dann hast du möglicherweise einen Lockscreen, der das verhindert. Dann musst du blind das Passwort eingeben und dann erneut die Tastenkombi versuchen. Dafür hab ich noch keine schöne Lösung gefunden.

Vor dem Ausdocken schalte ich häufig auf den internen Monitor, um eventuelle Schwierigkeiten zu vermeiden. Das ist meistens nicht sonderlich schlimm, es sei denn ich bin etwas unter Zeitdruck :).

Gruß
 
Zuletzt bearbeitet:
Hi, hier mal meine "Quick-and-dirty"-Variante. Nicht schön, macht aber das was ich brauche.
Code:
#!/bin/sh
EXTERNAL_OUTPUT="DP-2-2"
EXTERNAL_OUTPUT2="DP-2-3"
INTERNAL_OUTPUT="eDP-1"

xrandr |grep $EXTERNAL_OUTPUT | grep " connected " > /dev/null
if [ $? -eq 0 ]; then
    xrandr --output $INTERNAL_OUTPUT --off --output $EXTERNAL_OUTPUT --primary --mode 1920x1080 --pos 0x0 --rotate normal --output $EXTERNAL_OUTPUT2 --mode 1280x1024 --pos 1920x0 --rotate normal
else
    xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off --output $EXTERNAL_OUTPUT2 --off
    xbacklight -set 50
fi
 
Danke, es gibt also gute Ansätze. Muss ich mir noch noch einen 2. Monitor kaufen. :)
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben