2014-11-24 3 views
2

간단한 hello world 커널 모듈을 작성하여 컴파일하고 /lib/modules/kernel_version/extra/ 경로에 설치하십시오. insmod모듈을 찾을 수 없음 : modprobe

는 제대로로드하기 만 modprobe와 나는 모든 당 필요한를 설치 한

modprobe: FATAL: Module hello_world.ko not found. 

오류를 얻고있다. 여기

은 메이크 컴파일하고 설치하는 것입니다 :

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install 

어떻게 이루어집니다 얻는 방법을 가르쳐주세요.

미리 감사드립니다.

답변

6

파일을 읽어 modprobe 삽입 모듈 modules.dep/lib 디렉토리/모듈/$ (쉘에서 uname -r)/아래라고 때문이다. 따라서 모듈을 컴파일하고 설치 한 후에는이 의존성 파일을 다시 만들어야합니다. 여기

는이 후


Once this is done, you will be able to locate your module name under the file /lib/modules/$(shell uname -r)/modules.dep.

  1. After installation of your module, check whether it is copied to /lib/modules/
  2. if it is found, then go to ->/lib/modules/$(shell uname -r)/ and use depmod command to create the dependency list of your new module.

이루어집니다 당신이 당신의 모듈을 삽입합니다 modprobe를 사용할 수있는 방법입니다.

편집 : 아래

내가 루트 권한 및 테스트 빌드하는 데 사용되는 Makefile입니다.

target ?= hello_world 
obj-m = $(target).o 

all: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install 

clean: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 
+0

동일한 오류 : 일단 Makefile 모듈이 실행되면/lib/modules/$ (shell uname -r) /modules.dep에 이미 있습니다. – v123

+0

INSTALL /home/vishal/test/linux_dd/hello_world.ko 개인 키를 읽을 수 없음 DEPMOD 3.13.0-24 일반 make [1] : 디렉토리 /usr/src/linux-headers-3.13에서 나가기. 0-24-generic ' – v123

+0

은 makefile의 출력 스 니펫입니다. – v123

0

한 번 같은 문제가있었습니다. 내 문제는 명령을 내릴 때 확장을 제거하지 않았다는 것입니다. 나는.

modprobe foo.ko 

은 위의 오류를 제공합니다. 하지만이 :

modprobe foo 

작품!