树莓派4B+新版系统debian10以上,找回摄像头驱动以及raspistill命令

背景

在安装了官网上的image软件,

安装了推荐的最新版树莓派系统后,

在raspi-config启用摄像头后,执行vcgencmd_camera检测摄像头发现

supported=1 detected=0 libcamera interfaces=1

摄像头识别结果一直是detected=0,但是在执行libcamera 相关命令也能成功调用摄像头,如

libcamera-hello
ibcamera-still -e png -o test.png
libcamera-jpeg -o test.jpg

这几个都正常使用,但是无论尝试网上什么方法,都无法解决 detected=0的问题,导致在使用OpenCV调用摄像头时一直出错,在/etc/module中添加bcm2835-4vl2也不行,由于是新版系统,官方推荐使用libcamera,raspistill 指令已被废弃, 无法使用。

目前就陷入了一个很尴尬的局面,明明摄像头能被libcamera调用,但是就是无法检测出来。再三尝试无果,只好想到重装系统。

解决方法

但重装系统过程中,我下载了如下所示的系统版本,

烧录到sd卡开机后,发现提示

start4.elf: is not compatible
This board requires newer software...


图是我偷的,我这里提示的是start4.elf: is not compatible
意思是到指定网址下载最新系统,然后重新烧录进去,但这样不就又回去了吗…
后来看了这篇博客,发现了一个无需完全重装,只需将当前sd卡中的start4.elf与fixup4.dat用最新系统下的同名文件进行替换即可。(注意提前备份)

替换后成功开机了,但我重新在设置中配置摄像头,系统重启后,又提示start4x.elf: is not compatible
This board requires newer software…

后来索性把所有start*.elf和fixup*.dat全部替换了(同样记得先备份一份),然后重启了几次也能正常开机,应该是解决问题了。

在这个版本的系统下,再次调用vcgencmd_camera检测摄像头发现

supported=1 detected=1 libcamera interfaces=0

虽然libcamera interfaces=0,但是由于libcamera目前实在是太难用了,libcamera只能提供几个简单的命令,而网上能找到的cv2代码基本是用不了的,还是用raspistill更好。然后尝试使用raspistill指令,直接成功。

raspistill-o image.jpg

至此解决了问题,告别了libcamera。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年9月1日
下一篇 2023年9月1日

相关推荐