Page 1 of 1

Luckfox Lyra Zero W 无法使用 USB UVC 摄像头

Posted: 2026-03-29 12:17
by shiluo0827
我需要在 Luckfox Lyra Zero W 上使用 USB UVC 摄像头,但内核好像缺少 uvcvideo 模块。能否提供支持 V4L2/UVC 的内核或驱动。

Re: Luckfox Lyra Zero W 无法使用 USB UVC 摄像头

Posted: 2026-03-30 9:35
by Crocodile
您好,使用SDK 执行 ./build.sh kernel-config, 搜索并打开 CONFIG_MEDIA_USB_SUPPORT 和 CONFIG_USB_VIDEO_CLASS,如果可以直接按y选中编译烧录 boot.img即可,如果因为依赖问题只能按 m 选中需要重新编译 rootfs.img (.ko位于系统 /lib/modules)并烧录

Re: Luckfox Lyra Zero W 无法使用 USB UVC 摄像头

Posted: 2026-03-30 14:28
by shiluo0827
我不是专业开发人员,所以不太明白你说的,我使用的ubuntu22.04的镜像烧录到sd卡。
然后在板子上使用
git clone https://github.com/0xd61/luckfox-linux-6.1-rk3506
克隆这个内核,然后根据ai提示输入了以下的命令:

cd ~/linux
make ARCH=arm clean
sudo rm -f /lib/modules/6.1.99/uvcvideo.ko

# 基础配置
make ARCH=arm multi_v7_defconfig

# 打开所有必须依赖(解决 Unknown symbol)
scripts/config --enable CONFIG_THUMB2_KERNEL
scripts/config --enable CONFIG_PREEMPT
scripts/config --enable CONFIG_MEDIA_SUPPORT
scripts/config --enable CONFIG_MEDIA_CAMERA_SUPPORT
scripts/config --enable CONFIG_VIDEO_DEV
scripts/config --enable CONFIG_VIDEO_V4L2
scripts/config --enable CONFIG_VIDEO_V4L2_COMMON
scripts/config --enable CONFIG_VIDEOBUF2_CORE
scripts/config --enable CONFIG_VIDEOBUF2_VMALLOC
scripts/config --enable CONFIG_VIDEOBUF2_DMA_CONTIG
scripts/config --enable CONFIG_MEDIA_USB_SUPPORT
scripts/config --enable CONFIG_USB_VIDEO_CLASS

# 自动跳过配置弹窗(关键)
yes "" | make ARCH=arm olddefconfig

# 编译
yes "" | make ARCH=arm modules_prepare
yes "" | make ARCH=arm modules SUBDIRS=drivers/media/usb/uvc

# 安装
sudo cp drivers/media/usb/uvc/uvcvideo.ko /lib/modules/6.1.99/
sudo depmod -a

# 先加载依赖
sudo modprobe videobuf2_vmalloc
sudo modprobe videobuf2_dma_contig
sudo modprobe videobuf2_core
sudo modprobe v4l2_common

# 最后加载 UVC
sudo insmod /lib/modules/6.1.99/uvcvideo.ko

# 验证
lsmod | grep uvcvideo
ls /dev/video*


最终总是提示这样的内容:
insmod: ERROR: could not insert module /lib/modules/6.1.99/uvcvideo.ko: Unknown symbol in module
ls: cannot access '/dev/video*': No such file or directory


因为ubuntu有git apt等工具,所以选择在ubuntu上尝试解决uvc的问题。

我不知道这个sdk应该从哪里下载。希望能够告诉我大致的方法来解决这个问题。十分感谢!

Re: Luckfox Lyra Zero W 无法使用 USB UVC 摄像头

Posted: 2026-03-31 2:01
by Crocodile
建议您先查看一下 wiki 中的说明 https://wiki.luckfox.com/Luckfox-Lyra, SDK 在网盘中提供,要编译需要在PC环境的ubuntu22.04(windows可以在虚拟机或者WSL下操作),不是在板端上的ubuntu
这里有个内核版本已经开启了UVC支持,但是把大多数的 =m 驱动改成了 =y, 不一定能适配您的rootfs, 可以尝试烧录看看

Re: Luckfox Lyra Zero W 无法使用 USB UVC 摄像头

Posted: 2026-04-02 14:23
by shiluo0827
我再wsl ubuntu 下 将Luckfox_Lyra_Zero_W_MicroSD_250717之中的update.img uboot.img rootfs.img MiniLoaderAll.bin 还有您提供的boot.img
一起放到了~/output/firmware/ 文件夹中,然后使用 ~/.build.sh updateimg命令生成了update.img

并且显示成功了。
Add CRC...
Make firmware OK!
------ OK ------
********rkImageMaker ver 2.23********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!



当我把生成后的~/output/update/Image/update.img文件使用SDDiskTool_v1.78中的SD_Firmware_Tool.exe工具写入到sd卡,也成功了。
但是Luckfox_Lyra_Zero_W板子启动后,还是没有uvc驱动。
root@luckfox:~# ls /dev/video*
ls: /dev/video*: No such file or directory
root@luckfox:~# v4l2-ctl --list-devices
-bash: v4l2-ctl: command not found
root@luckfox:~# lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 005: ID a69c:88dc
Bus 001 Device 002: ID 1a86:8091
Bus 001 Device 003: ID 1bcf:2c46
root@luckfox:~# lsmod | grep uvcvideo
root@luckfox:~# sudo modprobe uvcvideo
-bash: sudo: command not found
root@luckfox:~# modprobe uvcvideo
modprobe: module uvcvideo not found in modules.dep

从Bus 001 Device中看到是有摄像头的,但是还是没有uvc驱动。



另外:
我也试着自己使用Luckfox_Lyra_SDK_250815.tar工具尝试.build.sh 进行设置并编译。
./build.sh lunch 设置完成
./build.sh kernel-config 设置完成
./build.sh buildroot-config 设置完成
最后执行./build.sh 生成了update.img
但是烧录到sd卡,还是没有uvc相关的驱动,摄像头也无法识别出来。

我的uvc摄像头是没有品牌的,但是我的手机MIUI14 android12是可以正常使用的.
最初使用ubuntu的镜像就是因为它本身驱动相对完善,但是因为无法使用uvc摄像头,所以尝试编译内核,但是都失败了。

请问还有什么办法吗?官方的系统有没有驱动比较全面的版本呢?求指教。

Re: Luckfox Lyra Zero W 无法使用 USB UVC 摄像头

Posted: 2026-04-03 7:15
by shiluo0827
找到解决办法了!!!方法是单独编译驱动文件。
在wsl中的ubuntu系统中,到sdk(自行下载对应版本)的内核文件夹,执行以下命令。(前提是已经通过repo安装了sdk,并且安装了全部的依赖,包括Python2)

administrator@PV-X00199943:~/kernel-6.1$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- prepare
SYNC include/config/auto.conf.cmd
CC scripts/mod/empty.o
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
CC scripts/mod/devicetable-offsets.s
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CC arch/arm/kernel/asm-offsets.s
CALL scripts/checksyscalls.sh
administrator@PV-X00199943:~/kernel-6.1$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- modules_prepare
CALL scripts/checksyscalls.sh
LDS scripts/module.lds
administrator@PV-X00199943:~/kernel-6.1$ sed -i 's/# CONFIG_USB_VIDEO_CLASS is not set/CONFIG_USB_VIDEO_CLASS=m/' .config
administrator@PV-X00199943:~/kernel-6.1$ sed -i 's/CONFIG_USB_VIDEO_CLASS=y/CONFIG_USB_VIDEO_CLASS=m/' .config
administrator@PV-X00199943:~/kernel-6.1$ sed -i 's/# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set/CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=m/' .config
administrator@PV-X00199943:~/kernel-6.1$ sed -i 's/# CONFIG_MEDIA_USB_SUPPORT is not set/CONFIG_MEDIA_USB_SUPPORT=y/' .config

administrator@PV-X00199943:~/kernel-6.1$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- olddefconfig
#
# No change to .config
#
administrator@PV-X00199943:~/kernel-6.1$ cat .config | grep USB_VIDEO_CLASS
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
administrator@PV-X00199943:~/kernel-6.1$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- M=drivers/media/usb/uvc uvcvideo.ko
CC [M] drivers/media/usb/uvc/uvc_driver.o
CC [M] drivers/media/usb/uvc/uvc_queue.o
CC [M] drivers/media/usb/uvc/uvc_v4l2.o
CC [M] drivers/media/usb/uvc/uvc_video.o
CC [M] drivers/media/usb/uvc/uvc_ctrl.o
CC [M] drivers/media/usb/uvc/uvc_status.o
CC [M] drivers/media/usb/uvc/uvc_isight.o
CC [M] drivers/media/usb/uvc/uvc_debugfs.o
CC [M] drivers/media/usb/uvc/uvc_metadata.o
CC [M] drivers/media/usb/uvc/uvc_entity.o
LD [M] drivers/media/usb/uvc/uvcvideo.o
make[1]: 'drivers/media/usb/uvc/uvcvideo.mod' is up to date.
MODPOST drivers/media/usb/uvc/Module.symvers
CC [M] drivers/media/usb/uvc/uvcvideo.mod.o
LD [M] drivers/media/usb/uvc/uvcvideo.ko
administrator@PV-X00199943:~/kernel-6.1$ find . -name uvcvideo.ko
# 出现下面内容代表单独的uvc驱动编译成功!
./drivers/media/usb/uvc/uvcvideo.ko
#需要的可以下载此附件,但不保证有效,因为内核版本不一样可能导致此驱动无法使用。
uvcvideo.rar (722.15 KiB)
uvc.ko文件
Downloaded 113 times
#放入到板子驱动的路径
/usr/lib/modules/6.1.99/kernel/drivers/usb/uvc/uvcvideo.ko

#安装驱动
insmod /usr/lib/modules/6.1.99/kernel/drivers/usb/uvc/uvcvideo.ko


#查看驱动
lsmod | grep uvcvideo
#出现下面内容就代表 成功加载!
uvcvideo 114688 0 - Live 0x...

#查看摄像头
ls /dev/video*
#出现 /dev/video0 / /dev/video1 就完全正常了。
#然后就可以使用摄像头了。

#相应地,也可以通过此方式编译其它内核未预先编译的驱动文件。大部分应该是可以正常被驱动起来的。