J'essaie d'insérer un module de noyau en utilisant les utilitaires depmod
et modprobe
afin de résoudre les dépendances. Lorsque je crée le module, il lance "Avertissement: modules_install: fichier 'System.map' manquant. Ignorer depmod."
Et plus tard, lorsque j'essaie d'exécuter modprobe
, il génère une erreur indiquant "modprobe: FATAL: Module i2c_eeprom_client.ko introuvable dans le répertoire /lib/modules/4.19.58-v7+"
Ci-dessous le fichier make que j'utilise:
obj-m += i2c_eeprom_client.o
KDIR = /lib/modules/$(Shell uname -r)/build
all:
make -C /lib/modules/$(Shell uname -r)/build M=$(PWD) modules
make -C $(KDIR) M=$(PWD) modules_install
clean:
make -C /lib/modules/$(Shell uname -r)/build M=$(PWD) clean
Et ci-dessous est la sortie de build:
make -C /lib/modules/4.19.58-v7+/build M=/home/pi/work/eeprom modules
make[1]: Entering directory '/usr/src/linux-headers-4.19.58-v7+'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-4.19.58-v7+'
make -C /lib/modules/4.19.58-v7+/build M=/home/pi/work/eeprom
modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.19.58-v7+'
INSTALL /home/pi/work/eeprom/i2c_eeprom_client.ko
DEPMOD 4.19.58-v7+
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-4.19.58-v7+'
Comment puis-je résoudre ce problème? Veuillez aider
Plate-forme: Raspberry Pi 3b +, Raspbian - linux 4.19.58-v7 +
Vous pouvez exécuter depmod
après le modules_install
étape. En outre, il est préférable de séparer l'installation du bâtiment pour éviter d'avoir à créer avec les privilèges root:
obj-m += i2c_eeprom_client.o
# Default to running kernel's build directory if KDIR not set externally
KDIR ?= "/lib/modules/$(Shell uname -r)/build"
all:
$(MAKE) -C "$(KDIR)" M="$(CURDIR)" modules
install:
$(MAKE) -C "$(KDIR)" M="$(CURDIR)" modules_install
depmod -A
clean:
$(MAKE) -C "$(KDIR)" M="$(CURDIR)" clean
Invoquer en tant que:
$ make
$ make install