為什麼 I2C 裝置驅動程式沒有出現在 /sys/bus/i2c/drivers 中?

為什麼 I2C 裝置驅動程式沒有出現在 /sys/bus/i2c/drivers 中?

從映像 ubuntu-18.04.2-preinstalled-server-arm64+raspi3.img.xz 啟動(https://wiki.ubuntu.com/ARM/RaspberryPi)我正在嘗試添加在構建內核期間未啟用的 ad525x_dpot I2C 驅動程式。

我已經從相應的 linux 來源中獲取了ad525x_dpot.c, ad525x_dpot.h,ad525x_dpot-i2c.c來製作 DKMS 包。

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,因此它與設備樹或板配置無關)。

答案1

必須將ad525x_dpot.oad525x_dpot-i2c.o分成兩個 DKMS 套件才能擁有兩個單獨的核心模組。

相關內容