커널 구성에서 활성화된 내장 모듈이 누락되었습니다.

커널 구성에서 활성화된 내장 모듈이 누락되었습니다.

HSR/PRP 모듈을 추가하기 위해 데비안 커널 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

관련 정보