Externe Displays mit Hummel

14

Ich versuche, meinen externen Monitor (über ein VGA-Kabel) mit Bumblebee und der Optimus-Konfiguration an meinen Laptop anzuschließen.

Ich habe ein Lenovo W520 mit einem Intel GMA HD 3000 und einem Nvidia Quadro 2000M. Das BIOS bietet drei Optionen für die Grafikkarten: Integriert, Diskret und Optimus.

Der Anwendungsfall ist sehr einfach. Für die Arbeit benutze ich nur die integrierte Karte und das Laptop-Display. Wenn ich jedoch Filme schaue, möchte ich meinen Projektor verwenden. In diesem Fall muss ich Folgendes tun:

  • neustarten
  • Windows starten
  • den Film anschauen

Dank Bumblebee kann ich das Setup nun immer als Optimus beibehalten.

Vor BB musste ich die BIOS-Einstellung jedes Mal ändern, wenn ich einen Film ansehen wollte, da der Projektor selbst unter Windows durch die Verwendung integrierter Grafiken vom System nicht erkannt wurde (ich nehme an, dass dies im Allgemeinen mit "fest verdrahtet" gemeint ist output ", und dass der VGA-Ausgang fest mit der diskreten Karte verbunden ist).

Was ich jetzt tun möchte, ist, den externen Monitor anschließen zu können, ohne O / S wechseln zu müssen, das heißt, um ihn in Ubuntu zu verwenden.

Ist es möglich?

Im Moment, wenn ich den externen Monitor unter Ubuntu verwenden möchte, besteht die einzige Möglichkeit darin, das BIOS so zu ändern, dass die diskreten Grafiken verwendet werden, und dann die NVIDIA-Einstellungen zu verwenden.

Wenn ich stattdessen das Optimus-Setup verwende, bekomme ich keine Option für einen externen Monitor, selbst wenn ich es mit "optirun nvidia-settings -c: 8" ausführe.

Kann ich etwas tun?

Marcus
quelle

Antworten:

8

Ich habe einen W520. Es ist nicht das gleiche Setup wie beim T420 - der VGA-Ausgang ist mit der NVIDIA-Karte verbunden, daher funktioniert der "this" -Link von Samsagax nicht. Ich habe einen Blog - Post vorbereitet hier skizziert die Möglichkeiten Sie haben. Ich konnte keinen der externen Monitore für Bumblebee zum Laufen bringen, und ich glaube nicht, dass dies mit dem W520 möglich ist. Sie können jedoch einen externen Monitor im Optimus-Modus verwenden. Sie müssen jedoch entweder xinerama verwenden oder einen separaten X-Bildschirm auf dem externen Monitor öffnen.

Zach
quelle
3
Hier ist eine neue Lösung, die wahrscheinlich für die meisten Menschen besser ist - Sie müssen sich nicht einmal von X abmelden , um ein externes Display / einen externen Projektor zu verwenden: zachstechnotes.blogspot.com/2012/04/post-title.html Alle Rendern erfolgt auf der Intel-Karte und dann werden die Daten an das NVIDIA-Gerät für die Ausgabe an das externe Display ausgegeben
Zach
4

(umgeleitet von linux-hybrid-graphics list)

Ich habe ein Thinkpad T420, das möglicherweise ähnlich ist (aber möglicherweise nicht).

Bei meinem T420 ist VGA an Intel und der Display-Port an NVIDIA angeschlossen. Für den VGA-Ausgang kann ich also den üblichen xrandr verwenden .

Der Display-Port ist eine andere Geschichte. Dafür muss ich das ändern xorg.conf von bumblebee in /etc/bumblebee/xorg.conf.nvidia ändern :

Die Option ConnectedMonitorvon DFP(Standardeinstellung) bis DP1für DisplayPort.

Anonymer Feigling
quelle
1
Funktioniert DP1 wirklich für Sie? Nach download.nvidia.com/XFree86/Linux-x86_64/290.10/README/... sind die einzigen gültigen Werte sind CRT, DFPund durch Kommata getrennte Varianten. Funktioniert es auch, es zu ändern CRT?
Lekensteyn
3

Neuere Versionen des Intel-Treibers enthalten ein Programm namens intel-virtual-output das die Einrichtung von Doppel- und Dreifachanzeigen auf einem W520 erheblich vereinfacht.

Das intel-virtual-output Befehl bietet einem X-Server auf der Intel-Karte die Möglichkeit, Bildschirme auf einem anderen X-Server zu duplizieren. Es werden die verfügbaren Bildschirme auf dem Remote-Bildschirm angezeigt und auf dem Intel X-Server als VIRTUAL1, VIRTUAL2 usw. dargestellt.

Das folgende Skript (als root ausführen) funktioniert für mich, aber wahrscheinlich müssen Sie die Dinge optimieren:

#!/bin/sh

# Power on the nvidia card with bumblebee.
modprobe bbswitch
echo ON > /proc/acpi/bbswitch

# Run X display :8 on the nvidia card.
optirun true

# Tell the intel card to create virtual screens on :0 and
# copy whatever they're displaying to equivalent screens on :8
intel-virtual-output

# Configure my monitors the way I like them.
xrandr --output VIRTUAL3 --auto
xrandr --output VIRTUAL1 --auto --right-of VIRTUAL3
xrandr --output LVDS1 --off

Dieses Setup aktiviert mein DisplayPort zu DVI-Kabel (VIRTUAL3) auf der linken Seite und das VGA (VIRTUAL1) auf der rechten Seite. Es deaktiviert auch den Laptop-Bildschirm.

Beachten Sie, dass dies nur virtuelle Bildschirme des Treibers sind. Theoretisch sollte das Anzeigekonfigurationstool Ihrer GUI in der Lage sein, dies nach dem Ausführen herauszufinden intel-virtual-output.

In der Praxis hat das Tool zur Anzeigekonfiguration in xubuntu nicht wirklich zusammenhängende Dinge getan. Deshalb xrandrgibt es diese Befehle. Wenn Sie Gnome oder KDE ausführen, lohnt es sich möglicherweise, das GUI-Tool zu testen, bevor Sie sich an die Arbeit machen xrandr. Andernfalls möchten Sie, bevor Sie dies ausführen, wahrscheinlich einige Dinge für das tatsächlich verwendete Setup optimieren. Beim Ausführen werden Sie lediglich darüber xrandrinformiert, welche Anzeigen aktuell verbunden sind. Sie können Ihre Monitore anschließen und trennen, um festzustellen, welcher Stecker mit welchem ​​VIRTUAL [0-9] -Display verbunden ist. Der Laptop-Bildschirm ist LVDS1. Dann ist es nur noch eine Frage der xrandrBefehle mit --right-of,--left-of , --belowetc. Dinge in ihren richtigen Platz zu bekommen.

Wenn Sie wieder mobil werden möchten, können Sie dies ausführen (erneut als root):

#!/bin/sh

# Turn on the laptop screen.
xrandr --output LVDS1 --auto

# Turn off my the other screens.
xrandr --output VIRTUAL1 --off
xrandr --output VIRTUAL3 --off

# Kill the xorg server running on the nvidia card.
kill $(ps ax | grep Xorg | grep :8 | awk '{print $1}')

# Wait plenty of time for it to die.
sleep 5

# Remove the nvidia kernel module so we can shut down the card.
# If you're running another driver this might be something different.
rmmod nvidia

# Use bumblebee to turn off the nvidia card and save power.
echo OFF > /proc/acpi/bbswitch

Ich verwende xubuntu 14.04 mit dem proprietären NVIDIA-Treiber, Version 337.25. Ich habe auch Hummelpakete von https://launchpad.net/~bumblebee/+archive/ubuntu/stable .

Interessanterweise ist dieses Setup das Gegenteil des üblichen Optimus-Setups. Normalerweise führen Sie selektiv Programme auf der NVIDIA-Karte aus und kopieren Puffer von der NVIDIA-Karte auf die Intel-Karte, die tatsächlich mit den Monitoren kommuniziert. In diesem Fall führen Sie alles auf der Intel-Karte aus und kopieren die entsprechenden Bildschirmpuffer auf die NVIDIA-Karte.

Wenn Sie sich fragen, ja, das macht es schwierig, Anwendungen mit NVIDIA-Beschleunigung auszuführen. Ich habe noch nicht herausgefunden, wie Spiele eine gute Leistung erbringen können, und selbst bei HD-Videos verlangsamt sich die Leistung mit der Zeit. Es scheint sogar nicht doppelt zu puffern, da Sie das Scannen von oben nach unten von links nach rechts sehen, nachdem Sie ein Video mit einer relativ hohen Auflösung für eine Weile abgespielt haben. Das heißt, die meisten Projektoren werden wahrscheinlich in Ordnung sein.

Hans
quelle
Beachten Sie, dass meine Antwort im Wesentlichen die gleiche ist wie die von @ Zach, außer dass es sich um eine Intel-Virtual-Ausgabe handelt, die mit dem Standardtreiber geliefert wird, anstatt einen benutzerdefinierten Patch und einen Hybrid-Screenclone zu verwenden. Die Strategie ist genau die gleiche, aber das ist viel weniger Aufwand und meiner Erfahrung nach funktioniert es tatsächlich mit einer neueren Version von Ubuntu. Vielen Dank an Zach für die Dokumentation der Strategie, die diese Arbeit macht.
Hans
1
Gutschrift geht auch an unixreich.com/blog/2013/…
Hans
Das Bearbeiten xorg.conf.nvidiawie in Ihrer Referenz war für mich auf Ubuntu 14.10 erforderlich (insbesondere musste ich kommentieren UseEDIDund UseDisplayDevice). Ich musste jedoch kein PPA verwenden (Bumblebee von Ubuntu hat einwandfrei funktioniert) und ich benötige auch keine Skripte, um das Multi-Monitor-Setup zu starten und zu stoppen - einfach zu starten oder zu beenden, intel-virtual-output da der normale Benutzer für mich arbeitet. (Es wird optirunnach Bedarf ausgeführt.) Können Sie bestätigen?
krlmlr
Verwenden Sie die GUI, um die Bildschirme einzurichten? Vielleicht war dieses Problem ein xubuntu-Problem. Ich muss die anderen Sachen probieren, wenn ich die Chance habe.
Hans
Ja, die Benutzeroberfläche dient zum Einrichten der Bildschirme.
krlmlr
0

Vielleicht versuchen Sie das mal .

Ist aber auf Festverdrahtung angewiesen.

Samsagax
quelle
1
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Michael Martin-Smucker