警告:modules_install:缺少“ System.map”文件。跳过depmod

时间:2019-08-16 08:12:07

标签: makefile linux-kernel kernel-module insmod

我试图使用depmodmodprobe实用程序插入内核模块,以解决所有依赖性。当我构建模块时,它会引发“ 警告:modules_install:缺少'System.map'文件。跳过depmod。

后来,当我尝试执行modprobe时,它抛出一条错误消息: “ modprobe:致命:在目录/lib/modules/4.19.58-v7+中找不到模块i2c_eeprom_client.ko”

以下是我正在使用的Make文件:

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

下面是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+'

我该如何解决此问题?请帮助

平台:Raspberry PI 3b +,Raspbian-Linux 4.19.58-v7 +

1 个答案:

答案 0 :(得分:1)

您可以在depmod步骤之后运行modules_install。另外,更好的做法是将安装与建筑分开,以避免必须使用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

以以下身份调用:

$ make
$ make install