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

use*_*340 5 makefile insmod kernel-module linux-kernel

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

以下是构建的输出:

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+'
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?请帮忙

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

Ian*_*ott 8

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
Run Code Online (Sandbox Code Playgroud)

调用为:

$ make
$ make install
Run Code Online (Sandbox Code Playgroud)

  • 我不知道我刚刚做了什么。你能给我更多关于当我像这样修改我的 Makefile 时发生的事情的背景吗?我使用 Vagrant 的 generic/ubuntu2204 创建了一个全新的 libvirt VM,并修改了 `kmod` 项目中的 make 文件以包含 `depmod -A` 并且它有效。https://github.com/orhun/kmon (2认同)