모듈 프로그래밍을 하다보면 rmmod 로 모듈을 제거하려고 할 때, 다음과 같은 에러 메시지
를 접할 수 있다.
ERROR: Removing 'hello':
Device or
resource busy
일반적인 경우, 모듈 증감 카운터 문제로 인해 발생할 수 있지만 이는 증감 카운터를
강제로 설정해서 해결 가능하다.
하지만, 그러한 문제가 아닌 경우가 있다. lsmod 로 살펴보면 Used by 가 0인 경우이다.
이 경우 모듈 카운터 문제는 아니다.
# lsmod | more
recuva_cache ... 0 (Permanent)
바로, 모듈을 종료시키는 exit 함수가 정의 돼 있지 않기 때문이다.
static void __exit mod_exit(void) { }
module_exit(mod_exit);
뭐, 이런 형태라 보면 된다. 자신이 정의를 하였다면? 문제는 다른 곳에 있다.
예를 들면 module_init 함수와 module_exit 함수의 이름이 다르다는 등이다.