Display esterni con calabrone


14

Sto cercando di collegare il mio monitor esterno (tramite cavo VGA) al mio laptop, usando Bumblebee e la configurazione Optimus.

Ho un Lenovo W520, con un Intel GMA HD 3000 e un Nvidia Quadro 2000M. Il BIOS ha tre opzioni per quanto riguarda le schede grafiche: integrato, discreto e Optimus.

Il caso d'uso è molto semplice. Per lavoro, utilizzo semplicemente la scheda integrata e il display del laptop; quando guardo i film, però, voglio usare il mio proiettore. Ora, quello che devo fare in questo caso è:

  • riavvio
  • avvia windows
  • guarda il film

Grazie a Bumblebee, ora sono in grado di mantenere la configurazione sempre come Optimus.

Prima di BB, dovevo cambiare le impostazioni del BIOS ogni volta che volevo guardare un film, perché anche in Windows, l'uso della grafica integrata impediva al proiettore di essere rilevato dal sistema (suppongo che questo sia ciò che generalmente intendono per "cablato" output "e che l'uscita VGA è cablata sulla scheda discreta).

Ora, quello che mi piacerebbe fare è essere in grado di collegare il monitor esterno senza dover cambiare O / S, cioè usarlo in Ubuntu.

È possibile?

In questo momento, se voglio usare il monitor esterno su Ubuntu, l'unica opzione è quella di cambiare il BIOS per usare la grafica discreta, quindi usare le impostazioni nvidia.

Se uso invece l'installazione di Optimus, anche quando lo eseguo usando "optirun nvidia-settings -c: 8", non ottengo alcuna opzione per un monitor esterno.

C'è qualcosa che posso fare?

Risposte:


8

Ho un W520. Non è la stessa configurazione del T420: l'uscita VGA è collegata alla scheda nvidia, quindi il collegamento "this" di Samsagax non funzionerà. Ho preparato un post sul blog qui delineando le opzioni che hai. Non sono riuscito a far funzionare entrambi i monitor esterni con Bumblebee e non credo sia possibile con il W520. Tuttavia, è possibile utilizzare un monitor extenal in modalità optimus, ma è necessario utilizzare xinerama o aprire uno schermo X separato sul monitor extenal.


3
Ecco una nuova soluzione che probabilmente sarà migliore per la maggior parte delle persone: non è nemmeno necessario disconnettersi da X per utilizzare un display / proiettore esterno: zachstechnotes.blogspot.com/2012/04/post-title.html Tutto il rendering viene eseguito sulla scheda Intel e quindi i dati vengono scaricati sul dispositivo nvidia per l'output sul display esterno
Zach,

4

(reindirizzato dall'elenco di grafica ibrida linux)

Ho un Thinkpad T420 che potrebbe essere simile (ma potrebbe non esserlo).

Sul mio T420, VGA è collegato a Intel e Display-Port è collegato a NVIDIA. Quindi per l'uscita VGA posso usare il solito xrandr .

Display-Port è una storia diversa. Per questo devo cambiare xorg.conf da bumblebee in /etc/bumblebee/xorg.conf.nvidia :

L'opzione ConnectedMonitorda DFP(impostazione predefinita) a DP1per DisplayPort.


1
DP1 funziona davvero per te? Secondo download.nvidia.com/XFree86/Linux-x86_64/290.10/README/... , solo i valori validi sono CRT, DFPe varianti separati da virgole. Anche cambiarlo per CRTfunzionare?
Lekensteyn,

3

Le versioni più recenti del driver Intel includono un programma chiamato intel-virtual-outputche semplifica notevolmente la configurazione di display doppi e tripli su un W520.

Il intel-virtual-outputcomando consente a un server X sulla scheda Intel di duplicare schermate su un altro server X. Guarda le schermate disponibili sul display remoto e le presenta sul server Intel X come VIRTUAL1, VIRTUAL2, ecc.

Il seguente script (esegui come root) funziona per me, ma molto probabilmente dovrai modificare le cose:

#!/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

Questa configurazione abilita il mio cavo DisplayPort a DVI (VIRTUAL3) a sinistra e il VGA (VIRTUAL1) a destra. Disabilita anche lo schermo del laptop.

Si noti che poiché questi sono solo schermi virtuali dal driver, in teoria lo strumento di configurazione del display della GUI dovrebbe essere in grado di capirlo dopo l'esecuzione intel-virtual-output.

In pratica, lo strumento di configurazione del display in xubuntu non ha realmente fatto cose coerenti. Ecco perché xrandrci sono quei comandi. Se stai eseguendo gnome o kde, potrebbe valere la pena provare lo strumento GUI prima di sbagliare xrandr. Altrimenti, prima di eseguirlo, probabilmente vorrai modificare alcune cose per qualsiasi configurazione che stai effettivamente utilizzando. L'esecuzione xrandrindica semplicemente quali display sono attualmente connessi. È possibile collegare e scollegare i monitor per vedere quale spina si collega a quale display VIRTUAL [0-9]. Lo schermo del laptop è LVDS1. Poi è solo una questione di fare i xrandrcomandi con --right-of, --left-of, --below, ecc per ottenere le cose al loro posto.

Quando vuoi tornare di nuovo mobile, puoi eseguirlo (di nuovo, come 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

Sto eseguendo xubuntu 14.04 utilizzando il driver proprietario nvidia versione 337.25. Ho anche pacchetti di bumblebee da https://launchpad.net/~bumblebee/+archive/ubuntu/stable .

È interessante notare che questa configurazione è il contrario della solita configurazione di Optimus. Di solito si eseguono selettivamente programmi sulla scheda NVIDIA e si copiano i buffer dalla scheda NVIDIA alla scheda Intel che comunica effettivamente con i monitor. In questo caso stai eseguendo tutto sulla scheda Intel e copiando i relativi buffer dello schermo sulla scheda NVIDIA.

Se ti stai chiedendo, sì, questo rende difficile eseguire applicazioni accelerate NVIDIA. Non ho ancora trovato un modo per far funzionare bene i giochi e anche con i video HD rallenta nel tempo. Sembra addirittura che non sia un doppio buffering perché si ottiene una scansione dall'alto verso il basso visibile da sinistra a destra dopo aver riprodotto video ad alta risoluzione per un po '. Detto questo, la maggior parte dei proiettori probabilmente andrà bene.


Nota che la mia risposta è essenzialmente la stessa di @Zach's, tranne per il fatto che utilizza intel-virtual-output fornito con il driver predefinito anziché utilizzare una patch personalizzata e ibrido-screenclone. La strategia è esattamente la stessa, ma si tratta di uno sforzo molto minore e nella mia esperienza in realtà funziona su una versione più recente di Ubuntu. Grazie Zach per aver documentato la strategia che rende questo lavoro.
Hans,

1
Il merito va anche a unixreich.com/blog/2013/…
Hans,

La modifica xorg.conf.nvidiacome nel tuo riferimento è stata necessaria per me su Ubuntu 14.10 (in particolare, dovevo commentare UseEDIDe UseDisplayDevice). Tuttavia, non avevo bisogno di usare un PPA (Bumblebee di Ubuntu ha funzionato bene) e non ho nemmeno bisogno di alcun script per avviare e interrompere l'installazione multi-monitor - semplicemente avviando o uccidendo intel-virtual-output mentre l'utente normale lavora per me. (Viene eseguito optirunsecondo necessità.) Puoi confermare?
krlmlr,

Usi la GUI per configurare gli schermi? Forse quel problema era un problema di xubuntu. Dovrò provare le altre cose quando ne avrò la possibilità.
Hans,

Sì, la GUI funziona per l'impostazione degli schermi.
krlmlr,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.