カーネル構成で有効になっている組み込みモジュールがありません。

カーネル構成で有効になっている組み込みモジュールがありません。

HSR / PRPモジュールを追加するためにDebianカーネル5.10.57を設定しました。私はそれを組み込みとして活性化しました<*>。その後、別々にmake deb-pkgカーネルをコンパイルしてインストールしましたdpkg -i *.deb

新しいカーネルが実行中です。

debian@debian:~$ uname -r
5.10.57

HSR / PRPモジュールパスは組み込み.モジュールファイルにあります。

debian@debian:~$ cat /lib/modules/5.10.57/modules.builtin |grep hsr
kernel/net/hsr/hsr.ko

ただし、hsrディレクトリ(および.koファイル)は存在しません。

debian@debian:~$ ls /lib/modules/5.10.57/kernel/net/ |grep hsr
debian@debian:~$

したがって、モジュールはロードされません。

debian@debian:~$ lsmod |grep hsr
debian@debian:~$

/usr/src/linux-5.10.57/コンパイルされたカーネルを含むフォルダには、hsr設定ファイルがすべてここにあります。


debian@debian:~$ ls /usr/src/linux-5.10.57/net/hsr/
hsr_debugfs.c  hsr_forward.c   hsr_framereg.h  hsr_netlink.c  hsr_slave.h
hsr_device.c   hsr_forward.h   hsr_main.c      hsr_netlink.h  Kconfig
hsr_device.h   hsr_framereg.c  hsr_main.h      hsr_slave.c    Makefile
debian@debian:~$

.koファイルをビルドするためにいくつかのコマンドを試しましたが、何も機能しません。

debian@debian:/usr/src/linux-5.10.57/net/hsr$ make
make: *** No targets.  Stop.
debian@debian:/usr/src/linux-5.10.57/net/hsr$
debian@debian:/usr/src/linux-5.10.57/net/hsr$ make install
make: *** No rule to make target 'install'.  Stop.
debian@debian:/usr/src/linux-5.10.57/net/hsr$
debian@debian:/usr/src/linux-5.10.57/net/hsr$ make modules
make: *** No rule to make target 'modules'.  Stop.
debian@debian:/usr/src/linux-5.10.57/net/hsr$
debian@debian:/usr/src/linux-5.10.57/net/hsr$ make modules_install
make: *** No rule to make target 'modules_install'.  Stop.

Makefileに何があるか知りたい場合:

debian@debian:/usr/src/linux-5.10.57/net/hsr$ cat Makefile
# SPDX-License-Identifier: GPL-2.0-only
#
# Makefile for HSR
#

obj-$(CONFIG_HSR)       += hsr.o

hsr-y                   := hsr_main.o hsr_framereg.o hsr_device.o \
                           hsr_netlink.o hsr_slave.o hsr_forward.o
hsr-$(CONFIG_DEBUG_FS) += hsr_debugfs.o
debian@debian:/usr/src/linux-5.10.57/net/hsr$

私の質問は次のとおりです。

  • /lib/modules/5.10.57/modules.builtin組み込みモジュールでは、ロードされるファイルに必要なパスに.koファイルが必要ですか?

  • それでは、hsr.ko必要なファイルをどのように生成または検索できますか?

答え1

ドライバをモジュールではなく組み込みドライバとして設定したため(カーネル<M>構成では)、これはbzImageカーネルバイナリの一部です(など)。特定のカーネルバイナリが起動されるたびに常に「ロード」されます。

別のファイルとして見ることも、強制的にビルドする.koこともできません。.ko

関連情報