Debian

缺少在核心配置中啟用的內置模組

  • August 12, 2021

我配置了一個 debian 核心 5.10.57 來添加 HSR/PRP 模組。我將其啟用為內置<*>. make deb-pkg然後我分別使用和編譯並安裝了核心dpkg -i *.deb

新核心正在執行。

debian@debian:~$ uname -r
5.10.57

HSR/PRP 模組路徑在 builtin.modules 文件中:

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$

這是我的問題:

  • 內置模組是否需要 .ko 文件位於/lib/modules/5.10.57/modules.builtin要載入的文件所需的路徑中?
  • 如果是,我怎樣才能生成或找到hsr.ko我需要的文件?

由於您將驅動程序配置為內置而不是模組(<M>在核心配置中),因此它是核心二進製文件(bzImage等)的一部分。每當啟動特定的核心二進製文件時,它將始終被“載入”。

您不會將其視為單獨的.ko文件,也無法強制.ko建構該文件。

引用自:https://unix.stackexchange.com/questions/664369