Nvidia 上的 Bumblebee 配备 HDMI - 可在连接或不连接显示器的情况下使用

Nvidia 上的 Bumblebee 配备 HDMI - 可在连接或不连接显示器的情况下使用

我使用装有 Optimus 的华硕笔记本电脑。VGA 输出连接到英特尔卡,而 HDMI 输出连接到 Nvidia 卡。

我没用 PRIME 或 nouveau,但更喜欢 bumblebee 设置(我的 Nvidia 卡的唯一实际用途就是在 steam 上运行游戏)。PRIME 给出了与鼠标光标屏幕锁定等有关的非常奇怪的错误,而 nouveau 使我的 nvidia 的“性能”与我的英特尔卡相当,这违背了目的。

在 bumblebee 上,我可以使用 来使外部 HDMI 显示器工作intel-virtual-output。然后显示器会毫无问题地出现在 中xrandr,并且可以使用常规xrandr工具将其用作克隆/扩展屏幕。但是,这需要我注释掉"UseDisplayDevice"中的选项/etc/bumblebee/xorg.conf.nvidia

这样做的问题是,当我没有连接到 HDMI 的显示器时(每当我离开办公室时),primusrun 会抱怨没有连接显示器,我必须将以下未注释的行

Option "UseDisplayDevice" "none"

在设备部分/etc/bumblebee/xorg.conf.nvidia

此设置是我经过一段时间的调整和谷歌搜索的结果,唯一的“问题”是需要根据我是否有显示器来反复编辑 nvidia xorg.conf。有什么办法可以解决这个问题吗?

答案1

我的 Optimus 笔记本电脑也遇到过类似的问题——我有一个可以通过 工作的 HDMI 显示器intel-virtual-output,但是当它断开连接时,optirun就出现故障。

对我来说似乎有效的是以下内容/etc/bumblebee/xorg.conf.nvidia(我使用专有的 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"
    Option "AllowEmptyInitialConfiguration"
    #BusID "PCI:1:0:0"
EndSection

重要的是

Option "AllowEmptyInitialConfiguration"

添加后,单显示器和多显示器配置都开始自动工作,但我遇到了gdm.service与同时启动时会挂起的问题bumblebeed.service——我不确定这是否相关,但可能确实如此。

相关内容