이미 커널 컴파일에 포함된 디바이스 드라이버를 off하는 방법이 없을까요?
글쓴이: flyhighb / 작성시간: 화, 2016/12/13 - 10:14오전
USB to Serial 디바이스 드라이버를 모듈 프로그래밍으로 만들어보고 있습니다.
그런데 제가 짠 소스 상에서 probe가 걸리지 않는게 아무래도 실제 장치의 이름과 제가 등록한 이름이 맞지 않는 것 같아서 그런 것 같은데요.
이미 커널 디바이스 드라이버에 포함되어 있는 ftdi_sio라는 이름으로 변경하여 모듈을 만들고 등록을 하려하면 이미 등록되어 있는 이름이라고 에러가 뜨고 모듈 등록이 되지 않습니다.
아무래도 이미 커널 컴파일 할 때 포함되어 있던 ftdi_sio 관련 디바이스 드라이버가 있는 것 같은데요.
이것을 지우거나 장치가 핫 플러그 되어도 동작하지 않도록 하는 방법이 없을까요?
커널을 다시 컴파일 하는 방법은 저같은 초보가 하기 힘든 것 같아서.. 어떤 방법이 없을까하고 질문드립니다.
결국엔 이 ftdi_sio가 없는 환경에서 제가 짠 소스로 USB 장치 인식을 시키는게 최우선 목표입니다.
Forums:
커널에 built-in 된 디바이스 드라이버를 off
모듈은 rmmod 를 사용해서 제거할 수 있습니다.
커널에 built-in 된 디바이스 드라이버를 off(unbind) 하는 방법은 있습니다.
하지만 메모리에서 제거하는 것은 아니므로 같은 이름의 모듈을 insmod 할 때 EEXIST 에러가 발생하는 것은 변함없습니다.
> 그런데 제가 짠 소스 상에서 probe가 걸리지 않는게 아무래도 실제 장치의 이름과 제가 등록한 이름이 맞지 않는 것 같아서 그런 것 같은데요.
>
아닙니다.
그 장치와 bind 된 드라이버가 이미 있다면 그 장치는 더 이상 driver probe 의 대상이 아니므로, 직접 작성하신 드라이버의 probe 함수는 호출되지 않습니다.
댓글 달기