web-dev-qa-db-ja.com

警告:modules_install: 'System.map'ファイルがありません。 depmodをスキップしています

依存関係を解決するために、depmodおよびmodprobeユーティリティを使用してカーネルモジュールを挿入しようとしています。モジュールをビルドすると、「警告:modules_install: 'System.map'ファイルがありません。depmodをスキップしています。 "がスローされます。

そして、後でmodprobeを実行しようとすると、エラーがスローされます"modprobe:FATAL:Module i2c_eeprom_client.ko not found in directory /lib/modules/4.19.58-v7+"

以下は私が使用しているメイクファイルです:

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

そして以下はビルドの出力です:

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 +

3
user11875340

modules_installステップの後にdepmodを実行できます。また、ルート権限でビルドする必要がないように、インストールをビルドから分離することをお勧めします。

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
2
Ian Abbott