Wie richte ich mit einem Lenovo T420S ein zweites Display über DVI / Viewport ein?


13

Mein Lenovo T420S verfügt über eine diskrete Grafikkarte mit NVIDIA Optimus-Technologie. Grundsätzlich versuche ich Folgendes zu erreichen:

  • Verwenden Sie ein zweites Display - über DVI / Viewport verbunden - bei der Arbeit (VGA ist verschwommen)
  • auf Reisen eine mäßige bis gute Akkuleistung erreichen (2 Stunden)

Soweit ich es herausgefunden habe, habe ich folgende Möglichkeiten:

  1. deaktiviere Optimus, verwende ausschließlich interne Grafiken
  2. deaktiviere Optimus, benutze ausschließlich nvidia
  3. aktiviere Optimus, benutze bumblebee ( homepage ) / ironhide

(1) disqualifiziert, als ich las (und erfuhr), dass DVI / Viewport über interne Grafiken technisch nicht nutzbar ist

(2) habe es noch nicht wirklich versucht, nur eine schnelle Testinstallation, die nach dem Hinzufügen der NVIDIA-Treiber auf einem schwarzen Bildschirm gestartet wurde :-(

(3) folgte diesem Blog , benutzte Hummel statt Eisenhaut. Bumblebee hat funktioniert (auf glxgears kann ich beeindruckende FPS sehen), aber ich habe das zweite Display nicht erkannt bekommen . Ich fühlte mich auch verloren in der Nvidia-Treiber-Hölle und hatte keine Chance, Nvidia-Xconfig auszuführen, einfach weil es nicht installiert war. Keine Ahnung, ob ein zweites Display sofort erkannt werden soll? Muss ich mehr installieren? Muss ich mich mit meiner xorg.conf anlegen? Viele Fragen, wenige Antworten.

Was kann ich also tun, um meine Ziele zu erreichen? Welcher Weg soll beschritten werden und was sind die nächsten Schritte?

Jeder Hinweis ist willkommen :-)

Update : Danke an alle, die geantwortet haben. Ich werde meine Arbeitsumgebung auf eine "diskrete" Installation migrieren und "optimus / bumblebee" als Parallelprojekt verwenden und sehen, wie weit ich komme ... Ich werde zukünftige Fragen in neuen Threads posten.

Antworten:


5

Ich habe ein Thinkpad W520 und habe damit ausgiebig rumgespielt. Ich bin mir nicht sicher, wie viel das W520 und das T420S gemeinsam haben, aber ich habe hier einen Blog-Beitrag geschrieben , in dem ich die Gesamtlage skizziere und einige Vorschläge mache .

Mit der NVIDIA-Karte mit proprietären Treibern sollten Sie in der Lage sein, eine Akkulaufzeit von 2 Stunden zu erreichen. Dies wird wahrscheinlich auch die Option sein, die den geringsten Aufwand beim Hinzufügen eines externen Displays mit sich bringt (Das Programm "disper" ist hierfür sehr hilfreich). Wenn die nvidia-geschützten Treiber für die Karte im T420 die gleichen Funktionen wie für das W520 haben, werden sie die Karte automatisch übertakten, wenn sie nicht voll genutzt wird (sie nennen dies "Power Mizer"), sodass die Batterielebensdauer nicht zu niedrig ist schrecklich. Ehrlich gesagt, kann ich die Akkulaufzeit nur um 25 oder 30% verlängern, wenn ich die nvidia-Karte ausschalte. Außerdem glaube ich, dass Sie mit Bumblebee möglicherweise nicht in der Lage sind, Ihren externen Monitor zu verwenden, da auf der nvidia-Karte bereits ein X-Server "unter der Haube" ausgeführt wird. Zusammenfassend würde ich empfehlen, Option (2) weiter zu verfolgen.

Als ich Bumblebee installiert und deinstalliert habe, hatte ich einige Probleme, die proprietären Treiber von nvidia wieder zum Laufen zu bringen. Hier ein paar Dinge, auf die Sie achten sollten: (a) Der W520 verfügt über BIOS-Optionen, die sich darauf beziehen, welches Grafikschema verwendet wird. Ich bin mir nicht sicher, welche T420-Optionen zur Verfügung stehen, aber wenn Sie die NVIDIA-Grafik auf Ihrem Thinkpad-Display verwenden möchten, müssen Sie sich wahrscheinlich im "diskreten" Modus befinden. (b) Möglicherweise müssen Sie mit dem "Jockey" -Programm in Ubuntu herumspielen, damit es die proprietären Treiber verwendet.

Viel Glück! Ich hoffe das hat geholfen.


... es ist auf jeden Fall hilfreich, danke für die Beantwortung!
Jan Groth

Nachdem Sie die anderen Kommentare zu diesem Thread gelesen haben, sieht es so aus, als ob das T420 nicht so konfiguriert ist wie das W520 - die integrierte Karte ist mit dem VGA-Ausgang verbunden (im Gegensatz zum W520 - dies erklärt auch, warum das T420 dazu in der Lage ist Unterstützung von 3 externen Monitoren, während das W520 nur 2) unterstützen kann.
Zach

Die Frage ist also, welche BIOS-Modi auf dem T420 verfügbar sind. Aus dem Beitrag von @ John geht hervor, dass es mindestens einen Optimus-Modus und einen diskreten Modus gibt. Wenn Sie Option (2) verfolgen, möchten Sie sicherstellen, dass Sie sich im diskreten Modus wie @John befinden. Wenn Sie sich im Optimus-Modus befinden, werden das interne Thinkpad-Display und das externe Digital-Display wahrscheinlich von verschiedenen Grafikkarten gesteuert, und Sie müssen mit Ihrer xorg.conf herumspielen, damit dies funktioniert.
Zach

@Zach: Danke für den Blogbeitrag. Ich habe schamlos sowohl die Folgeversion als auch die Neufassung von Sagar Karandikar gestohlen und in meiner Antwort einige Aktualisierungen hinzugefügt, die für die neueste Version von Ubuntu relevant sind .
krlmlr

7

Ubuntu 14.10 und höher: Es ist dort viel, viel einfacher. Bitte sehen Sie diese Antwort und meinen Kommentar unten.

Hinweis : Dies funktioniert nur in Ubuntu 13.04. Es gibt einige Unterschiede in 13.10.

Ich habe es geschafft, zwei externe Monitore (zusätzlich zum eingebauten Panel) an mein ThinkPad T430 unter Ubuntu 13.04 anzuschließen, wobei Optimus ("Umschaltbare Grafik") aktiviert war (Option 3 in Ihrer Liste). Die Monitore werden über die DVI-Schnittstelle angeschlossen, einer von ihnen wird gedreht. Im Gegensatz zu anderen Lösungen sind alle Monitore an denselben Fenstermanager angeschlossen, sodass die Fenster zwischen den Monitoren frei verschoben werden können. Dadurch wird das Ziel einer längeren Batterielebensdauer erreicht, wenn die Verbindung unterbrochen wird, und die Verwendung externer Monitore, wenn diese angeschlossen sind.

Die Schlüsselidee hier ist:

  • Der interne Grafikadapter ist für die Verwaltung des tatsächlich angezeigten Bildes (Bitmap) verantwortlich
  • Standardmäßig wird alles auf dem internen Grafikadapter gerendert
  • GPU-beschleunigte Anwendungen verwenden den diskreten Grafikadapter. Die Ausgabe wird auf den internen Grafikadapter kopiert
  • Für jeden externen Monitor bietet der interne Grafikadapter eine "virtuelle" Anzeige
  • Die Ausgabe auf die externen Monitore erfolgt über einen zweiten X-Server, die Inhalte der "virtuellen" Displays werden ständig auf den zweiten X-Server kopiert

Der Hauptvorteil gegenüber anderen Lösungen besteht darin, dass alle Anzeigen (scheinbar) Teil derselben X-Sitzung sind, sodass Sie Fenster frei zwischen den Anzeigen verschieben können.

Bisher habe ich keine Leistungseinbußen festgestellt.

Anleitung

Sie müssen Folgendes tun:

  • Installieren Sie Bumblebee von einem PPA
  • Erstellen und installieren Sie einen benutzerdefinierten Intel-Grafiktreiber
  • Laden Sie ein kleines Programm herunter, kompilieren Sie es und installieren Sie es schließlich
  • Bearbeiten Sie zwei Konfigurationsdateien
  • Mehrmals neu starten

Für die meisten Aktionen benötigen Sie ein Terminal, einen Texteditor und Root-Zugriff ( sudo). Detaillierte Anweisungen finden Sie unten.

Installieren Sie Bumblebee

Folgen Sie den Anweisungen im Abschnitt "Grundeinstellungen" . Als root ausführen, der letzte Befehl leitet den Neustart ein:

add-apt-repository ppa:bumblebee/stable
apt-get update
apt-get install bumblebee virtualgl linux-headers-generic
reboot

Versuchen Sie nicht, Bumblebee nur mit dem Nouveau-Treiber zu betreiben? . Nach meiner Erfahrung funktioniert es nicht, zumindest nicht in diesem Setup.

Validierung

Sie sollten in der Lage sein zu rennen optirun glxgears.

Installieren Sie eine gepatchte Version von xserver-xorg-video-intel

Option 1: Installation von meinem PPA (derzeit nur Ubuntu 13.04)

Führen Sie als root Folgendes aus:

add-apt-repository ppa:krlmlr/ppa
apt-get update
apt-get install xserver-xorg-video-intel

Option 2: Erstellen und installieren Sie Ihr eigenes Paket

Wählen Sie den neuesten Patch für xserver-xorg-video-intel. Klicken Sie auf die Datei, klicken Sie auf die Schaltfläche "Raw", kopieren Sie die URL in den Browser. Zum Zeitpunkt des Schreibens war dies https://raw.github.com/liskin/patches/master/hacks/xserver-xorg-video-intel-2.20.14_virtual_crtc.patch .

sudo apt-get build-dep xserver-xorg-video-intel
cd ~
apt-get source xserver-xorg-video-intel
cd xserver-xorg-video-intel
# replace the URL below with the one you have noted, if necessary
wget https://raw.github.com/liskin/patches/master/hacks/xserver-xorg-video-intel-2.20.14_virtual_crtc.patch
patch -p1 < *.patch
# The next command will ask for a change log message. Supply something meaningful,
# this will later allow you to distinguish your patched package from the distribution's.
dch -l+virtual
dpkg-buildpackage -b
cd ..
sudo dpkg --install xserver-xorg-video-intel_*.deb

Validierung (1) für beide Optionen

Der Befehl

apt-cache policy xserver-xorg-video-intel

sollte die gepatchte Version ( +virtualSuffix) und die ursprüngliche Ubuntu-Version anzeigen.

Notwendig für 13.04, für beide Optionen

Fügen Sie Folgendes zu Ihrer hinzu /etc/X11/xorg.conf, erstellen Sie falls erforderlich:

Section "Device"
    Identifier "intel"
    Driver "intel"
    Option "AccelMethod" "uxa"
    Option "Virtuals" "2"
EndSection

Validierung (2) für beide Optionen

Führen Sie nach einem Neustart xrandrein Terminal aus. Die Ausgabe sollte zwei zusätzliche virtuelle Anzeigen enthalten.

Laden Sie den Screenclone herunter und erstellen Sie ihn

Holen Sie sich Puetzks Fork of Screenclone und seine Abhängigkeiten und kompilieren Sie es.

sudo apt-get install libxcursor-dev libxdamage-dev libxinerama-dev libxtst-dev git build-essential
cd ~
git clone git://github.com/puetzk/hybrid-screenclone.git
cd hybrid-screenclone
make

Validierung

Die Datei screencloneexistiert und ist ausführbar. (Es wird jedoch noch nicht ausgeführt.)

Bearbeiten xorg.conf.nvidia

  • Öffnen Sie die Datei /etc/bumblebee/xorg.conf.nvidiain einem Texteditor als root
  • Kommentieren oder entfernen Sie die Zeilen mit UseEDIDoderUseDisplayDevice
  • In der Section "ServerLayout", fügen Sie einen EintragScreen "Screen0"
  • Fügen Sie am Ende der Datei Folgendes hinzu:

    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        DefaultDepth    24
        SubSection     "Display"
        Depth       24
        EndSubSection
    EndSection
    
  • Starten Sie neu

Testen

Bei meinem Setup wird davon ausgegangen, dass ein Querformatmonitor an den ersten DVI-Anschluss der Dockingstation und ein Hochformatmonitor an den zweiten DVI-Anschluss angeschlossen ist. Führen Sie die folgenden Befehle in einem Terminal aus dem Verzeichnis aus, in dem sich screenclone befindet , und passen Sie sie nach Bedarf an.

xrandr --output LVDS1 --output VIRTUAL1 --mode 1920x1200 --right-of LVDS1 --output VIRTUAL2 --mode 1920x1200 --right-of VIRTUAL1 --rotate left
./screenclone -b -x 1:0 -x 2:1 &
sleep 1
xrandr -d :8 --output DP-2 --right-of DP-1 --rotate left
fg

Beachten Sie, wie die Anzeigedrehung zweimal definiert werden muss. Sie können den zweiten Aufruf von weglassen, xrandrwenn keine Drehung gewünscht wird (und natürlich den --rotate leftim ersten Aufruf).

Durch Beenden screenclonemit Strg + C (das mit erneut in den Vordergrund gestellt wurde fg) wird der diskrete Grafikadapter abgeschaltet. Sie können dies mit bestätigen cat /proc/acpi/bbswitch. Für die beiden nun getrennten Monitore ist weiterhin Platz auf dem Bildschirm reserviert. Verwenden Sie, um nur zur Laptop-Anzeige zurückzukehren

xrandr --output LVDS1 --output VIRTUAL1 --off --output VIRTUAL2 --off

Aufräumen

  • Kopieren Sie screenclonein ein Verzeichnis, das sich in PATH(z. B. /usr/local/bin) befindet.

  • Erstellen Sie ein bashSkript, um das Starten und Herunterfahren der externen Anzeigen zu automatisieren. Dieses Skript richtet externe Anzeigen beim Start ein und wechselt erst beim Beenden zur Laptop-Anzeige (z. B. durch Drücken von Strg + C).

    #!/bin/bash
    set -m
    xrandr --output LVDS1 --output VIRTUAL1 --mode 1920x1200 --right-of LVDS1 --output VIRTUAL2 --mode 1920x1200 --right-of VIRTUAL1 --rotate left
    trap "xrandr --output LVDS1 --output VIRTUAL1 --off --output VIRTUAL2 --off" EXIT
    screenclone -b -x 1:0 -x 2:1 &
    sleep 1
    xrandr -d :8 --output DP-2 --right-of DP-1 --rotate left
    fg
    
  • Alternative Option: Meine Sammlung von Scriptlets enthält zwei Scripts extmon-startund extmon-stop, die den zweiten und dritten Monitor aktivieren und deaktivieren. Bearbeiten Sie das extmon-startSkript entsprechend Ihrer Konfiguration.

Verweise

Meine Antwort stützt sich hauptsächlich auf folgende Quellen:


Das funktioniert wirklich gut für mich, danke. Haben Sie Probleme mit viel Verzögerung, wenn Sie virtuelle Desktops und Compiz mit dieser Lösung verwenden?
Damon

@blackrobot: Ich benutze Gnome Shell, es gibt einige sehr leichte Verzögerungen, aber das stört mich nicht.
Krlmlr

@krlmlr: Gibt es eine Chance, dasselbe Setup am 13.10 zu bekommen?
Flx

@flx: In 13.10 sind die "virtuellen" CRTCs in den Standardtreiber integriert xorg-xserver-video-intel, ohne dass ich mein PPA oder den Patch verwenden muss. Auch müssen keine xorg.conf"virtuellen" CRTCs bearbeitet werden. Der Rest sollte ähnlich sein. Es gibt jetzt sogar ein Tool, das ersetzt screenclone, es heißt intel-virtual-outputund sich nahtloser in die Anzeigekonfiguration Ihres Desktops integrieren lässt. Ich werde eine Beschreibung machen, sobald ich mein Tri-Head-Setup mit Rotation zum korrekten Funktionieren gebracht habe.
krlmlr

1
@flx: Sie müssen einen Modus hinzufügen ( xrandr --newmodedas cvtTool hilft bei der Berechnung der Modeline) und diesen der virtuellen Anzeige zuweisen ( xrandr --addmode). Der Modus sollte dem Ihrer realen Anzeige entsprechen. Überprüfen Sie, ob eine zweite virtuelle Anzeige automatisch erstellt wird. Dies ist, was das intel-virtual-outputTool selbst macht, und es sieht so aus, als ob die letzten Probleme behoben wurden oder in Kürze behoben werden.
krlmlr

2

Ich kenne das T420S nicht, aber mein T420 kann mit bis zu 9 Stunden arbeiten

  1. Monitor dunkel
  2. nvidia ist mit bumblebee / bbswith behindert
  3. und extra tuning mit pm-utils

Und ja, das ist die Standardbatterie. Du solltest also leicht 2 Stunden Zeit haben, also:

(2) Versuchen Sie es in /etc/X11/xorg.conf mit der Option "ConnectedMonitor" "DFP-0" für den nvidia-Treiber.

(3) Für die Verwendung Ihres zweiten Displays benötigen Sie eine modifizierte Hummel xorg.conf. Weitere Informationen finden Sie unter https://github.com/Bumblebee-Project/Bumblebee/issues/77 .


1
Danke für die Antwort. Habe ich richtig verstanden, dass Sie keinen zweiten Bildschirm (DVI) verwenden? Um ehrlich zu sein: Ich finde es erstaunlich kompliziert, das von Ihnen verknüpfte Problem zu lösen - ich werde es auf jeden Fall versuchen, aber es wird Stunden dauern, bis ich auch nur eine kleine Vorstellung davon habe, was ich ändern soll (und warum). Eigentlich ist dies mein Laptop für die Arbeit und ich möchte nur, dass er funktioniert. Irgendwie hoffte ich , dass eine Aufgabe wie das Anschließen eines zweiten Displays mich nicht dazu bringen würde, offene Probleme einer Software zu durchlaufen, von der ich vor einer Woche noch nicht einmal gehört habe ... :-(
Jan Groth

Es ist wirklich einfach wie in der Github-Ausgabe, entfernen Sie einfach die Zeilen (newline) Option "UseEDID" "false" (newline) Option "ConnectedMonitor" "DFP" (newline) aus /etc/bumblebee/xorg.conf.nvidia und bumblebee with Ausgabe über den Display-Port erzeugen. Sie erhalten zu Beginn ein leeres Bild. Sie können dort beispielsweise xterm mit export DISPLAY =: 8.0 (newline) xterm erhalten. (Wenn Sie hier die Eingabetaste drücken, wird der Kommentar gesendet, anstatt eine neue Zeile zu erstellen.)
Anonymous Coward

2

Ich benutze einen T420 bei der Arbeit mit einer Dockingstation des Typs 4438. Ich kann zwei Widescreen-Monitore (ohne Hauptmonitor) oder einen Widescreen-Monitor mit dem Hauptmonitor über die DVI-Anschlüsse an der Dockingstation verwenden.

Ich habe gerade Optimus deaktiviert und so eingestellt, dass immer die NVIDIA-Karte verwendet wird. Dann habe ich nvidia-xconfig ausgeführt und die nvidia-Einstellungen verwendet, um die Dual-Monitore einzurichten, die Einstellungen in der Datei xorg.conf gespeichert und den Computer neu gestartet.

Auf diese Weise kann ich etwas mehr als 2 Stunden Batterielebensdauer erreichen (ohne weitere Modifikationen, um eine längere Batterielebensdauer zu ermöglichen). Das Hauptproblem, das ich habe, ist, dass es nicht automatisch auf einen Monitor umschaltet, wenn es von der Dockingstation aus neu gestartet oder von der Dockingstation entfernt wird. Ich hatte jedoch keine Zeit, mich damit zu befassen.

Ich werde später in dieser Woche versuchen, Bumble Bee zum Laufen zu bringen. Ich werde versuchen, mich daran zu erinnern, hier zu posten, wenn ich es zum Laufen bringen kann.


2

Ich habe das gleiche Problem. Ich habe einige Nachforschungen angestellt und teilweise gelöst. Ich arbeite noch an einer Komplettlösung.

Die Hardware: Thinkpad T420s mit Nvidia 4200M + Intel HD 3000 Grafik Thinkpad Dock.

Das Symptom: T420s kann das externe Display, das an einen DVI-Port des Docks angeschlossen ist, nicht erkennen. Es kann das externe Display über den VGA-Anschluss am Dock erkennen. Die Qualität ist jedoch schlecht.

Die Hauptursache: 1. Beim T420s wird die Nvidia-Karte mit dem DVI-Anschluss verbunden, während die Intel-Karte mit dem VGA-Anschluss am Dock verbunden ist. 2. Im Gegensatz zu Win 7 kann Ubuntu nicht zwischen Nvidia-Karte und Intel-Karte wechseln. Standardmäßig wird nur eine Intel-Karte verwendet.

Die Lösung: 0. Setzen Sie den T420 in die Dockingstation und schließen Sie das externe Display an den DVI-Port an. 1. Gehen Sie zum BIOS, suchen Sie "Display", ändern Sie die Konfiguration in "Discrete Card" und "Disable Nvidia Optimus". Jetzt muss der T420 die Nvidia-Karte verwenden. 2. Laden Sie den Nvidia-Treiber für Linux herunter und installieren Sie ihn. Google die ausführliche Anleitung. 3. Führen Sie nach der Installation "sudo nvidia-settings" aus. 4. Klicken Sie im Popup-Fenster "X Server Display Configuration" auf "Detect Displays". Sie können jetzt das externe Display sehen. 5. Ändern Sie auf derselben Seite die Konfiguration in "TwinView", Auflösung "Auto" oder die native Auflösung des T420, z. B. 1600 x 900. 6. Klicken Sie auf "Übernehmen", um den externen Anzeigedesktop anzuzeigen. 7. Klicken Sie auf "In X-Konfigurationsdatei speichern".

[Aktualisieren]

Mit disper kann ich das T420s-Display und das externe Display manuell umschalten. Immer noch nicht die beste Lösung, aber ich denke, es ist gut genug für mich.

Versuchen Sie es mit einer Nvidia-Kombination aus diskreter Grafik und Disper.


... das problem mit der diskreten karte ist, dass sie den akku sehr schnell
entlädt

Sie sollten in der Lage sein, den Anzeigeport im Modus nvidia optimus mit der hier beschriebenen Methode zu verwenden: zachstechnotes.blogspot.com/2012/04/post-title.html Auf diese Weise können Sie eine gute Akkulaufzeit erzielen und den externen Monitor auf dem verwenden Display Port (Sie werden jedoch mit der Intel-Karte rendern, so dass die Qualität möglicherweise nicht so gut ist, wie Sie möchten
Zach

1

Der VGA-Ausgang meines T520 funktioniert hervorragend (nicht unscharf) mit integrierter Grafik (Intel BIOS-Einstellung), aber ich muss den 1920x1200-Monitor so einstellen, dass er nur 1600 Pixel breit anzeigt, damit ich auf beiden Seiten schwarze Streifen bekomme. Ohne diese Einstellung dehnt der Monitor die 1600 Pixel über den gesamten 1920er-Bildschirm aus, und ja, dann sehen die Dinge verschwommen aus.

Ich habe vor ein paar Tagen eine ähnliche Frage gestellt und bleibe durch diese Antworten verwirrt. Es sieht so aus, als ob @Anonymous Coward nur einen externen Monitor ausführt, aber ich (und ich glaube das OP) möchte das Laptop-Display (auf Intel) und einen externen Monitor über DisplayPort / DVI (auf NVIDIA) ausführen können. Daher denke ich, dass Optimus / Bumblebee erforderlich sein könnte.

Wenn ich das Problem mit der Anzeige herausfinde, werde ich meine Ergebnisse auf jeden Fall veröffentlichen. Bitte machen Sie dasselbe, wenn Sie zuerst die Ziellinie erreichen.


1
Danke für die Antwort! Wenn ich die Auflösung meines externen Monitors auf 1600x1200 reduziere, wird das Display noch schlechter ... Übrigens, ich beschuldige den Hersteller des Displays für die Unschärfe - ich habe ein paar Geschichten gehört, dass analoge Eingangsquellen heutzutage ein ziemlich niedriger Standard sein können, weil jeder verwendet digitale Verbindungen. Oh, und ich werde dieses Ticket auf jeden Fall auf dem Laufenden halten.
jan groth
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.