Por que um driver de dispositivo I2C não aparece em /sys/bus/i2c/drivers?

Por que um driver de dispositivo I2C não aparece em /sys/bus/i2c/drivers?

Começando a partir de uma imagem ubuntu-18.04.2-preinstalled-server-arm64+raspi3.img.xz (https://wiki.ubuntu.com/ARM/RaspberryPi) Estou tentando adicionar o driver ad525x_dpot I2C que não foi habilitado durante a construção do kernel.

Peguei ad525x_dpot.c, ad525x_dpot.h, ad525x_dpot-i2c.cda fonte Linux correspondente para criar um pacote 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"

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

O módulo ad525x_dpotpode ser carregado por modprobee aparece, lsmodmas não em /sys/bus/i2c/drivers. Existem alguns avisos no syslog.

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

Por que não aparece /sys/bus/i2c/drivers?

Tentei carregar um módulo de kernel semelhante ad799xque vem com o kernel. Ele aparece em /sys/bus/i2c/drivers/ad799x(nenhum dispositivo está definido para usar o ad799x, portanto não está relacionado à árvore de dispositivos ou à configuração da placa).

Responder1

Tive que dividir ad525x_dpot.oem ad525x_dpot-i2c.odois pacotes DKMS para ter dois módulos de kernel separados.

informação relacionada