无法从beaglebone运行OpenCV代码

时间:2016-02-08 07:25:20

标签: c++ opencv beagleboneblack

我正在尝试使用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错误:init:无法打开/ dev / cmem:'没有这样的文件或   目录“

     

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

     

以root命令运行的命令将安装cmemk和   允许OpenCL正常进行。

     

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

我不知道为什么我会这样做,而且我已经几天都无法解决它了。请引导我走向正确的方向。

此致

1 个答案:

答案 0 :(得分: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在最后一次更新-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

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

sudo ./update_kernel.sh
sudo reboot

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