使用Bumblebee在外部监视器上运行Unity

我意识到还有很多其他问题,但它们都与基本设置有关。 我已经完成了大部分工作,但我有一个非常具体的问题:我想在外部(HDMI)显示器上运行完整的Unity,我不在乎笔记本电脑显示器是否无法使用。

我有戴尔XPS 15和配备Optimus的Nvidia GT 540M。 (DAMN OPTIMUS !!!!)我安装了Bumblebee。 我可以在笔记本电脑显示器上运行系统,我可以使用optirun在高性能模式下运行像glxspheres这样的程序。 当我插入外接显示器时,我什么也看不见, xrandr没有检测到它(“ HDMI1 disconnected (normal left inverted right x axis y axis) ”)。

这是我到目前为止所做的工作(使用Bumblebee的多显示器设置指南)。 我按照“额外的屏幕”建议,所以我按照指示编辑了bumblebee.confxorg.conf.nvidia 。 现在,如果我跑:

 export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH optirun glxspheres 

我在外部显示器上看到了glxspheres演示(没有任何橱窗装饰)。 哇噢!

现在下一步是关闭笔记本电脑显示器上的Unity并测试glxspheres是否仍然有效。 所以我按Ctrl + Alt + F1转到非图形终端。 然后:

 sudo service lightdm stop export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH optirun glxspheres 

再次,我在外部显示器上看到glxspheres。

现在大黄蜂指南告诉你做“ optirun wmii& (或其他类似startlxde)”,但我不想换到另一个窗口管理器。 如何在外部显示器上运行Unity?

我尝试了optirun unity ,我在那里得到了大部分。 这将在外部监视器上启动Unity。 我可以看到桌面和鼠标工作。 我可以在Unity中运行其他程序。 只有几个问题:

  1. Unity不会检测到某些键盘组合 – 看起来像任何涉及Ctrl和Fn键的内容。 (例如:Ctrl + Alt + T无法获取终端; Fn + F11无法更改音量。)
  2. 键盘笔划出现在终端和Unity中。 我不希望这样,因为可能会输入密码。
  3. 如果我切换到另一个屏幕(例如,Ctrl + Alt + F8),音频将停止工作,因此这不是#2的可行解决方案。

我觉得这三个问题是相关的。 我认为主要的问题是我不应该直接运行Unity,而是运行lightdm。 我尝试过optirun lightdm但它根本不起作用。 希望有人知道。 如果没有,希望至少这个问题可以帮助人们在外部监视器上运行Unity。

据我所知,Unity不适用于optirun(它似乎是一个bug)。

这就是我在这里找到的:

对于大多数笔记本电脑而言,即使您使用Bumblebee,HDMI也无法与Linux下的Optimus混合图形芯片组配合使用,但有一种方法可以让HDMI工作:使用单独的会话。

使用下面的说明,您将获得一个LXDE会话(您可以使用XFCE或其他,但下面的说明适用于LXDE)显示在外部显示器上(通过HDMI连接),在此会话中,所有您启动的应用程序使用笔记本电脑的Nvidia显卡,您可以玩游戏,看电影等.LXDE会话与常规会话同时运行,因此在笔记本电脑的屏幕上,您可以进行常规(主要)会话。 此外,鼠标和键盘在两个会话/监视器之间共享。

这是这样的:

第一个图片

第二张照片

上面的第一张图片来自我的笔记本电脑的屏幕(戴尔XPS L702X,附带Nvidia Optimus),而第二张图片是单独的LXDE会话,它也在我的笔记本电脑上运行,但显示在通过HDMI连接的电视上。 如您所见,第一个使用英特尔图形芯片,而第二个使用Nvidia。

但是,使用此function时需要考虑以下事项:

  • 声音不起作用(如果你知道一种方法让它工作,请在评论中告诉我们!)通过HDMI,这样你只能通过笔记本电脑的扬声器发出声音
  • 您无法将窗口从当前桌面移动到通过HDMI连接的显示器。 在通过HDMI连接的设备上运行应用程序的唯一方法是从会话菜单运行它,或者使用“export DISPLAY =:8.0”(有关此内容的详细信息,请参阅post末尾)。 但是,鼠标是在两个桌面之间共享的。
  • 加载额外会话时,您可能会在当前(主)会话中获得双指标/托盘图标。 虽然有一种解决方法(参见post末尾的“提示”部分)

使用Bumblebee和Synergy在Ubuntu下使用Optimus技术让HDMI与笔记本电脑配合使用

  1. 如果你还没有安装大黄蜂。

  2. Unity不能与Bumblebee一起使用(我不确定你是否可以使用同一个窗口管理器运行两个会话而不会干扰它们),所以你需要使用不同的桌面环境/会话,比如LXDE,XFCE和等等 – 使用你想要的任何东西。 我使用了LXDE,因此使用下面的说明,您将通过HDMI连接显示器上的LXDE会话。

    为了让鼠标和键盘在通过HDMI连接的外接显示器上工作,我们将使用Synergy,这是一种可以让您在多台计算机之间共享鼠标和键盘的工具。

    让我们安装所需的软件包(LXDE和Synergy):

    sudo apt-get install synergy lxde lxde-common

  3. 为了能够使用Synergy,您需要创建配置文件。 您可以从HERE下载我的文件 – 将文件复制到您的主文件夹并将其重命名为“.synergy.conf”(注意文件名前面的点 – 这会使文件变为隐藏状态)。

    我上面提供的文件应该足够了,但如果你想更改它,你可以在这里阅读Synergy配置文件。

  4. 要在通过HDMI连接的外部监视器上启动LXDE,您可以使用可从此处下载的脚本。 提取存档,将“hdmi”脚本复制到您的主文件夹,并使用以下命令使其可执行:

    chmod +x ~/hdmi

    现在,要运行该脚本,请使用以下命令:

    ~/hdmi

    LXDE现在应该通过HDMI连接的外部监视器启动。 给它一些时间(大约10秒)并将鼠标移动到屏幕左侧应该让它显示在HDMI设备上。

    这是脚本的作用(这只是一个解释,你不需要运行这些命令,只需使用上面的脚本):

    将显示器导出到我们将用于HDMI监视器的显示器(8):

    export DISPLAY=:8.0

    使用optirun(Bumblebee)运行LXDE:

    optirun startlxde &

    在主显示器(在笔记本电脑的主会话中)的前台运行Synergy服务器,使用127.0.0.1作为地址:

    synergys -f -a 127.0.0.1 --display :0 -n ubuntu &

    在HDMI显示器的前台运行Synergy客户端,并将其连接到127.0.0.1服务器地址:

    synergyc -f -n hdmi --display :8 127.0.0.1 &

    最后,它将显示屏输出回您的笔记本电脑(主)显示屏:

    export DISPLAY=:0.0

    该脚本还使用一些“睡眠”命令,这些命令会添加延迟以确保命令在运行下一个命令之前有足够的时间执行。