【问题标题】:Unable to run OpenCV code from beaglebone无法从 beaglebone 运行 OpenCV 代码
【发布时间】:2016-02-08 07:25:19
【问题描述】:

我正在尝试在 beaglebone black 中使用 OpenCV 运行程序,如链接末尾所述https://solarianprogrammer.com/2014/04/21/opencv-beaglebone-black-ubuntu/

我遇到了一些编译问题,我使用

解决了这些问题
g++ `pkg-config --cflags --libs opencv` test_2.cpp -o test_2

它成功编译,但是当我尝试使用运行时

./test_2

我得到错误:

CMEM 错误:初始化:无法打开 /dev/cmem:'没有这样的文件或 目录'

cmemk 内核模块似乎没有安装。

以下命令以 root 身份运行将安装 cmemk 和 让 OpenCL 正常进行。

对于可用的 CMEM DDR 块大小:~512MB:modprobe cmemk phys_start=0xa0000000 phys_end=0xc0000000 池=1x536870912 allowOverlap=1

我不确定我为什么会收到这个问题,而且我已经有几天无法解决它了。请引导我走向正确的方向。

问候

【问题讨论】:

    标签: c++ opencv beagleboneblack


    【解决方案1】:

    所以,我遇到了同样的问题(从 beaglebone 站点上的最新 Debian 版本运行 - 8.5)。

    我找到了这个链接here - 它建议我做这些事情:

    For older images do this:
    
    sudo apt-get update
    sudo apt-get upgrade
    
    sudo apt-get remove dkms --purge  #get rid of dkms/etc..
    
    cd /opt/scripts/tools/
    git pull
    sudo ./update_kernel.sh
    sudo reboot
    
    cd /usr/share/ti/examples/opencl/float_compute/
    sudo make
    sudo modprobe cmemk
    sudo ./float_compute
    

    现在,update_kernel.sh 实际上并没有完全工作(grep 在最后一个 update-initramfs 上中断),所以我尝试安装 initramfs-tools,但它仍然没有工作......所以我只是评论了它出去。重新启动后,我试图找到 opencvl/float_compute 文件夹......但它不存在所以我只是运行我的代码并希望最好,它确实有效。

    所以,我的建议是:

    sudo apt-get update
    sudo apt-get upgrade
    
    sudo apt-get remove dkms --purge  #get rid of dkms/etc..
    
    cd /opt/scripts/tools/
    git pull
    sudo apt-get install initramfs-tools
    

    然后通过在third_party_final() 方法中注释掉update-initramfs -uk ${latest_kernel} 行来编辑update_kernel(只需在行前添加#)。然后做:

    sudo ./update_kernel.sh
    sudo reboot
    

    可能不需要安装 initramfs-tools,但我不确定。我感觉实际的解决方案只是remove dkms 或内核的更新,但同样,不确定。我只能说这样做对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多