샘플 장치 드라이버 빌드 오류: insmod 모듈 형식이 잘못되었습니다.

샘플 장치 드라이버 빌드 오류: insmod 모듈 형식이 잘못되었습니다.

@튜토리얼을 따라하고 있어요http://www.embeddedsystemonline.com/home/embedded-system/embedded_linux/lab3-linux-device-driver

이 튜토리얼의 7단계에서는

$ cd /usr/src/kernels/linux-2.6.20.1/drivers/char/examples
$ /sbin/insmod hello1.ko

그런 다음 다음 오류가 발생합니다 (이후 sudo /sbin/insmod hello1.ko)

insmod: error inserting 'hello1.ko': -1 Invalid module format

lsmod 명령을 사용하여 커널에 모듈이 표시되지 않습니다.

답변1

를 실행하지 않고 명령을 실행해 보세요 sudo. 대신 루트가 되어 시도해 보세요.

$ sudo su -
$ /sbin/insmod hello1.ko

dmesg또한 무엇이 잘못되었는지 나타내는 다른 메시지가 있는지 확인하고 modinfo.

$ modinfo /dir/to/mod/hello1.ko

답변2

다음 사항을 확인하세요.

  1. 동일한 버전의 커널 소스코드를 이용하여 커널 소스코드를 찾아볼 수 있습니다.여기
  2. 동일한 커널을 사용하여 현재 설치된 커널의 구성은 일반적으로 여기에서 찾을 수 있습니다:

    /proc/config.gz
    /boot/config
    /boot/config-*
    
  3. 올바른 컴파일 도구 체인을 사용하십시오.

답변3

올바른 커널 버전에 대한 헤더를 설치하여 문제를 해결했습니다.

답변4

달리기:

make clean

그런 다음 다시 실행하세요.

make

관련 정보