从图像 ubuntu-18.04.2-preinstalled-server-arm64+raspi3.img.xz ( https://wiki.ubuntu.com/ARM/RaspberryPi ) 我正在尝试添加未启用的 ad525x_dpot I2C 驱动程序在内核构建期间。
我已经从相应的 linux 源中获取 , 来制作 DKMS包ad525x_dpot.c
。ad525x_dpot.h
ad525x_dpot-i2c.c
dkms.conf:
PACKAGE_NAME="ad525x_dpot"
PACKAGE_VERSION="0.10"
MAKE[0]="make all KVERSION=$kernelver"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="ad525x_dpot"
DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"
AUTOINSTALL="yes"
生成文件:
obj-m := ad525x_dpot.o ad525x_dpot-i2c.o
KVERSION := $(shell uname -r)
all:
$(MAKE) -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
$(MAKE) -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
该模块ad525x_dpot
可以加载modprobe
,它显示在lsmod
但不显示在/sys/bus/i2c/drivers
. 系统日志中有一些警告。
ad525x_dpot: loading out-of-tree module taints kernel.
ad525x_dpot: module verification failed: signature and/or required key missing - tainting kernel
为什么不显示/sys/bus/i2c/drivers
?
我试图加载内核ad799x
附带的类似内核模块。它出现在/sys/bus/i2c/drivers/ad799x
(没有设备被定义为使用ad799x
,因此它与设备树或板配置无关)。
必须拆分
ad525x_dpot.o
并ad525x_dpot-i2c.o
分成两个 DKMS 包以拥有两个单独的内核模块。