부팅 시 커널 모듈을 강제로 로드하는 방법(modprobe -f)?

부팅 시 커널 모듈을 강제로 로드하는 방법(modprobe -f)?

내 시스템(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

다음 단계를 따라야 합니다.

  1. /etc/modules-load.d/에 module_name.conf를 추가합니다.
    module_name.conf 파일에는 로드할 커널 모듈 이름 목록만 포함되어야 하며 줄바꿈으로 구분되어야 합니다.

  2. /etc/modprobe.d/에 다른 module_name.conf를 추가합니다.
    이 파일의 내용은 다음과 같습니다.
    install module_name /sbin/modprobe -i -f module_name
    module_name 설치가 요청되면 모듈 로딩 코드에 /sbin/modprobe -i -f module_name을 실행하도록 지시합니다.

  3. module_name.ko를 /lib/modules/$(uname -r)/kernel/drivers/net/에 추가합니다
    . 사용자 정의 커널 모듈 파일을 /lib/modules/$(uname -r)/kernel/drivers/xxx/에 넣을 수 있습니다.

  4. sudo depmod -a는
    커널의 모든 모듈을 철저하게 조사하고 검사합니다.

  5. 재시작

  6. lsmod | grep module_name
    로드된 사용자 정의 커널 모듈을 찾을 수 있습니다.

관련 정보