《米联客 LS03 USB 摄像头方案:龙芯 2K301 内核 UVC 驱动配置与 QT 显示实战》

《米联客 LS03 USB 摄像头方案:龙芯 2K301 内核 UVC 驱动配置与 QT 显示实战》

前言

视觉采集是嵌入式智能设备的核心功能,USB UVC 协议摄像头因免驱、兼容性好,在国产龙芯平台上被广泛使用。但米联客 LS03 的默认内核通常未开启 UVC 驱动支持,需要手动配置编译,再配合 QT 实现画面显示。

本文基于米联客 LS03 开发板(龙芯 2K301 主控),完整讲解内核 UVC 驱动开启、QT 摄像头程序交叉编译、屏幕显示调试的全流程。

一、前置条件

  • 米联客 LS03 开发板,运行 LoongOS 系统(自带 OpenCV 库)
  • 符合 UVC 协议的 USB 摄像头
  • 龙芯 2K301 内核源码与交叉编译环境
  • QT 交叉编译工具链(龙芯 LoongArch 版本)

二、内核开启 UVC 摄像头驱动

1. 进入内核配置界面

在内核源码目录执行配置脚本,进入图形化配置:

make kernel menuconfig.sh
2. 开启多媒体与 UVC 支持

按以下路径逐层勾选驱动,全部编译进内核(标记为*):

  1. 进入Device Drivers → Multimedia support

    • 按空格选中Multimedia support
    • 进入子菜单,勾选Cameras/video grabbers support
  2. 进入Media USB Adapters

    • 勾选Media USB Adapters
    • 勾选USB Video Class (UVC)
    • 可选勾选UVC input events device support

配置完成后保存退出,重新编译内核:

# 执行内核编译脚本 make kernel

编译完成后,新内核镜像vmlinuz生成在boards/ls2k301/目录下,替换 LS03 开发板原有内核文件。

三、硬件连接与驱动验证

1. 设备接入

将 USB 摄像头插入 LS03 开发板 USB 主机接口,执行以下命令验证驱动加载:

# 查看视频设备节点 ls /dev/video* # 查看内核识别日志 dmesg | grep -i "uvc\|video"

正常情况下会输出类似信息,代表摄像头被 UVC 驱动成功识别:

input: UNIQUESKY CAR CAMERA: Integrate as /devices/platform/soc/16080.ehci/usb2/2-1/2-1.2/2-1.2:1.0/input/input1

四、QT 摄像头采集程序编译

米联客提供配套的CameraDemoQT 演示工程,以下是交叉编译步骤:

1. 源码准备

CameraDemo.tar.gz解压到 QT 工作目录:

tar -zxvf CameraDemo.tar.gz cd CameraDemo

2. 加载 QT 交叉编译环境

source /home/uisrc/uisrc-lab-ls2k301/qt/script/environment-setup-loongarch64-Loongson-linux
3. 修正编译参数

-mtune=la264是针对更高规格龙芯架构的优化参数,2K301 不支持该选项,会导致编译报错,需手动移除 Makefile 中的对应参数:

make clean sed -i 's/-mtune=la264//g' Makefile

4. 执行编译

make

编译完成后生成可执行文件CameraDemo

五、开发板运行与显示测试

1. 程序移植

将编译好的CameraDemo可执行文件拷贝到 LS03 开发板文件系统中,添加执行权限:

chmod +x CameraDemo
2. 配置 QT 显示环境

米联客 LS03 默认使用 framebuffer 显示,需设置 QT 平台插件:

export QT_QPA_PLATFORM="linuxfb:fb=/dev/fb0"

3. 运行程序

./CameraDemo

程序启动后,屏幕将实时显示摄像头采集的画面,代表 UVC 驱动与 QT 显示链路全部调通。

六、常见问题排查

  1. 无 /dev/video 设备节点:确认内核 UVC 驱动已编译进内核,摄像头符合 UVC 协议,可换 USB 口重试
  2. QT 编译报错:检查交叉编译环境是否正确加载,确认已移除-mtune=la264参数
  3. 运行黑屏无画面:检查QT_QPA_PLATFORM环境变量是否正确,确认 /dev/fb0 设备存在
  4. 画面卡顿:可降低摄像头分辨率与帧率,或开启硬件加速

总结

米联客 LS03 平台 USB 摄像头方案的核心是内核 UVC 驱动适配QT 显示环境配置。只要内核驱动开启正确,绝大多数标准 UVC 摄像头都可直接使用,配合 OpenCV 还能进一步实现人脸识别、目标检测等 AI 功能。