为什么即使有驱动程序的内核模块,我的相机也无法工作?

为什么即使有驱动程序的内核模块,我的相机也无法工作?

我有一台联想 Miix 510。那台机器有一个 ov2680 CMOS 传感器其中一个摄像头。Linux 内核中的 ov2680.c一段时间后,这肯定会转化为我可以找到的驱动程序:

djrscally@valhalla:/lib/modules/5.4.0-37-generic$ find . -name *2680*
./kernel/drivers/media/i2c/ov2680.ko

甚至 modprobe 和 lsmod 也成功:

djrscally@valhalla:/lib/modules/5.4.0-37-generic$ sudo modprobe ov2680
djrscally@valhalla:/lib/modules/5.4.0-37-generic$ lsmod | grep ov2680
ov2680                 24576  0
videodev              184320  1 ov2680
mc                     40960  2 videodev,ov2680

这会转换为/sys/bus/i2c/devices/i2c-OVTI2680:00目录。所以它至少部分工作正常……但据我所知,它从未真正抓取设备。例如,dmesg | grep ov2680它什么都不返回,启动 Cheese 只会告诉我“播放网络摄像头的视频时出错”。

发生了什么事?设备有驱动程序,但为什么无法运行?

答案1

您是否有“访问权限”(文件权限类型的“访问权限”)/dev/video

ls -l /dev/video

将向您展示。

sudo adduser $USER $(stat -G /dev/video)

然后按注销/登录将为您提供“组”访问权限/dev/video

答案2

答案:现有的驱动程序不是为 x86 平台设计的,并且旨在通过 i2c 匹配来发现,因此该设备从未与驱动程序配对。设备的 sysfs 目录不是由驱动程序创建的;只是由子系统按照 ACPI 的指令创建的。

更改驱动程序以执行 ACPI 匹配可以找到它,但它目前还不能作为驱动程序发挥作用。

相关内容