¿Por qué un controlador de dispositivo I2C no aparece en /sys/bus/i2c/drivers?

¿Por qué un controlador de dispositivo I2C no aparece en /sys/bus/i2c/drivers?

A partir de una imagen ubuntu-18.04.2-preinstalled-server-arm64+raspi3.img.xz (https://wiki.ubuntu.com/ARM/RaspberryPi) Estoy intentando agregar el controlador I2C ad525x_dpot que no se habilitó durante la compilación del kernel.

Tomé ad525x_dpot.c, ad525x_dpot.hde ad525x_dpot-i2c.cla fuente de Linux correspondiente para crear un paquete 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"

Archivo Make:

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

El módulo ad525x_dpotse puede cargar modprobey se muestra en lsmodpero no en /sys/bus/i2c/drivers. Hay algunas advertencias en syslog.

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

¿Por qué no aparece /sys/bus/i2c/drivers?

Intenté cargar un módulo de kernel similar ad799xque viene con el kernel. Aparece en /sys/bus/i2c/drivers/ad799x(no hay dispositivos definidos para usar ad799x, por lo que no está relacionado con el árbol de dispositivos ni con la configuración de la placa).

Respuesta1

Tuve que dividirlo ad525x_dpot.oen ad525x_dpot-i2c.odos paquetes DKMS para tener dos módulos de kernel separados.

información relacionada