Come si configura un secondo display tramite DVI / viewport con un Lenovo T420S?


13

Il mio Lenovo T420S ha una scheda grafica discreta con tecnologia nvidia optimus. Quello che sto sostanzialmente cercando di ottenere è il seguente:

  • utilizzare un secondo display - collegato tramite DVI / viewport - al lavoro (VGA è sfocato)
  • ottenere prestazioni della batteria da moderate a buone durante il viaggio (2 ore)

Per quanto ho capito, ho le seguenti opzioni:

  1. disabilita Optimus, usa esclusivamente la grafica interna
  2. disabilita Optimus, usa esclusivamente nvidia
  3. abilita Optimus, usa bumblebee ( homepage ) / ironhide

(1) squalifica mentre leggo (e provo) che DVI / viewport non è tecnicamente utilizzabile tramite grafica interna

(2) non ho ancora provato finora, solo una rapida installazione di prova che si è avviata in una schermata nera dopo aver aggiunto i driver nvidia :-(

(3) ha seguito questo blog , ha usato bumblebee anziché ironhide. Bumblebee ha funzionato (posso vedere FPS impressionanti su glxgears), ma non ho riconosciuto il secondo display . Mi sono anche sentito perso nell'inferno di nvidia-driver e non avevo alcuna possibilità di eseguire nvidia-xconfig, semplicemente perché non era installato. Non hai idea se un secondo display dovrebbe essere riconosciuto fuori dalla scatola? Devo installare di più? Devo scherzare con il mio xorg.conf? Molte domande, poche risposte.

Quindi, cosa posso fare per raggiungere i miei obiettivi? Quale percorso seguire e quali sono i prossimi passi?

Qualsiasi suggerimento è il benvenuto :-)

Aggiornamento : grazie a tutti coloro che hanno risposto. Migrerò il mio ambiente di lavoro su un'installazione "discreta" e userò "optimus / bumblebee" come progetto di gioco parallelo e vedrò fino a che punto ... Pubblicheremo le domande future in nuovi thread.

Risposte:


5

Ho un Thinkpad W520 e me ne sono divertito molto. Io non sono sicuro di quanto il W520 e T420s hanno in comune, ma ho scritto un post sul blog qui che delinea la situazione di grande immagine e dando alcuni suggerimenti.

Dovresti essere in grado di ottenere 2 ore di durata della batteria utilizzando la scheda nvidia con driver proprietari a tempo pieno. Questa sarà probabilmente anche l'opzione che comporta il minimo fastidio quando si aggiunge un display esterno (il programma "disper" è molto utile per questo). Se i driver proprietari nvidia per la scheda nel T420s funzionano allo stesso modo del W520, eseguiranno automaticamente il underclock della scheda quando non è in uso completo (chiamano questo "Power Mizer"), quindi la durata della batteria non sarà troppo orribile. Onestamente, ho solo un aumento del 25-30% della durata della batteria disattivando la scheda nvidia. Inoltre, credo che con Bumblebee installato, potresti non essere in grado di utilizzare il tuo monitor esterno perché la scheda nvidia esegue già un server X "nascosto". In sintesi, consiglierei di perseguire ulteriormente l'opzione (2).

Quando ho installato e disinstallato Bumblebee, ho avuto un po 'di problemi a far funzionare nuovamente i driver proprietari di nvidia. Ecco alcune cose da esaminare: (a) Il W520 ha opzioni BIOS relative allo schema grafico in uso. Non sono sicuro di quali siano le opzioni del T420, ma se si desidera utilizzare la grafica nvidia sul display del Thinkpad, probabilmente è necessario essere in modalità "discreta". (b) Potrebbe essere necessario pasticciare con il programma "fantino" in Ubuntu per farlo usare i driver proprietari.

In bocca al lupo! Spero che questo sia stato di qualche aiuto.


... sicuramente è di aiuto, grazie per aver risposto!
Jan Groth,

Dopo aver letto gli altri commenti su questo thread, sembra che il T420 non sia configurato allo stesso modo del W520 - la scheda integrata è collegata all'uscita VGA (a differenza del W520 - questo spiega anche perché il T420 è in grado di supporta 3 monitor esterni mentre il W520 è in grado di supportare solo 2).
Zach,

Quindi la domanda è: quali modalità BIOS sono disponibili sul T420? Dal post di @ John, sembra che ci sia almeno una modalità Optimus e una modalità discreta. Se stai perseguendo l'opzione (2), vuoi assicurarti di essere in modalità discreta come @John. Se sei in modalità Optimus, il display Thinkpad interno e il display digitale esterno sono probabilmente controllati da diverse schede grafiche e dovrai fare un po 'di casino con il tuo xorg.conf per farlo funzionare.
Zach,

@Zach: grazie per il post sul blog. Ho spudoratamente rubato sia la sua versione di follow-up che la riscrittura di Sagar Karandikar , e ho aggiunto alcuni aggiornamenti relativi alla versione più recente di Ubuntu nella mia risposta .
krlmlr,

7

Ubuntu 14.10 e versioni successive: è molto, molto più semplice lì. Si prega di vedere questa risposta e il mio commento qui sotto.

Nota : funziona solo con Ubuntu 13.04. Ci sono alcune differenze nel 13.10.

Sono riuscito a collegare due monitor esterni (oltre al pannello integrato) al mio ThinkPad T430 su Ubuntu 13.04, con Optimus ("Grafica commutabile") abilitato (opzione 3 nell'elenco). I monitor sono collegati tramite l'interfaccia DVI, uno di questi viene ruotato. A differenza di altre soluzioni, tutti i monitor sono collegati allo stesso gestore di finestre, quindi le finestre possono essere spostate liberamente tra i monitor. Ciò consente di aumentare la durata della batteria se scollegata e di utilizzare monitor esterni se collegati.

L'idea chiave qui è:

  • L'adattatore grafico interno è responsabile della gestione dell'immagine (bitmap) attualmente visualizzata
  • Per impostazione predefinita, tutto viene visualizzato sull'adattatore grafico interno
  • Le applicazioni con accelerazione GPU utilizzano l'adattatore grafico discreto, l'output viene copiato sull'adattatore grafico interno
  • Per ogni monitor esterno, l'adattatore grafico interno fornisce un display "virtuale"
  • L'output ai monitor esterni avviene utilizzando un secondo server X, i contenuti dei display "virtuali" vengono costantemente copiati sul secondo server X

Il vantaggio principale rispetto ad altre soluzioni è che tutti i display fanno parte (apparentemente) della stessa sessione X, quindi è possibile spostare liberamente le finestre tra i display.

Finora non ho notato alcuna penalità di prestazione.

Istruzioni

Devi fare quanto segue:

  • Installa Bumblebee da un PPA
  • Crea e installa un driver video Intel personalizzato
  • Scarica, compila e infine installa un piccolo programma
  • Modifica due file di configurazione
  • Riavvia più volte

Per la maggior parte delle azioni sono necessari un terminale, un editor di testo e l'accesso root ( sudo). Di seguito sono riportate istruzioni dettagliate.

Installa Bumblebee

Seguire la sezione "Impostazioni di base" delle istruzioni . Esegui come root, l'ultimo comando avvia effettivamente il riavvio:

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

Non provare a eseguire il calabrone solo con il driver nouveau? . Dalla mia esperienza non funziona, almeno non in questa configurazione.

Validazione

Dovresti essere in grado di correre optirun glxgears.

Installa una versione modificata di xserver-xorg-video-intel

Opzione 1: installa dal mio PPA (attualmente solo Ubuntu 13.04)

Eseguire quanto segue come root:

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

Opzione 2: compilare e installare il proprio pacchetto

Scegli la patch più recente per xserver-xorg-video-intel. Fai clic sul file, fai clic sul pulsante "Raw", copia l'URL nel browser. Al momento della stesura, questo era 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

Convalida (1), per entrambe le opzioni

Il comando

apt-cache policy xserver-xorg-video-intel

dovrebbe mostrare la versione corretta ( +virtualsuffisso) e la versione originale di Ubuntu.

Necessario per 13.04, per entrambe le opzioni

Aggiungi quanto segue al tuo /etc/X11/xorg.conf, crea se necessario:

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

Convalida (2), per entrambe le opzioni

Dopo un riavvio, esegui xrandrin un terminale. L'output dovrebbe elencare due display virtuali aggiuntivi.

Scarica e costruisci screenclone

Prendi la forchetta di screenclone e le sue dipendenze di Puetzk e compila.

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

Validazione

Il file screencloneesiste ed è eseguibile. (Tuttavia, non funzionerà ancora.)

modificare xorg.conf.nvidia

  • Apri il file /etc/bumblebee/xorg.conf.nvidiain un editor di testo, come root
  • Commenta o rimuovi le righe che leggono UseEDIDoUseDisplayDevice
  • Nel Section "ServerLayout", aggiungi una voceScreen "Screen0"
  • Nella parte inferiore del file, aggiungi quanto segue:

    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        DefaultDepth    24
        SubSection     "Display"
        Depth       24
        EndSubSection
    EndSection
    
  • Reboot

analisi

La mia configurazione presuppone un monitor orizzontale collegato alla prima porta DVI della docking station e uno verticale collegato alla seconda porta DVI. Eseguire i seguenti comandi in un terminale dalla directory in cui si trova screenclone , adattarsi se necessario.

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

Notare come la rotazione del display deve essere definita due volte. È possibile omettere la seconda invocazione xrandrse non si desidera alcuna rotazione (e, naturalmente, --rotate leftla prima invocazione).

Terminando screenclonecon Ctrl + C (che è stato nuovamente messo in primo piano usando fg), l'adattatore grafico discreto viene spento. Puoi verificarlo con cat /proc/acpi/bbswitch. Tuttavia, lo spazio dello schermo è riservato ai due monitor ora disconnessi. Per tornare al display del laptop, utilizzare

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

Pulire

  • Copia screenclonein una directory che si trova nella PATH(ad es. /usr/local/bin)

  • Crea uno bashscript per automatizzare l'avvio e l'arresto dei display esterni. Questo script imposterà i display esterni all'avvio e passerà al display del laptop solo all'uscita (ad esempio, premendo Ctrl + 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
    
  • Opzione alternativa: la mia raccolta di scriptlet contiene due script extmon-starte extmon-stop, che abilitano e disabilitano il secondo e il terzo monitor. Modifica lo extmon-startscript in base alla tua configurazione.

Riferimenti

La mia risposta attinge in gran parte dalle seguenti risorse:


Questo funziona davvero bene per me, grazie. Hai problemi con un sacco di ritardo quando usi desktop virtuali e Compiz con questa soluzione?
damon,

@blackrobot: sto usando Gnome Shell, c'è un leggero ritardo ma questo non mi disturba.
krlmlr,

@krlmlr: c'è qualche possibilità di ottenere questa stessa configurazione il 13.10?
flx,

@flx: in 13.10 i CRTC "virtuali" sono integrati nel xorg-xserver-video-inteldriver di serie, non è necessario utilizzare il mio PPA o la patch. Inoltre, non è necessario modificare xorg.conf, i CRTC "virtuali" vengono creati su richiesta. Il resto dovrebbe essere simile. Ora c'è anche uno strumento che sostituisce screenclone, si chiama intel-virtual-outpute si integrerà più agevolmente con la configurazione del display del desktop. Farò un writeup una volta che avrò la mia configurazione tri-head con rotazione per funzionare correttamente.
krlmlr

1
@flx: è necessario aggiungere una modalità ( xrandr --newmode; lo cvtstrumento aiuta a calcolare la modeline) e assegnarlo al display virtuale ( xrandr --addmode). La modalità dovrebbe corrispondere a quella del tuo display reale. Verifica se un secondo display virtuale viene creato automaticamente. Questo è ciò che fa lo intel-virtual-outputstrumento da solo, e sembra che gli ultimi problemi siano stati risolti o stiano per essere.
krlmlr,

2

Non so del T420S ma il mio T420 può fare fino a 9 ore con

  1. Monitor scuro
  2. nvidia disabilitato con bumblebee / bbswith
  3. e messa a punto extra con pm-utils

E sì, questa è la batteria predefinita. Quindi dovresti ottenere facilmente 2 ore, quindi:

(2) In /etc/X11/xorg.conf Provare con l'opzione "ConnectedMonitor" "DFP-0" per il driver nvidia.

(3) Per utilizzare il secondo display è necessario un bumblebee modificato xorg.conf Per maggiori dettagli, consultare https://github.com/Bumblebee-Project/Bumblebee/issues/77 .


1
Grazie per aver risposto. Ti ho capito bene che non stai usando una seconda schermata (DVI)? Ad essere sincero: trovo incredibilmente complicato risolvere il problema che hai collegato - ci proverò sicuramente, ma ci vorranno ore prima che abbia anche una leggera idea di cosa dovrei cambiare (e perché). In realtà, questo è il mio laptop per lavoro e voglio solo che funzioni. Speravo che un'attività come collegare un secondo display non mi avrebbe fatto inseguire problemi aperti di un software di cui non avevo nemmeno sentito parlare una settimana fa ... :-(
Jan Groth,

È davvero semplice come nel problema di github, basta rimuovere le righe (newline) Opzione "UseEDID" "false" (newline) Opzione "ConnectedMonitor" "DFP" (newline) da /etc/bumblebee/xorg.conf.nvidia e bumblebee con produce output sulla Porta Display. Avrai un'immagine vuota all'inizio. È possibile ottenere ad esempio xterm lì con export DISPLAY =: 8.0 (newline) xterm. (premendo Invio qui invia il commento invece di creare una nuova riga)
Anonimo codardo,

2

Uso un T420 al lavoro con una docking station tipo 4438. Sono in grado di utilizzare due monitor widescreen (senza il monitor principale) o 1 monitor widescreen con il monitor principale utilizzando le porte DVI sulla docking station.

Ho appena disabilitato optimus e l'ho impostato per utilizzare sempre la scheda NVIDIA. Quindi ho eseguito nvidia-xconfig e ho usato le impostazioni nvidia per configurare i doppi monitor, salvato le impostazioni nel file xorg.conf e riavviato la macchina.

Sono in grado di ottenere un po 'più di 2 ore di durata della pastella in questo modo (senza altre modifiche per consentire una maggiore durata della batteria). Il problema principale che ho è che non passa automaticamente a un monitor quando riavviato dalla docking station o rimosso dalla docking station. Non ho avuto tempo di esaminare questo però.

Proverò Bumble Bee alla fine di questa settimana per vedere se riesco a farlo funzionare. Cercherò di ricordare di postare qui se riesco a farlo funzionare.


2

Ho lo stesso problema. Ho fatto alcune ricerche e parzialmente risolto. Sto ancora lavorando su una soluzione completa.

L'hardware: Thinkpad T420s con dock Nvidia 4200M + Intel HD 3000 e Thinkpad grafico.

Il sintomo: i T420 non sono in grado di riconoscere lo schermo esterno che si collega a qualsiasi porta DVI sul dock. Può riconoscere il display esterno tramite la porta VGA sul dock. Tuttavia, la qualità è scadente.

La causa principale: 1. T420s ha una scheda Nvidia che si collega alla porta DVI mentre una scheda Intel alla porta VGA sul dock. 2. A differenza di Win 7, Ubuntu non può passare dalla scheda Nvidia alla scheda Intel. Per impostazione predefinita, viene utilizzata solo la scheda Intel.

La soluzione: 0. Mettere i T420 per il dock e collegare il display esterno alla porta DVI. 1. Andare al BIOS, trovare "Display", modificare la configurazione in "Scheda discreta" e "Disabilita Nvidia Optimus". Ora T420s è costretto a usare la scheda Nvidia. 2. Scarica e installa il driver Nvidia per Linux. Google le istruzioni dettagliate. 3. Dopo l'installazione, eseguire "sudo nvidia-settings". 4. Nella finestra pop-up, "Configurazione display X Server", fare clic su "Rileva display". Ora sarai in grado di vedere il display esterno. 5. Nella stessa pagina, cambia la configurazione in "TwinView", la risoluzione "Auto" o la risoluzione nativa di T420s, diciamo 1600x900. 6. Fai clic su "Applica", sarai in grado di vedere il desktop dello schermo esterno. 7. Fare clic su "Salva nel file di configurazione X".

[Aggiornare]

Usando disper, sono in grado di attivare manualmente il display T420 e il display esterno. Non è ancora la soluzione migliore, ma penso che sia abbastanza buono per me.

Quindi, per favore, prova la grafica discreta Nvidia + la combinazione disper.


... il problema con la scheda discreta è che scarica la batteria molto velocemente ...
Jan Groth,

Dovresti essere in grado di utilizzare la porta di visualizzazione in modalità nvidia optimus utilizzando il metodo descritto qui: zachstechnotes.blogspot.com/2012/04/post-title.html In questo modo, puoi ottenere una buona durata della batteria e utilizzare il monitor esterno sul display port (eseguirai il rendering con la scheda Intel, quindi la qualità potrebbe non essere buona come vorresti
Zach

1

L'output VGA sul mio T520 funziona alla grande (non sfocato) utilizzando la grafica integrata (impostazione del BIOS Intel) ma devo impostare il monitor 1920x1200 in modo che visualizzi solo 1600 pixel di larghezza in modo da ottenere strisce nere su entrambi i lati. Senza questa impostazione, il monitor estende 1600 pixel sull'intero schermo del 1920 e sì, le cose sembrano sfocate.

Ho fatto una domanda simile qualche giorno fa e rimango confuso da queste risposte. Sembra che @Anonimo Coward stia eseguendo solo un monitor esterno ma io (e credo l'OP) voglio essere in grado di eseguire il display del laptop (su Intel) e un monitor esterno tramite DisplayPort / DVI (su NVIDIA). Quindi penso che possa essere richiesto Optimus / Bumblebee.

Se capirò questo problema con il display, pubblicherò sicuramente i miei risultati; fai lo stesso se raggiungi prima il traguardo.


1
Grazie per aver risposto! Se riduco la risoluzione del mio monitor esterno a 1600x1200 il display peggiora ancora ... A proposito, incolpo il produttore del display per la sfocatura - ho sentito un paio di storie che le fonti di ingresso analogiche possono essere standard piuttosto bassi al giorno d'oggi, perché tutti utilizza connessioni digitali. Oh, e terrò sicuramente aggiornato questo biglietto.
Jan Groth,
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.