Bumblebee的外部显示器

我正在尝试使用Bumblebee和Optimus配置将我的外接显示器(通过VGA线)连接到我的笔记本电脑。

我有一台联想W520,配备英特尔GMA HD 3000和Nvidia Quadro 2000M。 BIOS有三种关于图形卡的选项 – 集成,离散和Optimus。

用例非常简单。 为了工作,我只使用集成卡和笔记本电脑显示器; 当我看电影的时候,我想用我的投影机。 现在,在这种情况下我要做的是:

  • 重启
  • 启动窗口
  • 看电影

感谢Bumblebee,我现在能够将设置始终保持为Optimus。

在BB之前,每次我想观看电影时都必须更改BIOS设置,因为即使在Windows中,使用集成显卡也会导致系统无法检测到投影机(我认为这是他们通常所说的“硬连线”输出“,并且VGA输出硬连线到分立卡)。

现在,我想做的是能够连接外部显示器而无需切换O / S,即在Ubuntu中使用它。

可能吗?

现在,如果我想在Ubuntu上使用外接显示器,唯一的选择是更改BIOS以使用独立显卡,然后使用nvidia-settings。

如果我使用Optimus设置,即使我使用“optirun nvidia-settings -c:8”运行它,我也无法获得外接显示器的任何选项。

有什么我可以做的吗?

我有一台W520。 它与T420的设置不同 – VGA输出连接到nvidia卡,因此Samsagax的“this”链接不起作用。 我在这里准备了一篇博客文章,概述了你的选择。 我无法让任何外接显示器与Bumblebee一起工作,我不相信W520是可行的。 但是,您可以在optimus模式下使用extenal监视器,但您必须使用xinerama或在extenal监视器上打开单独的X屏幕。

(从linux-hybrid-graphics列表重定向)

我有一个可能类似的Thinkpad T420(但可能不是)。

在我的T420上,VGA连接到英特尔,而显示端口连接到NVIDIA。 因此对于VGA输出,我可以使用通常的xrandr

Display-Port是一个不同的故事。 为此,我必须在/etc/bumblebee/xorg.conf.nvidia中更改bumblebee中的xorg.conf

DFP ConnectedMonitor选项(默认值)和DisplayPort的DP1选项。

较新版本的英特尔驱动程序包括一个名为intel-virtual-output ,它大大简化了W520上双显示器和三显示器的设置。

intel-virtual-output命令为Intel卡上的X服务器提供了一种将屏幕复制到另一台X服务器的方法。 它查看远程显示器上的可用屏幕,并将它们显示在Intel X服务器上,如VIRTUAL1,VIRTUAL2等。

以下脚本(以root身份运行)对我有用,但很可能你需要调整一些东西:

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

此设置使我的DisplayPort转DVI电缆(VIRTUAL3)位于左侧,VGA(VIRTUAL1)位于右侧。 它还会禁用笔记本电脑屏幕。

请注意,由于这些只是来自驱动程序的虚拟屏幕,理论上您的GUI显示配置工具应该能够在运行intel-virtual-output之后弄清楚它。

在实践中,xubuntu中的显示配置工具并没有真正做到连贯的事情。 这就是那些xrandr命令存在的原因。 如果您正在运行gnome或kde,那么在使用xrandr之前尝试GUI工具可能是值得的。 否则,在你运行它之前,你可能想要为你实际使用的任何设置调整一些东西。 仅运行xrandr告诉您当前连接的显示内容。 您可以连接和断开显示器,以查看哪个插头连接到哪个VIRTUAL [0-9]显示器。 笔记本电脑屏幕是LVDS1。 然后,只需要使用--left-of--right-of --left-of , – --below等来执行xrandr命令,即可将事物放在适当的位置。

当你想再次移动时,你可以运行它(再次,以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 

我使用专有的nvidia驱动程序版本337.25运行xubuntu 14.04。 我也从https://launchpad.net/~bumblebee/+archive/ubuntu/stable获得了大黄蜂套餐。

有趣的是,这种设置与通常的Optimus设置相反。 通常,您有选择地在nvidia卡上运行程序,并将缓冲区从nvidia卡复制到实际与监视器对话的intel卡。 在这种情况下,您将运行intel卡上的所有内容并将相关的屏幕缓冲区复制到nvidia卡。

如果您想知道,是的,这使得运行nvidia加速应用程序变得困难。 我还没有找到让游戏表现良好的方法,即使使用高清video,它也会随着时间的推移而减慢速度。 它甚至看起来不是双缓冲,因为在播放相当高分辨率的video一段时间后,您可以看到左右自上而下的扫描。 也就是说,大多数投影机都可能没问题。

也许试试这个 。

但是依赖于硬连线。