安装 bumblebee 后:i386 OpenGL 应用程序停止工作

安装 bumblebee 后:i386 OpenGL 应用程序停止工作

我在笔记本上使用 Ubuntu 12.04(华硕 K53SV、i7-2670QM、英特尔 HD 3000、GeForce 540M)。为了节省能源,我安装了“bumblebee”,这是 Linux 上 Nvidia Optimus 技术的解决方案。

到目前为止,一切都很好。

从那时起,我的电池的寿命就增加了很多。

但是:如果我尝试打开 Wine 等 32 位应用程序,并且该应用程序使用 OpenGL,则无法运行。当我在“wine”命令前输入“optirun”时,它只能在我的 540M 上运行。但是,对于简单的 OpenGL 应用程序,我不需要专用 GPU 的功能。

我使用了官方的 bumblebee 安装指南,因此我安装了像“virtualgl-libs:i386,libgl1-mesa-glx:i386,libc6:i386”这样的软件包。

那么,我该怎么做才能让我的 32 位应用程序上的 OpenGL 加速再次运行?

非常感谢您的帮助! - PhenomZ

顺便说一句:我的系统应该是最新的。我总是安装最新的更新。(我也在使用 Xorg-Edgers PPA)

    phenom@notebook:~/Downloads/Test$ wine test.exe
err:module:load_builtin_dll failed to load .so lib for builtin L"OPENGL32.dll": libGL.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
err:module:import_dll Loading library OPENGL32.dll (which is needed by L"Z:\\home\\phenom\\Downloads\\Test\\test.exe") failed (error c000007a).
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\phenom\\Downloads\\Test\\test.exe" failed, status c0000135

答案1

我来解释一下发生了什么。在 3.0-2~...ppa1 之前的 Bumblebee 版本中,安装bumblebee包也会安装包本身bumblebee-nvidia,而包本身又会安装nvidia-current

nvidia-current软件包在 64 位系统上安装 64 位和 32 位库。这些 OpenGL 库与 Mesa OpenGL 库(软件包)冲突libgl1-mesa-glx。(阅读:在主 X 服务器不使用 nvidia 驱动程序的系统(如 Optimus 笔记本电脑)上破坏 OpenGL 功能)

bumblebee-nvidia软件包尝试通过将默认 OpenGL 库设置为已安装架构的 Mesa 库来修复此问题。最初,仅libgl1-mesa-glx:amd64安装。因此,除非libgl1-mesa-glx:i386之前已安装,否则 OpenGL 在 32 位架构上会损坏。

解决办法是先安装libgl1-mesa-glx:i386,然后安装Bumblebee。virtualgl-libs:i386可以随时安装,并且在以后的版本中也会像bumblebee-nvidia一样安装。新的安装将自动按照正确的顺序引入驱动程序。

如果您已经安装了 Bumblebee,只需安装libgl1-mesa-glx:i386并重新安装即可bumblebee-nvidia

相关内容