Bumblebee-Project / Bumblebee

Bumblebee daemon and client rewritten in C
http://www.bumblebee-project.org/
GNU General Public License v3.0
1.29k stars 142 forks source link

External Display Support #77

Open nxdefiant opened 12 years ago

nxdefiant commented 12 years ago

The Display Port on my T420 is attached to the nvidia card, so there is no chance to access it via the intel card.

However I can output data on it tweaking bumblebee's xorg.conf changing the "ConnectedMonitor"-Option:

--- /etc/bumblebee/xorg.conf.nvidia 2012-02-07 20:43:34.000000000 +0100 +++ /etc/bumblebee/xorg.conf.nvidia_dp 2012-02-08 17:29:39.727969655 +0100 @@ -8,7 +8,9 @@ Driver "nvidia" VendorName "NVIDIA Corporation" Option "NoLogo" "true"

Additionally with a real Monitor "UseEDID" should be true of course.

The feature request is use something like optirun --monitor dp1 to automate that.

nxdefiant commented 12 years ago

oh of course the monitor is on :8, e.g. DISPLAY=:8.0 mplayer ...

Lekensteyn commented 12 years ago

Does DP1 really work? What does the nvidia-xconfig command from #21 output? If you change it to DFP-1 or CRT, does it still work?

nxdefiant commented 12 years ago

right, DFP-1 seem to be the correct value. It also uses this value if there is no "ConnectedMonitor" entry in xorg.conf, meaning: The nvidia driver defaults to "DFP1" with

  1. No Monitor attached: without "ConnectedMonitor" in xorg.conf bumblee fails to start because of no screen.
  2. Monitor attached to DP: with "ConnectedMonitor" unset or set to "DFP-1" in xorg.conf the external Monitor works

with "DFP" or "CRT" for "ConnectedMonitor" bumblebee work as usual.

nvidia-xconfig --query-gpu-info

Number of GPUs: 1

GPU #0:
  Name      : NVS 4200M
  PCI BusID : PCI:1:0:0

  Number of Display Devices: 1

  Display Device 0 (DFP-1):
     EDID Name             : Samsung SMT27A300
     Minimum HorizSync     : 26.000 kHz
     Maximum HorizSync     : 81.000 kHz
     Minimum VertRefresh   : 24 Hz
     Maximum VertRefresh   : 75 Hz
     Maximum PixelClock    : 230.000 MHz
     Maximum Width         : 1920 pixels
     Maximum Height        : 1080 pixels
     Preferred Width       : 1920 pixels
     Preferred Height      : 1080 pixels
     Preferred VertRefresh : 60 Hz
     Physical Width        : 600 mm
     Physical Height       : 340 mm
ArchangeGabriel commented 12 years ago

As the problem looks to have been fixed here, I'm closing this issue.

nxdefiant commented 12 years ago

fixed? What was changed?

ArchangeGabriel commented 12 years ago

I was understanding from "right, DFP-1 seem to be the correct value" that you've fixed the problem. But apparently it's not the case, sorry.

nxdefiant commented 12 years ago

The wish is to get "something" in bumblebee to ease the use of the display port

ArchangeGabriel commented 12 years ago

Ok, so changing this issue to External Display Support. The old issue for that was : https://github.com/Bumblebee-Project/Bumblebee-old/issues/40.

The wiki page is : https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup

squisher commented 12 years ago

I'd also like to see better support for this.

My goal is to connect two external monitors, VGA and DisplayPort, and use them instead of the laptop screen.

kurojishi commented 11 years ago

i'd like to better support for ths, i'm tring to use a third screen but it's need quite the thinkering

i'm on a thinkpad T530 with the same problem

there seems to be this workaround too, but i still need to test it http://zachstechnotes.blogspot.com/2012/04/post-title.html

krlmlr commented 11 years ago

I can confirm successful installation of a hot plug triple-head setup on a ThinkPad T430 on Ubuntu 13.04 (raring), one of the screens rotated, with the help of the following resources:

The result is fully integrated with Bumblebee. The discrete NVidia graphics card is enabled only when necessary.

Some notes:

Full writeup: http://askubuntu.com/a/303897/30266

floh79 commented 11 years ago

Hi krimir, thank you for information about 13.04. Last time triple head worked on 12.10. But since 13.04 its not working anymore. sigh

The third monitor keeps blinking (=Standby) after I entered "optirun true". If I call screenclone after setup virtualscreen with xrandr I got that: terminate called after throwing an instance of 'std::runtime_error' what(): screenclone.cc:78 display

So, any idea? :( cu Floh

krlmlr commented 11 years ago

@floh79: Which screenclone fork are you using?

floh79 commented 11 years ago

First I tried with liskin one as I used in last Ubuntu verions. Now I installed one from puetzk (I used your URL https://github.com/puetzk/hybrid-screenclone ).

krlmlr commented 11 years ago

And what's your command line to screenclone?

floh79 commented 11 years ago

I have a script (worked till 12.10) which contains as following: sudo optirun -c yuv true if [ $? -eq 0 ] then xrandr --output LVDS1 --mode 1920x1080 --output VGA1 --mode 1920x1080 --right-of LVDS1 --output VIRTUAL1 --mode 1920x1080 --left-of LVDS1 screenclone -d :8 -x 2 & echo Multidisplay start successful! else echo Multidisplay start failed! fi

Does it matters I installed prime?

krlmlr commented 11 years ago

My screenclone command line is here, in the "Testing" section, along with more detailed instructions. I'm wondering why you use sudo to start optirun -- note that this is not necessary with puetzk's fork and the -b switch. Also, I had to use two -x switches:

screenclone -b -x 1:0 -x 2:1 &

I don't know prime...

Xazax-hun commented 11 years ago

Any progress with this one?

krlmlr commented 11 years ago

Triple-head still works for me on 13.04... https://github.com/Bumblebee-Project/Bumblebee/issues/77#issuecomment-18899607

floh79 commented 11 years ago

I'm using intel-virtual-output, so no need for screenclone. :) Works as charm in 13.10.

krlmlr commented 11 years ago

@floh79: Does it work with Optimus (=switchable graphics)? Details, please. ;-)

floh79 commented 11 years ago

Yes it does. Unfortunatelly Ubuntu didn't package intel-virtual-output so you have to compile yourself. Not sure if you need compile intel-driver but I did that. Important is the very useful tool intel-virtual-output in ../xf86-video-intel/tools/: $ apt-get build-dep xserver-xorg-video-intel $ git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-intel $ cd xf86-video-intel $ ./autogen.sh --prefix=/usr $ make && sudo make install $ cd tools $ make && sudo make install

Now you can enable 3rd screen just by do this: $ intel-virtual-output -b

Of course xorg-conffiles in /etc/X11 and /etc/bumblebee should be properly configured as you did for screenclone. Have a lot of fun! cu Floh

Xazax-hun commented 11 years ago

I will try them, thanks. I was just wondering, if there was a progress to integrate this support into bumblebee.

krlmlr commented 11 years ago

@floh79: Just tried Ubuntu 13.10. Default setting with nouveau detects second monitor but I cannot enable the third monitor. Also, I see considerable lag on the second monitor (perhaps the same you reported in https://github.com/liskin/patches/issues/7#issuecomment-27963417).

Currently trying to replicate my Bumblebee install, but the intel-virtual-output really sounds nice. Were you able to resolve the lag issues?

I still have trouble following your last comment:

Of course xorg-conffiles in /etc/X11 and /etc/bumblebee should be properly configured as you did for screenclone.

What does "properly configured" mean for the intel-virtual-output case?

floh79 commented 11 years ago

With properly configured I mean as described in following url: https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup

E.g. PmMethod, KeepUnusedXServer etc... My NVidia xorg.conf contains:

f.erfurth@Precision-M6600:~$ cat /etc/bumblebee/xorg.conf.nvidia 
Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
    BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
#    Option "UseEDID" "false"
#    Option "UseDisplayDevice" "none"
EndSection

I never had lag problem and I'm not using nouveau but nvidia kernel driver.

krlmlr commented 11 years ago

@floh79: Thanks. Btw, triple backticks allow formatting as source code:

like this
```


EDIT (ArchangeGabriel): I’ve reformated his post. ;)
xiamaz commented 9 years ago

Now on Archlinux with Gnome 3.16 with most recent updates, the most elegant solution using intel-virtual-output has broken, ie the screen is not updated correctly, when the application displays output/is moved around the screen. Does anyone else have this problem?

flukejones commented 9 years ago

@Exel232 I've no problems with it. I do have to plug in my screens before starting it though. You'll find that if it is a bug or problem, it will be in the xf86-video-intel code, not in bumblebee.

ArchangeGabriel commented 8 years ago

What is the status of multi-monitor today? Since none of us ever had a laptop with one output wired to the nvidia chip, we’re not able to test anything in this area.