Bumblebee with HDMI on Nvidia - Make usable both with/without connected monitor
I had a similar problem on my Optimus Laptop -- I have an HDMI monitor working via intel-virtual-output
, but when it was disconnected, optirun
failed.
What seems to work for me is the following /etc/bumblebee/xorg.conf.nvidia
(I use the proprietary Nvidia driver):
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"
Option "AllowEmptyInitialConfiguration"
#BusID "PCI:1:0:0"
EndSection
The important bit is the line
Option "AllowEmptyInitialConfiguration"
After adding it, both single and multi-monitor configurations started working automatically, though I ran into problems where gdm.service
would hang when started at the same time as bumblebeed.service
—I'm not sure if this is related, but it probably is.
Related videos on Youtube
Ng Oon-Ee
Updated on September 18, 2022Comments
-
Ng Oon-Ee over 1 year
I use an Asus laptop with Optimus. The VGA output is wired to the Intel card, while the HDMI output is wired to the Nvidia card.
I'm not using PRIME or nouveau, but prefer a bumblebee setup (the only real use of my Nvidia card is to run games on steam, really). PRIME gave really weird bugs with regards to mouse cursor screen-lock etc, and nouveau makes my nvidia's 'performance' on par with that of my Intel card, which defeats the purpose.
On bumblebee, I can get the external HDMI monitor working by using
intel-virtual-output
. the monitor then appears without issue inxrandr
and can be used as a clone/extended screen using the normalxrandr
tools. However this requires that I comment out the"UseDisplayDevice"
option in/etc/bumblebee/xorg.conf.nvidia
The problem with doing that is that when I don't have a monitor connected to HDMI (whenever I'm away from the office), primusrun will complain that no monitor is connected, and I have to have the following uncommented line
Option "UseDisplayDevice" "none"
in the device section of
/etc/bumblebee/xorg.conf.nvidia
This setup is the result of tweaking and googling for a while, and the only 'problem' with it is the repeated need to edit the nvidia xorg.conf depending on whether I have a monitor or not. Is there any way to get around that?
-
Ng Oon-Ee over 7 yearsThanks, this worked immediately (in the sense that primusrun would run even when monitor was not connected) but a combination of IRL events meant I had no access to a HDMI monitor to test its functionality till today. Answer accepted!