好的,我有一个非常具体的 Optimus/CUDA/驱动程序问题:
我在 Acer Aspire 5750G 上运行 Ubuntu 12.04。这台笔记本电脑配有支持 CUDA 的 GT540M GPU,但它也有 Optimus,因此为了使用它,我需要使用 bumblebee
下列的这些说明我安装了较新的 NVIDIA 驱动程序
ppa:ubuntu-x-swat/x-updates
,然后安装了 bumblebee我现在可以在 GPU 上顺利运行东西(
optirun glxspheres
按预期工作)然而,我尝试编译一些支持 CUDA 运行时的东西(OpenCV-2.4.2),却遇到了一个编译器错误,这似乎与没有安装 NVIDIA CUDA 开发者驱动程序有关
我想知道是否可以将 bumblebee 与 NVIDIA 开发者驱动程序结合使用。使用从 NVIDIA 开发者页面下载的安装程序是否安全,或者这会彻底搞乱 bumblebee?有没有更好的方法来安装开发者驱动程序?我寻找最新的 PPA,但找不到。
答案1
好的,事实证明我不需要使用开发人员驱动程序来编译 OpenCV!
我不知怎么弄乱了我的软件源,以至于我无法再从ppa:ubuntu-x-swat/x-updates
任何源更新。修复这个问题后,我能够将 NVIDIA 驱动程序更新为304.43
。295.49
我认为这可能是使 OpenCV 编译的关键因素,尽管我也必须修改一个 makefile 才能使其工作。
如果有人有兴趣做同样的事情,我基本上遵循了说明这里. 换句话说:
sudo apt-get install
如果尚未安装以下模块依赖项,请安装它们:libopencv-dev build-essential checkinstall cmake pkg-config libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libv4l-dev
从以下网址下载最新的 OpenCV这里, 然后:
tar -xvf OpenCV-<version#>.tar.bz2 cd OpenCV-<version#>/ mkdir build cd build
运行
cmake
以配置构建文件。您需要传递cmake
一组选项来指定您希望如何构建 OpenCV。确切的选项取决于您的系统 - 您可以通过查看来了解可用的选项../CMakeLists.txt
。我使用的确切命令是:cmake -D WITH_QT=ON -D WITH_XINE=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=ON BUILD_TESTS=ON ENABLE_SSE3=ON ENABLE_SSE4.1=ON ENABLE_SSE4.2=ON WITH_CUDA=ON ..
我在使用 CUDA 运行时支持()进行编译时遇到了特别的麻烦
WITH_CUDA=ON
,因此提出了有关驱动程序的最初问题。cmake
将创建一个名为的文件CMakeCache.txt
。我发现我必须按照描述修改此文件这里以避免链接错误libcuda.so
。找到以下列内容开头的行:
CUDA_CUDA_LIBRARY:FILEPATH=
并将路径附加到
libcuda.so
,就我的情况而言:CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current/libcuda.so
现在你应该可以运行
make
编译(需要一段时间...),然后sudo make install
安装
我希望有人觉得这有用。