Lenovo T420S ile DVI / görünüm portu üzerinden nasıl ikinci bir ekran ayarlayabilirim?


13

Lenovo T420S, nvidia optimus teknolojisine sahip ayrı bir grafik kartına sahip. Temel olarak elde etmeye çalıştığım şey şudur:

  • DVI / viewport ile bağlı - işyerinde ikinci bir ekran kullanın (VGA bulanık)
  • seyahat ederken orta ila iyi pil performansı elde etmek (2 saat)

Anladığım kadarıyla, aşağıdaki seçeneklere sahibim:

  1. Optimus'u devre dışı bırakın, yalnızca dahili grafikleri kullanın
  2. Optimus'u devre dışı bırakın, yalnızca nvidia'yı kullanın
  3. Optimus'u etkinleştirin, yaban arısı ( ana sayfa ) / ironhide kullanın

(1) DVI / viewport'un dahili grafiklerle teknik olarak kullanılamadığını okuduğumda (ve yaşadığımda) diskalifiye ediyor

(2) şimdiye kadar gerçekten denemedim , nvidia sürücülerini ekledikten sonra siyah bir ekrana önyüklenen hızlı bir test yüklemesi :-(

(3) bu blogu takip etti , ironhide yerine yaban arısı kullandı. Bumblebee çalıştı (glxgears'ta etkileyici FPS görebiliyorum), ancak ikinci ekranı tanıyamadım . Ayrıca nvidia-driver-cehenneminde kaybolmuş hissettim ve sadece yüklü olmadığı için nvidia-xconfig'i çalıştırma şansım yoktu. İkinci bir ekranın kutudan çıktığı biliniyor mu? Daha fazlasını yüklemem gerekir mi? Xorg.conf ile uğraşmam gerekir mi? Birçok soru, az cevap.

Peki, hedeflerime ulaşmak için ne yapabilirim? Hangi yolu takip etmeli ve sonraki adımlar nelerdir?

Herhangi bir ipucu açığız :-)

Güncelleme : Yanıtlayan herkese teşekkürler. Çalışma ortamımı "ayrık" bir yüklemeye geçireceğim ve "optimus / bumblebee" yi paralel bir oyun projesi olarak kullanacağım ve ne kadar ilerlediğimi göreceğim ... Gelecek soruları yeni konulara göndereceğim.

Yanıtlar:


5

Bir Thinkpad W520'im var ve bu konuyu kapsamlı bir şekilde karıştırdım. W520 ve T420S'nin ne kadar ortak olduğundan emin değilim, ancak burada büyük resim durumunu özetleyen ve bazı önerilerde bulunan bir blog yazısı yazdım .

Tescilli sürücülerin tam zamanlı olduğu nvidia kartını kullanarak 2 saat pil ömrü elde edebilmelisiniz. Bu, muhtemelen harici bir ekran eklerken en az güçlük içeren bir seçenek olacaktır ("disper" programı bunun için çok yararlıdır). T420'lerde bulunan kart için nvidia'ya ait sürücüler W520 ile aynı şekilde işlev görürse, tam kullanımda değilken otomatik olarak kartın altını overclock ederler (bu "Power Mizer" olarak adlandırılırlar), bu nedenle pil ömrünüz de çok fazla olmayacaktır. korkunç. Dürüst olmak gerekirse, nvidia kartını kapatarak pil ömründe sadece% 25 veya 30'luk bir artış elde ediyorum. Ayrıca, Bumblebee takılıyken, harici monitörünüzü kullanamayabileceğinize inanıyorum, çünkü nvidia kartı zaten "başlık altında" bir X sunucusu çalıştırıyor. Özetle, seçenek (2) 'yi takip etmenizi tavsiye ederim.

Bumblebee'yi yükleyip kaldırdığımda, nvidia tescilli sürücülerinin tekrar çalışması için biraz sorun yaşadım. Burada dikkat etmeniz gereken birkaç nokta: (a) W520, hangi grafik şemasının kullanımıyla ilgili BIOS seçeneklerine sahiptir. T420 seçeneklerinin ne olduğundan emin değilim, ancak ThinkPad ekranınızda nvidia grafiklerini kullanmak istiyorsanız, muhtemelen "ayrık" modda olmanız gerekir. (b) Özel sürücüleri kullanmak için ubuntu'daki "jokey" programı ile uğraşmak zorunda kalabilirsiniz.

İyi şanslar! Umarım bu biraz yardımcı olmuştur.


... kesinlikle yardımcı oluyor, cevapladığınız için teşekkürler!
jan groth

Bu konuya diğer yorumları okuduktan sonra, T420 anlaşılıyor değil W520 ile aynı şekilde konfigüre - Entegre kart edilir bu da açıklıyor T420 ait yeteneğine sahiptir neden - W520 ortamın aksine (VGA çıkışına bağlı W520 yalnızca 2) desteklerken, 3 harici monitörü destekler.
Zach

Soru şu: T420'de hangi BIOS modları mevcut? @ John'un gönderisinden, en azından bir Optimus modu ve ayrı bir mod olduğu anlaşılıyor. (2) seçeneğini takip ediyorsanız, @John gibi ayrık modda olduğunuzdan emin olmak istersiniz. Optimus modundaysanız, dahili Thinkpad ekranı ve harici dijital ekran muhtemelen farklı grafik kartları tarafından kontrol edilir ve çalışmasını sağlamak için xorg.conf dosyanızla uğraşmak zorunda kalacaksınız.
Zach

@Zach: Blog gönderisi için teşekkürler. Ben utanmadan onun hem çalınmasının takip sürümü ve Sagar Karandikar en Yeniden yazma ve içinde Ubuntu en son sürümüne ilgili bazı güncellemeler eklendi Cevabıma .
krlmlr

7

Ubuntu 14.10 ve üstü: Orada çok, çok daha basit. Lütfen bu cevaba ve aşağıdaki yorumuma bakın.

Not : Bu yalnızca Ubuntu 13.04'te çalışır. 13.10'da bazı farklılıklar vardır.

İki harici monitörü (yerleşik panele ek olarak) Ubuntu 13.04'teki ThinkPad T430'uma Optimus ("Değiştirilebilir grafikler") etkinken (listenizdeki seçenek 3) bağlamayı başardım. Monitörler DVI arabirimi üzerinden bağlanır, bunlardan biri döndürülür. Diğer çözümlerin aksine, tüm monitörler aynı pencere yöneticisine bağlıdır, böylece pencereler monitörler arasında serbestçe hareket ettirilebilir. Bu, bağlantısı kesilirse pil ömrünü uzatır ve bağlıysa harici monitörleri kullanır.

Buradaki ana fikir:

  • Dahili grafik bağdaştırıcısı, gerçekte görüntülenen görüntüyü (bitmap) yönetmekten sorumludur
  • Varsayılan olarak, her şey dahili grafik bağdaştırıcısında oluşturulur
  • GPU hızlandırmalı uygulamalar ayrık grafik adaptörünü kullanır, çıkış dahili grafik adaptörüne kopyalanır
  • Her harici monitör için dahili grafik bağdaştırıcısı "sanal" bir ekran sunar
  • Harici monitörlere çıkış ikinci bir X sunucusu kullanılarak gerçekleşir, "sanal" ekranlardan gelen içerik sürekli olarak ikinci X sunucusuna kopyalanır

Diğer çözümlere göre en büyük yararı , tüm ekranların (görünüşte) aynı X oturumunun bir parçası olmasıdır, böylece pencereleri ekranlar arasında serbestçe taşıyabilirsiniz.

Şimdiye kadar hiçbir performans cezası fark etmedim.

Talimatlar

Aşağıdakileri yapmanız gerekir:

  • Bumblebee'yi bir PPA'dan yükleyin
  • Özel bir Intel video sürücüsü oluşturun ve yükleyin
  • Küçük bir programı indirin, derleyin ve sonunda kurun
  • İki yapılandırma dosyasını düzenleyin
  • Birkaç kez yeniden başlat

Çoğu eylem için bir terminale, bir metin düzenleyicisine ve kök erişimine ( sudo) ihtiyacınız olacaktır. Ayrıntılı talimatlar aşağıda verilmiştir.

Bumblebee Yükle

Talimatların "temel kurulum" bölümünü izleyin . Kök olarak çalıştır, son komut aslında yeniden başlatmayı başlatır:

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

Bombus arısını sadece nouveau sürücüsü ile çalıştırmayı denemiyor musunuz ? . Deneyimlerime göre, en azından bu kurulumda işe yaramıyor.

onaylama

Koşabilmelisin optirun glxgears.

Yamalı bir sürümünü yükleyin xserver-xorg-video-intel

Seçenek 1: PPA'mdan yükle (şu anda yalnızca Ubuntu 13.04)

Kök olarak aşağıdakileri yürütün:

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

2. Seçenek: Kendi paketinizi oluşturun ve yükleyin

En son seçim yama için xserver-xorg-video-intel. Dosyayı tıklayın, "Raw" düğmesini tıklayın, URL'yi tarayıcıya kopyalayın. Yazarken, bu https://raw.github.com/liskin/patches/master/hacks/xserver-xorg-video-intel-2.20.14_virtual_crtc.patch idi .

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

Her iki seçenek için de doğrulama (1)

Komuta

apt-cache policy xserver-xorg-video-intel

yamalı sürümü ( +virtualsonek) ve orijinal Ubuntu sürümünü göstermelidir.

Her iki seçenek için 13.04 için gereklidir

Aşağıdakileri kendinize ekleyin /etc/X11/xorg.conf, gerekirse oluşturun:

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

Her iki seçenek için de doğrulama (2)

Yeniden başlatmanın ardından bir xrandrterminalde çalıştırın . Çıktıda iki ek sanal ekran listelenmelidir.

Screenclone'u indirin ve oluşturun

Puetzk'in screenclone çatalını ve bağımlılıklarını alın ve derleyin.

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

onaylama

Dosya screenclonevar ve yürütülebilir. (Yine de çalışmaz.)

Düzenle xorg.conf.nvidia

  • Dosyayı /etc/bumblebee/xorg.conf.nvidiakök olarak bir metin düzenleyicisinde açın
  • Dışında açıklama veya okumak satırları kaldırmak UseEDIDveyaUseDisplayDevice
  • Olarak Section "ServerLayout", bir girdi eklemekScreen "Screen0"
  • Dosyanın altına aşağıdakileri ekleyin:

    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        DefaultDepth    24
        SubSection     "Display"
        Depth       24
        EndSubSection
    EndSection
    
  • Yeniden Başlatma

Test yapmak

Kurulumum, yerleştirme istasyonunun ilk DVI bağlantı noktasına bağlı bir yatay monitör ve ikinci DVI bağlantı noktasına bağlı bir dikey monitör olduğunu varsayar. Screenclone'un bulunduğu dizinden bir terminalde aşağıdaki komutları çalıştırın, gerektiği gibi uyarlayın.

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

Ekran döndürmenin iki kez nasıl tanımlanması gerektiğine dikkat edin. xrandrHerhangi bir döndürme istenmiyorsa (ve tabii ki --rotate leftilk çağırmada) ikinci çağrıyı atlayabilirsiniz .

screencloneCtrl + C ile sonlandırılarak (tekrar kullanılarak ön plana konur fg), ayrı grafik adaptörü kapatılır. Bunu ile doğrulayabilirsiniz cat /proc/acpi/bbswitch. Yine de, ekran bağlantısı şimdi bağlantısı kesilen iki monitör için ayrılmıştır. Yalnızca dizüstü bilgisayar ekranına geri dönmek için

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

Temizlemek

  • İçindeki screenclonebir dizine kopyalayın PATH(ör. /usr/local/bin)

  • bashHarici ekranların açılıp kapanmasını otomatikleştirmek için bir komut dosyası oluşturun . Bu komut dosyası başlangıçta harici ekranlar kuracak ve yalnızca çıkışta dizüstü bilgisayar ekranına geçecektir (örneğin, Ctrl + C tuşlarına basarak).

    #!/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
    
  • Alternatif seçenek: My scriptlets toplanması iki komut içerir extmon-startve extmon-stopikinci ve üçüncü monitör etkinleştirip devre dışı. Edit extmon-startyapılandırmanızı uygun senaryoyu.

Referanslar

Cevabım büyük ölçüde aşağıdaki kaynaklardan geliyor:


Bu benim için gerçekten işe yarıyor, teşekkürler. Bu çözümle sanal masaüstlerini ve Compiz'i kullanırken çok fazla gecikmeyle ilgili sorunlarınız mı var?
damon

@blackrobot: Gnome Shell kullanıyorum, çok hafif bir gecikme var ama bu beni rahatsız etmiyor.
krlmlr

@krlmlr: 13.10'da aynı kurulumu yapma şansınız var mı?
flx

@flx: 13.10'da "sanal" CRTC'ler stok xorg-xserver-video-intelsürücüsüne yerleştirilmiştir, PPA'mı veya yamayı kullanmanıza gerek yoktur. Ayrıca düzenlemeye gerek yok xorg.conf, talep üzerine "sanal" CRTC'ler oluşturulur. Gerisi benzer olmalıdır. Artık yerini alan bir araç bile var screenclone, buna intel-virtual-outputmasaüstünüzün ekran yapılandırması ile daha sorunsuz entegre olacak. Ben bir kez bir writeup yapacağım tri-baş kurulumu ile dönme düzgün çalışması için.
krlmlr

1
@flx: Bir mod ( xrandr --newmode; modelin cvthesaplanmasına yardımcı olur) eklemeniz ve bunu sanal ekrana ( xrandr --addmode) atamanız gerekir . Mod, gerçek ekranınızla eşleşmelidir. Otomatik olarak ikinci bir sanal ekran oluşturulup oluşturulmadığına bakın. intel-virtual-outputAracın kendi başına yaptığı budur ve düzeltilen veya düzeltilmek üzere olan son sorunlar gibi görünüyor.
krlmlr

2

T420S hakkında bilmiyorum ama T420'm 9 saate kadar

  1. Monitör karanlık
  2. nvidia bumblebee / bbswith ile devre dışı bırakıldı
  3. ve pm-utils ile ekstra ayar

Ve evet, bu varsayılan pil. Bu yüzden kolayca 2 saat almalısınız, bu yüzden:

(2) /etc/X11/xorg.conf içinde nvidia sürücüsü için "ConnectedMonitor" "DFP-0" Seçeneğini deneyin.

(3) İkinci ekranınızı kullanmak için, değiştirilmiş bir yaban arısı xorg.conf'a ihtiyacınız vardır . Ayrıntılar için bkz. Https://github.com/Bumblebee-Project/Bumblebee/issues/77 .


1
Cevabın için teşekkür ederim. İkinci bir (DVI) ekran kullanmadığınızdan emin oldum mu? Dürüst olmak gerekirse: Bağlantı kurduğunuz konu üzerinde çalışmak inanılmaz derecede karmaşık görünüyor - kesinlikle deneyeceğim, ancak neyi (ve neden) değiştirmem gerektiği konusunda küçük bir fikrim bile olsa saatler sürecek. Aslında, bu iş için dizüstü bilgisayarım ve sadece çalışmasını istiyorum. İkinci bir ekran bağlamak gibi bir görevin, yaklaşık bir hafta önce bile duymadığım bir yazılımın açık sorunlarını takip etmemi istemediğini
umuyorum

Github Sorununda olduğu gibi gerçekten basit, sadece satırları (newline) kaldırın Seçenek "UseEDID" "false" (newline) Option "ConnectedMonitor" "DFP" (newline) /etc/bumblebee/xorg.conf.nvidia ve bumblebee ile Display Port üzerinde çıkış üretebilir. Başlangıçta boş bir resim alacaksınız. Örneğin dışa aktarma DISPLAY =: 8.0 (newline) xterm ile xterm alabilirsiniz. (Buraya enter'a basmak yeni satır oluşturmak yerine yorumu gönderir)
Anonim Korkak

2

4438 tipi bir yerleştirme istasyonu ile çalışırken bir T420 kullanıyorum. Bağlantı istasyonundaki DVI bağlantı noktalarını kullanarak iki geniş ekran monitör (ana monitör olmadan) veya ana monitör ile 1 geniş ekran monitör kullanabiliyorum.

Optimus'u devre dışı bıraktım ve her zaman NVIDIA kartını kullanacak şekilde ayarladım. Sonra nvidia-xconfig komutunu çalıştırdım ve çift monitörleri kurmak için nvidia ayarlarını kullandım, ayarları xorg.conf dosyasına kaydettik ve makineyi yeniden başlattım.

Bu şekilde 2 saatten biraz fazla pil ömrü elde edebiliyorum (daha fazla pil ömrüne izin vermek için başka bir değişiklik yapmadan). Ana sorun, bağlantı istasyonundan yeniden başlatıldığında veya bağlantı istasyonundan çıkarıldığında otomatik olarak bir monitöre geçmemesidir. Buna bakmak için hiç vaktim olmadı.

Çalışmak için bu hafta Bumble Bee deneyeceğim. İşe yarayabilirse buraya göndermeyi hatırlamaya çalışacağım.


2

Aynı problemim var. Biraz araştırma yaptım ve kısmen çözdüm. Hala tam bir çözüm üzerinde çalışıyorum.

Donanım: Nvidia 4200M + Intel HD 3000 grafik Thinkpad yuvasına sahip Thinkpad T420'ler.

Belirti: T420'ler yuvadaki herhangi bir DVI bağlantı noktasına bağlanan harici ekranı tanıyamıyor. Harici ekranı yuvadaki VGA bağlantı noktası üzerinden tanıyabilir. Ancak, kalitesi kötü.

Temel neden: 1. T420s, Intel kartı dock üzerindeki VGA bağlantı noktasına bağlarken Nvidia kartına DVI bağlantı noktasına bağlanır. 2. Win 7'den farklı olarak Ubuntu, Nvidia kartı ile Intel kartı arasında geçiş yapamaz. Varsayılan olarak, yalnızca Intel kart kullanılmaktadır.

Çözüm: 0. Harici ekranı sabitlemek ve DVI bağlantı noktasına bağlamak için T420'leri takın. 1. BIOS'a gidin, "Ekran" ı bulun, yapılandırmayı "Ayrık Kart" ve "Nvidia Optimus'u Devre Dışı Bırak" olarak değiştirin. Şimdi T420'ler Nvidia kartını kullanmak zorunda kalıyor. 2. Linux için Nvidia sürücüsünü indirin ve yükleyin. Google ayrıntılı talimatlar. 3. Kurulumdan sonra "sudo nvidia-settings" yapın. 4. "X Sunucu Ekranı Yapılandırması" açılır penceresinde, "Ekranları Algıla" yı tıklayın. Harici ekranı şimdi görebileceksiniz. 5. Aynı sayfada, Yapılandırmayı "TwinView", Çözünürlük "Otomatik" veya T420'lerin doğal çözünürlüğü olarak değiştirin, örneğin 1600x900. 6. "Uygula" yı tıklayın, harici ekran masaüstünü görebileceksiniz. 7. "X Yapılandırma Dosyasına Kaydet" i tıklayın.

[Güncelleme]

Disper kullanarak, T420s ekranını ve harici ekranı manuel olarak değiştirebiliyorum. Hala en iyi çözüm değil, ama bence bu benim için yeterince iyi.

Bu yüzden lütfen Nvidia ayrık grafik + disper kombinasyonunu deneyin.


... ayrık kart ile ilgili sorun, pil gerçekten hızlı boşalır ...
jan groth

Ekran bağlantı noktasını nvidia optimus modunda kullanabilmeniz için burada açıklanan yöntemi kullanabilirsiniz: zachstechnotes.blogspot.com/2012/04/post-title.html Bu şekilde, iyi bir pil ömrü elde edebilir ve harici monitörü ekran bağlantı noktası (yine de intel kartı ile render olacak, bu yüzden kalite istediğiniz kadar iyi olmayabilir
Zach

1

T520'imdeki VGA çıkışı, Entegre Grafikler (Intel BIOS ayarı) kullanarak harika (bulanık değil) çalışıyor, ancak 1920x1200 monitörü yalnızca 1600 piksel genişliğinde gösterecek şekilde ayarlamam gerekiyor, böylece her iki tarafta siyah şeritler elde ediyorum. Bu ayar olmadan, monitör 1600 pikselini 1920 ekranının tamamına uzatır ve evet, işler daha sonra bulanık görünür.

Birkaç gün önce benzer bir soru sordum ve bu cevapların kafasını karıştırdım. Anonim Coward sadece harici bir monitör çalıştırıyor gibi görünüyor ama ben (ve OP'nin) dizüstü bilgisayar ekranını (intel'de) ve harici bir monitörü DisplayPort / DVI (nvidia'da) üzerinden çalıştırmak istiyorum. Bu yüzden bence Optimus / Bumblebee gerekli olabilir.

Bu görüntü sorununu anlarsam bulgularımı kesinlikle gönderirim; önce bitiş çizgisine ulaşırsanız lütfen aynı şeyi yapın.


1
Cevabın için teşekkür ederim! Harici monitörünüzün çözünürlüğünü 1600x1200'a düşürürsem ekran daha da kötüleşir ... BTW, bulanıklığın ekran üreticisini suçluyorum - bugünlerde analog giriş kaynaklarının oldukça düşük standartta olabileceği birkaç hikaye duydum çünkü herkes dijital bağlantıları kullanır. Oh, ve bu bileti kesinlikle güncel tutacağım.
jan groth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.