Warum wird ein I2C-Gerätetreiber nicht in /sys/bus/i2c/drivers angezeigt?

Warum wird ein I2C-Gerätetreiber nicht in /sys/bus/i2c/drivers angezeigt?

Ausgehend von einem Image ubuntu-18.04.2-preinstalled-server-arm64+raspi3.img.xz (https://wiki.ubuntu.com/ARM/RaspberryPi) Ich versuche, den ad525x_dpot I2C-Treiber hinzuzufügen, der beim Erstellen des Kernels nicht aktiviert wurde.

Ich habe ad525x_dpot.c, ad525x_dpot.h, ad525x_dpot-i2c.caus der entsprechenden Linux-Quelle genommen, um ein DKMS-Paket zu erstellen.

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"

Makefile:

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

Das Modul ad525x_dpotkann von geladen werden modprobeund wird in angezeigt, lsmodaber nicht in /sys/bus/i2c/drivers. Es gibt einige Warnungen im Syslog.

ad525x_dpot: loading out-of-tree module taints kernel.
ad525x_dpot: module verification failed: signature and/or required key missing - tainting kernel

Warum wird es nicht in angezeigt /sys/bus/i2c/drivers?

Ich habe versucht, ein ähnliches Kernelmodul zu laden ad799x, das mit dem Kernel geliefert wird. Es erscheint in /sys/bus/i2c/drivers/ad799x(es sind keine Geräte zur Verwendung von definiert ad799x, es hat also keinen Bezug zum Gerätebaum oder zur Boardkonfiguration).

Antwort1

Musste in zwei DKMS-Pakete aufgeteilt werden, ad525x_dpot.oum ad525x_dpot-i2c.ozwei separate Kernelmodule zu haben.

verwandte Informationen