2014-01-20 5 views
12

hello_world Raspberry Pi에서 C와 Bash를 사용하는 커널 모듈입니다.insmod를 사용하는 중 오류가 발생했습니다. 모듈 hello_world.ko를 삽입 할 수 없습니다. 모듈 형식이 잘못되었습니다.

hello_world.ko 파일을 생성하는 데 make 명령을 성공적으로 사용했습니다. 나는 insmod hello_world.ko 명령을 사용하려고하면

그러나, 나는 다음과 같은 오류가 발생합니다 :

Error: could not insert module hello_world.ko: Invalid module format

나는 Raspberry Pi forum에 설명 된 단계를 수행했지만, 나는 많은 행운을 가지고 있지 않았다.

내 커널과 Linux 헤더 사이의 버전이 일치하지 않기 때문일 수 있습니다. 이 과정에서이 헤더가 어떤 역할을하며 커널과 일치하는 버전을 얻으려면 어떻게해야합니까?

답변

6

헤더 파일은 사용자 공간과 커널 간의 인터페이스뿐만 아니라 모듈과 커널 간의 인터페이스를 정의합니다. 커널 버전과 헤더 파일이 일치하지 않으면 예상대로 모듈이 작동하지 않습니다. 일반적으로 현재 헤더 파일은 저장소에서 사용할 수 있습니다. 당신은하여 현재 실행중인 커널을 확인할 수 있습니다 : 나중에 리눅스 헤더에 대한 귀하의 repo를 확인

 uname -r 

:

sudo apt-cache search linux-headers 

및 설치합니다.