내 시스템(Debian 9) 부팅 시 사용자 정의 커널 모듈을 로드하고 싶습니다. 모듈의 vermagic 문자열이 내 커널 버전과 정확히 일치하지 않지만 modprobe -f module_name
또는를 사용하여 로드 할 수 insmod -f /path/to/module
있으며 제대로 작동하는 것 같습니다.
모듈 이름만 추가하면 /etc/modules-load.d/modules.conf
작동하지 않습니다. 모듈을 로드하려고 할 때 systemctl에서 systemd-modules-load.service 오류가 표시됩니다.
systemd에게 모듈을 강제로 로드하도록 지시할 수 있나요?
답변1
/etc/modprobe.d
예를 들어, 의 구성 파일을 사용하여 설치 동작을 재정의할 수 있어야 합니다 /etc/modprobe.d/module_name.conf
.
install module_name /sbin/modprobe -i -f module_name
/sbin/modprobe -i -f module_name
이는 설치 요청이 있을 때 모듈 로딩 코드가 실행되도록 지시합니다 module_name
. -i
처리하는 동안 지시문을 modprobe
무시하도록 지시합니다 install
(그렇지 않으면 루프가 발생합니다).
답변2
다음 단계를 따라야 합니다.
/etc/modules-load.d/에 module_name.conf를 추가합니다.
module_name.conf 파일에는 로드할 커널 모듈 이름 목록만 포함되어야 하며 줄바꿈으로 구분되어야 합니다./etc/modprobe.d/에 다른 module_name.conf를 추가합니다.
이 파일의 내용은 다음과 같습니다.
install module_name /sbin/modprobe -i -f module_name
module_name 설치가 요청되면 모듈 로딩 코드에 /sbin/modprobe -i -f module_name을 실행하도록 지시합니다.module_name.ko를 /lib/modules/$(uname -r)/kernel/drivers/net/에 추가합니다
. 사용자 정의 커널 모듈 파일을 /lib/modules/$(uname -r)/kernel/drivers/xxx/에 넣을 수 있습니다.sudo depmod -a는
커널의 모든 모듈을 철저하게 조사하고 검사합니다.재시작
lsmod | grep module_name
로드된 사용자 정의 커널 모듈을 찾을 수 있습니다.