使用 bumblebee 在 Optimus 笔记本电脑上编译 Linux 版 OpenCV 时遇到问题

使用 bumblebee 在 Optimus 笔记本电脑上编译 Linux 版 OpenCV 时遇到问题

好的,我有一个非常具体的 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.43295.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安装

我希望有人觉得这有用。

相关内容