RK3588搭配使用美乐威M.2采集卡模块

使用的RK3588开发板

RK3588 四核A76&四核A76
IDO-EVB3588_深圳触觉智能科技有限公司 (industio.cn)
icon-default.png?t=N7T8http://www.industio.cn/product-item-55.html

使用的采集卡

Eco Capture Dual SDI M.2 - 美乐威 (magewell.com)icon-default.png?t=N7T8https://cn.magewell.com/products/eco-capture-dual-sdi-m2

板子与采集卡的接口是M.2,板子烧录的Ubuntu 20系统,内核版本5.10.110.

从美乐威官网找到采集卡的驱动,ARM64位的在Jetson TX2这一栏,目前最新的是V1.4.227,我当时用的是V1.4.187版本。

RK3588搭配使用美乐威M.2采集卡模块_第1张图片

将驱动文件拷到RK3588开发板上,将驱动文件解压后,可以看到里面有install.sh文件,确保其具有可执行权限后,通过终端运行install.sh。

正常情况下,安装成功,采集卡就可以用了,but,总会有些异常问题,我就遇到了。

运行install.sh后报错了,提示需要kernel-dev,查看了下我的/lib/modules发现是空的,因为没有安装内核模块。

百度了说是需要安装linux-headers,然后就试着安装一下。

sudo apt install linux-headers-$(uname -r)

然后提示"unable to locate package linux-headers-5.10.110"。

搜了下,这是因为我的linux kernel不是公版Ubuntu自带的,属于自定义的kernel,所以找不到。

当然这时候我也试了从网上找一些现成的linux-header包直接安装

参考:https://blog.csdn.net/krokodil98/article/details/113389122

可惜没有解决我的问题,于是继续查原因。

问了下开发板厂家技术,结果跟我说他也不知道咋搞。。。

去咨询美乐威技术,说是可以重新编译内核安装,于是我就试着下了个linux-kernel源码,一顿编译并安装后,再次执行install.sh出现不一样的错误了。。。

好在还是有进展的,把报错的log发给美乐威技术,说是当前所用的内核和编译驱动所用的配置不一样。这么说我心里就有底了,感觉应该是可行的,毕竟之前只是抱着试试的态度,用的默认配置就开搞了。

接下来就简单了,把SDK里关于Kernel的config文件拷出来,放到源码里然后再次编译安装,结束后再次执行install.sh,结果,又报错了,又是不一样的错误“use symbol kernel write from namespace VFS***”。不过这次是采集卡驱动的问题了,在driver/EcoCapture/pci-main.c的最后一行添加下面这一句

MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

然后再执行install.sh,一气呵成,接入SDI视频,有图像了,大功告成。

备注:

1.linux源码用的瑞芯微的https://github.com/rockchip-linux/kernel

2.如果有现成匹配的linux-header包直接安装也是可以解决的,firefly家就提供了匹配的linux-headers可下载,里面的.deb包安装完就好了,只能说没有对比就没有伤害

3.再有就是后面的源码编译,我是直接在RK3588上编译的,需要安装gcc,make,bison,flex,libxssl-dev(真是凶残,不过不用交叉编译器了)

你可能感兴趣的:(Linux,c语言,c++,linux)