【发布时间】:2022-09-23 07:15:48
【问题描述】:
我有一个由一个源文件和两个头文件组成的相机驱动程序。它依赖于 V4L2。 我正在尝试在 Raspberry Pi 4B 上编译此驱动程序并将其添加到我现有的 Raspberry Pi OS 安装中。我正在运行最新的 Lite 版本的 Raspberry Pi OS found here。 Linux 内核版本 5.10.63-v8+。
我已经编译了 .dtbo 并将其添加到 /boot/overlays。
生成文件:
obj-m += ar1335_mcu.o
KDIR = /lib/modules/$(shell uname -r)/build
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean
我运行make 并创建相应的ar1335_mcu.ko。
然后我运行 sudo insmod ar1335_mcu.ko 并出现以下错误:
insmod: ERROR: could not insert module ar1335_mcu.ko: Unknown symbol in module
运行dmesg | tail 显示:
[13375.259670] ar1335_mcu: Unknown symbol v4l2_fwnode_endpoint_parse (err -2)
所以它没有找到 v4l2 函数v4l2_fwnode_endpoint_parse。我该如何解决?我已经完成了sudo apt install libv4l-dev。我的驱动程序模块编译过程中是否缺少步骤?
-
这意味着正在运行的内核不包含驱动程序想要访问的功能。要么你的内核太旧、太新或者补丁太多。你需要了解自己。祝你好运!
标签: linux raspberry-pi driver linux-device-driver v4l2