我使用装有 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
——我不确定这是否相关,但可能确实如此。