2013-06-22 2 views
5

로드 가능한 커널 모듈을 작성하고 테스트하려고합니다. 그것을 삽입 한 후 나는 rmmod xxx 명령을 사용하여 그것을 제거하려했지만, module xxx is in use을 말하는 오류가 발생하고 모듈이 멈추었 고 제거 할 수 없습니다. 어떻게하면 전체 시스템을 재부팅하지 않고 모듈을 제거 할 수 있습니까? (리눅스 커널 V 3.5.0.)로드 할 수있는 커널 모듈을 제거 할 수 없습니다.

참고 : rmmod -f 인쇄 Error: device or resource busy

+0

아마도'rmmod -f'입니까? –

+0

'rmmod -f'가 작동하지 않습니다.'ERROR : device or resource busy'를 출력합니다. –

+2

그런 다음 재부팅하십시오. (주 호스트가 아닌 VM에서 커널을 가지고 놀아 보자. 재부팅은 실제로 문제가되지 않는다.) – Mat

답변

8
어떤 방식으로 패닉 모듈의 코드를 일으키는 내 드라이버의 버그 나 충돌이있는 경우에만이 나에게 발생

. 제 경험상 재부팅이 유일한 경우입니다.

내가 말했던 것처럼, 커널은 일반적으로 패닉 상태이므로 삽입하거나 실행 한 후에 dmesg를 체크 아웃해야한다. 나는 확신 할 수 없지만 드라이버가 뮤텍스를 해제하지 않으면이 동작이 또한 발생할 수 있습니다.

1

module_exit 기능이 올바른지 확인하십시오. MODULE_FORCE_UNLOAD = yes를 사용하여 "전체 시스템을 재부트하지 않고 모듈을 제거"하도록 커널을 컴파일해야 할 수도 있습니다.

관련 문제