NXP i.MX6 linux内核配置USB摄像头驱动

项目场景:

在眺望电子TW-IMX6DL-EVM开发板上出厂内核镜像默认未配置USB摄像头驱动,需要在内核中添加UVC驱动。。

编译环境及开发包: 主机:ubuntu18.04
交叉编译器:arm-linux-gnueabihf-gcc
开发板:TW-IMX6DL-EVM
Linux:Linux-4.1.15

注意:本文章的所有命令涉及到的路径均为眺望电子官方环境路径,需根据自身实际环境改变。本文所演示的平台来自于眺望电子 iMX6 ARM嵌入式平台,这是一个基于NXP iMX6 ARM处理器,支持单核/双核Cortex-A9的核心板。


解决方案:

1.摄像头驱动配置

USB摄像头驱动目录为drivers/media/usb/uvc。运行内核源码编译脚本build.sh,在弹出的menuconfig界面作如图1所示的配置,然后保存退出编译内核。
menuconfig
将生成的固件烧写进开发板并重启,可使用uname -a查看固件生成的时间是否正确,以确保烧写成功。

2.查看usb摄像头

使用lsusb查看当前系统中的usb设备:

root@imx6dlsabresd:~# lsusb
Bus 001 Device 003: ID 0bda:8179
Bus 001 Device 005: ID 05a3:9230                                      #摄像头
Bus 001 Device 002: ID 0424:2514
Bus 001 Device 001: ID 1d6b:0002

如果usb uvc驱动加载成功的话,当插入usb摄像头时,系统会打印类似如下:

root@imx6dlsabresd:~# usb 1-1.2: new high-speed USB device number 4 using ci_hdrc
uvcvideo: Found UVC 1.00 device USB 2.0 Camera (05a3:9230)
input: USB 2.0 Camera as /devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.2/1-1.2:1.0/input/input1
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)

3.测试

使用v4l2.usb.tar.bz2测试程序进行测试。压缩包在目录 /软件工具/v4l2.usb.tar.bz2,将压缩包拷贝到虚拟机中解压,在该文件夹中执行make进行编译。

## 解压该压缩包并进入
twdz@ubuntu:~/ tar -xf v4l2.usb.tar.bz2
twdz@ubuntu:~/ cd v4l2.usb

## source交叉编译链的环境变量
twdz@ubuntu:~/ source /opt/fsl-imx-fb/4.1.15-2.0.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

## 执行make进行编译
twdz@ubuntu: ~/v4l2.usb$  make
rm -f mxc_v4l2_tvin *.o
arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=/opt/fsl-imx-fb/4.1.15-2.0.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi -O2 -pipe -g -feliminate-unused-debug-types -c -o mxc_v4l2_tvin.o mxc_v4l2_tvin.c
arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/fsl-imx-fb/4.1.15-2.0.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi -O2 -pipe -g -feliminate-unused-debug-types -o mxc_v4l2_tvin mxc_v4l2_tvin.o

查看/dev目录下新增的video设备,在此是/dev/video2

root@imx6dlsabresd:~# ls /dev/video*

将生成的mxc_v4l2_tvin二进制文件复制进开发板。执行如下命令测试:

root@imx6dlsabresd:~# ./mxc_v4l2_tvin -ow 800 -oh 480 -x 2 &

注:-ow设置宽度,-oh设置高度,-x 2指设置显示设备/dev/video2

如果新增设备为/dev/video3,则应该改为

root@imx6dlsabresd:~# ./mxc_v4l2_tvin -ow 800 -oh 480 -x 3 &
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

眺望电子-ARM嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值