![insmod: 잘못된 모듈 형식 - 버전 비호환성 또는 강제를 확인하는 방법은 무엇입니까?](https://linux55.com/image/120229/insmod%3A%20%EC%9E%98%EB%AA%BB%EB%90%9C%20%EB%AA%A8%EB%93%88%20%ED%98%95%EC%8B%9D%20-%20%EB%B2%84%EC%A0%84%20%EB%B9%84%ED%98%B8%ED%99%98%EC%84%B1%20%EB%98%90%EB%8A%94%20%EA%B0%95%EC%A0%9C%EB%A5%BC%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
저는 맞춤형 커널(4.8.15-rt10)을 실행 중이고 동일한 .config를 사용하여 정확히 동일한 커널에 구축된 모듈을 얻었습니다(모든 것을 제공했습니다). insmod를 사용하여 모듈을 삽입하면 "잘못된 모듈 형식" 오류가 발생합니다. 따라서 첫 번째 경향은 잘못된 커널 버전입니다. 다음은 modinfo와 다음을 비교한 것입니다 uname -a
.
uname -a ==> 4.8.15-rt10 #5 SMP PREEMPT RT Mon Oct 23 10:57:27 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
modinfo ==> vermagic: 4.8.15-rt10 SMP preempt mod_unload
내가 아는 한 그것은 동일한 커널인데, 내가 무엇을 놓치고 있는 걸까요? modprobe --force를 사용하여 강제로 적용할 수 있다는 내용을 읽었는데 어떻게든 depmod를 먼저 사용해야 합니까?
감사해요
산출:
user@user:/usr/src/linux-4.8.15-rt10$ cat .config | grep 'CONFIG_PREEMPT'
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_LAZY=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT__LL is not set
# CONFIG_PREEMPT_RTB is not set
CONFIG_PREEMPT_RT_FULL=y
CONFIG_PREEMPT_COUNT=y
# CONFIG_PREEMPT_TRACER is not set