Wyświetlacze zewnętrzne z Bumblebee


14

Próbuję podłączyć monitor zewnętrzny (za pomocą kabla VGA) do laptopa, używając Bumblebee i konfiguracji Optimus.

Mam Lenovo W520 z procesorem Intel GMA HD 3000 i Nvidia Quadro 2000M. BIOS ma trzy opcje dotyczące kart graficznych - zintegrowaną, dyskretną i Optimus.

Przypadek użycia jest bardzo prosty. Do pracy używam tylko zintegrowanej karty i wyświetlacza laptopa; jednak kiedy oglądam filmy, chcę korzystać z mojego projektora. Teraz muszę w tym przypadku:

  • restart
  • uruchom Windows
  • Oglądaj film

Dzięki Bumblebee mogę teraz zachować konfigurację zawsze jako Optimus.

Przed BB musiałem zmieniać ustawienia BIOS za każdym razem, gdy chciałem obejrzeć film, ponieważ nawet w systemie Windows użycie zintegrowanej grafiki spowodowało, że projektor nie był wykrywany przez system (przypuszczam, że to właśnie rozumieją przez „przewodowy” wyjście ”oraz że wyjście VGA jest podłączone na dyskretnej karcie).

Teraz chciałbym móc podłączyć monitor zewnętrzny bez konieczności przełączania O / S, czyli używania go w Ubuntu.

Czy to możliwe?

W tej chwili, jeśli chcę korzystać z zewnętrznego monitora w systemie Ubuntu, jedyną opcją jest zmiana BIOS-u na dyskretną grafikę, a następnie użycie ustawień nvidia.

Jeśli zamiast tego użyję instalacji Optimusa, nawet jeśli uruchomię ją za pomocą opcji „optirun nvidia-settings -c: 8”, nie dostanę żadnej opcji dla zewnętrznego monitora.

Czy mogę coś zrobić?

Odpowiedzi:


8

Mam W520. Nie jest to ta sama konfiguracja co T420 - wyjście VGA jest podłączone do karty nvidia, więc link „to” z Samsagax nie będzie działał. Przygotowałem tutaj post na blogu , w którym opisano dostępne opcje. Nie udało mi się uruchomić żadnego zewnętrznego monitora do pracy z Bumblebee i nie sądzę, aby było to możliwe z W520. Możesz jednak użyć monitora zewnętrznego w trybie Optimus, ale musisz albo użyć Xinerama, albo otworzyć osobny ekran X na monitorze zewnętrznym.


3
Oto nowe rozwiązanie, które prawdopodobnie będzie lepsze dla większości ludzi - nie musisz nawet wylogowywać się z X, aby korzystać z zewnętrznego wyświetlacza / projektora: zachstechnotes.blogspot.com/2012/04/post-title.html Wszystkie renderowanie odbywa się na karcie Intel, a następnie dane są zrzucane do urządzenia NVIDIA w celu wyprowadzenia ich na zewnętrzny ekran
Zach.

4

(przekierowano z listy Linux-Hybrid-Graphics)

Mam Thinkpad T420, który może być podobny (ale może nie być).

W moim T420 VGA jest podłączony do procesora Intel, a Display-Port jest podłączony do NVIDIA. Więc do wyjścia VGA mogę użyć zwykłego xrandr .

Display-Port to inna historia. W tym celu muszę zmienić xorg.conf z trzmiela w /etc/bumblebee/xorg.conf.nvidia :

Opcja ConnectedMonitorod DFP(domyślna) do DP1DisplayPort.


1
Czy DP1 naprawdę działa dla Ciebie? Według download.nvidia.com/XFree86/Linux-x86_64/290.10/README/... , że ważne są tylko wartości CRT, DFPa warianty oddzielone przecinkami. Czy zmiana go CRTteż działa?
Lekensteyn,

3

Nowsze wersje sterownika Intel zawierają program o nazwie, intel-virtual-outputktóry znacznie upraszcza konfigurację podwójnych i potrójnych wyświetlaczy na W520.

To intel-virtual-outputpolecenie umożliwia X-serwerowi na karcie Intel duplikowanie ekranów na innym serwerze X. Sprawdza dostępne ekrany na zdalnym wyświetlaczu i przedstawia je na serwerze Intel X jako VIRTUAL1, VIRTUAL2 itp.

Poniższy skrypt (uruchamiany jako root) działa dla mnie, ale najprawdopodobniej będziesz musiał go ulepszyć:

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

Ta konfiguracja umożliwia mój kabel DisplayPort do DVI (VIRTUAL3) po lewej stronie i VGA (VIRTUAL1) po prawej stronie. Wyłącza także ekran laptopa.

Zauważ, że ponieważ są to tylko wirtualne ekrany ze sterownika, teoretycznie narzędzie do konfiguracji wyświetlania GUI powinno być w stanie to rozgryźć po uruchomieniu intel-virtual-output.

W praktyce narzędzie do konfiguracji wyświetlania w Xubuntu tak naprawdę nie robiło spójnych rzeczy. Właśnie dlatego te xrandrpolecenia są dostępne. Jeśli korzystasz z gnome lub kde, może warto wypróbować narzędzie GUI przed zadziałaniem xrandr. W przeciwnym razie, zanim uruchomisz ten program, prawdopodobnie zechcesz poprawić niektóre ustawienia, niezależnie od tego, jakiej faktycznie używasz. Uruchomienie xrandrinformuje tylko , które wyświetlacze są aktualnie podłączone. Możesz podłączyć i odłączyć monitory, aby zobaczyć, która wtyczka łączy się z którym wyświetlaczem VIRTUAL [0-9]. Ekran laptopa to LVDS1. Wtedy to po prostu kwestia wykonując xrandrpolecenia z --right-of, --left-of, --below, itd., Aby dostać rzeczy we właściwym miejscu.

Jeśli chcesz ponownie uruchomić urządzenie mobilne, możesz uruchomić to (ponownie jako 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

Używam Xubuntu 14.04 przy użyciu zastrzeżonej wersji sterownika NVIDIA 337.25. Mam też paczki trzmieli z https://launchpad.net/~bumblebee/+archive/ubuntu/stable .

Co ciekawe, ta konfiguracja jest odwrotnością zwykłej konfiguracji Optimusa. Zwykle wybiórczo uruchamiasz programy na karcie NVIDIA i kopiujesz bufory z karty NVIDIA na kartę Intel, która faktycznie rozmawia z monitorami. W takim przypadku uruchamiasz wszystko na karcie Intel i kopiujesz odpowiednie bufory ekranu na kartę NVIDIA.

Jeśli zastanawiasz się, tak, utrudnia to uruchamianie aplikacji z akceleracją NVIDIA. Nie znalazłem jeszcze sposobu, aby gry działały dobrze, a nawet w przypadku filmów HD zwalnia z czasem. Wydaje się nawet, że nie buforuje podwójnie, ponieważ po dłuższym odtwarzaniu wideo o dość wysokiej rozdzielczości widać widoczne skanowanie od lewej do prawej z góry na dół. To powiedziawszy, większość projektorów prawdopodobnie będzie w porządku.


Zauważ, że moja odpowiedź jest zasadniczo taka sama jak @ Zach, z wyjątkiem tego, że używa intel-virtual-output, który jest dostarczany z domyślnym sterownikiem, zamiast używać niestandardowej łatki i hybrydowego screenclone. Strategia jest dokładnie taka sama, ale jest to o wiele mniej wysiłku i z mojego doświadczenia faktycznie działa na nowszej wersji ubuntu. Dzięki Zach za udokumentowanie strategii, która sprawia, że ​​to działa.
Hans

1
Kredyt trafia również do unixreich.com/blog/2013/…
Hans

Edycja xorg.conf.nvidiajak w twojej referencji była dla mnie konieczna na Ubuntu 14.10 (w szczególności musiałem skomentować UseEDIDi UseDisplayDevice). Nie musiałem jednak używać PPA (Bumblebee z Ubuntu działało dobrze), a także nie potrzebuję żadnych skryptów do uruchamiania i zatrzymywania konfiguracji wielu monitorów - po prostu uruchamianie lub zabijanie, intel-virtual-output ponieważ zwykły użytkownik pracuje dla mnie. (Wykonuje się optirunw razie potrzeby.) Czy możesz potwierdzić?
krlmlr

Czy używasz GUI do konfigurowania ekranów? Być może ten problem był problemem Xubuntu. Będę musiał spróbować innych rzeczy, kiedy będę miał szansę.
Hans

Tak, GUI działa przy konfigurowaniu ekranów.
krlmlr

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.