커널 부팅중 모듈을 insmod하다가 invalid module 이슈 발생
no symbol version for module_layout
insmod: can't insert '어쩌구저쩌구.ko': invalid module
1. 문제 원인
원인을 찾아보니 커널 버전과 모듈 버전이 맞지 않아 발생한다고 함
그래서 버전 확인해 보니
모듈 버전
$ modinfo 어쩌고저쩌고.ko
vermagic: 4.1.20-1.2 SMP mod_unload modversions ARMv7 p2v8
커널버전
$ uname -r
4.1.20-1.2
$ uname -a
Linux (humax-stb) 4.1.20-1.2 #6 SMP Wed Dec 21 17:49:54 KST 2016 armv7l GNU/Linux
얼핏 보면 같아 보이지만 사실 버전 뒷부분의 정보가 다르다.
2. 문제 해결
이럴 경우 kernel config를 수정하여 해결할 수 있다.
Automatically append version information to the version string 옵션을 꺼서 해결해 주면된다.
커널 config 수정하자!
$ make menuconfig
General setup 메뉴에서 Automatically append version information to the version string 항목 앞에 체크를 풀어 주자.
저장은 아래 Save로 저장 후 Exit로 나가면 된다.
수정 후 다시 빌드 하면 정상 동작하는 것을 확인할 수 있다.