Makefile:外部Linuxカーネルモジュールのインストール

Makefile:外部Linuxカーネルモジュールのインストール

私は外部カーネルモジュール用の簡単なMakefileを書いています。

ビルドしてください:

obj-m += usbtherm.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

外部モジュールだけがコンパイルされるので大丈夫です。

しかし、インストールするとき:

install:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install

カーネルソースツリーにすべてのモジュールをインストールしますが、このモジュールをdrivers/usb/misc

だから、次のようにモジュールをインストールします。

install:
    cp $(shell pwd)/usbtherm.ko /lib/modules/$(shell uname -r)/kernel/drivers/usb/misc
    depmod -a

外部モジュールのみを取り付けます。

しかし、それは私にとって非常にエレガントに見えません。私は何を見逃していますか?

ベストアンサー1

sudoでインストールすると

sudo -E make install

外部モジュールのみをインストールし、depmodを再実行しました。

環境保存フラグなしで実行すると、カーネルの更新に使用するカーネルソースツリーに組み込まれているすべてのモジュールが再インストールされます。カーネルツリーを変更するときにsudoを使用すると、PWDを正しく設定できない可能性がありますが、この問題が発生している他の人に役立ちます。

おすすめ記事