usb 드라이버 작성에 대한 질문입니다.
리눅스 usb 드라이버에 관한 질문입니다.
아래 질문 을 몇개 남겨드렸는데 너무 듬성듬성이라 제대로 질문드리려구요.
리눅스에서 usb를 이용하여 I/O콘트롤러를 제어해야 하는 상황인데요.
처음부터 끝까지 궁금한게 너무 많습니다.
타겟 디바이스 : 센서의 신호를 담당하는 I/O 콘트롤러
해야 할 기능 : 센서의 상태정보를 내용 실시간 전달, pc로부터 센서의 상태 점검 요구에 대한 응답 (뭐 그리 대단한 일을 하는 건 아닙니다.)
이 장치를 쓰기 위한 리눅스 PC에서 usb 드라이버에 관련된 질문사항입니다.
1. 드라이버 작성유무에 대한 사항인데요.
ohci_hcd 드라이버 같은 리눅스에 기본적으로 있는 드라이버 모듈로도 위와 같은 디바이스의 핸들링이 가능한가요?
아니면 따로 디바이스 드라이버 모듈이 필요한건가요?
2. ohci_hcd, ehci_hcd 등과 같은 모듈에 대해서 궁금합니다.
이 드라이버들이 아래 그림의 usb core 부분이 되는 것인가요?
(저 그림을 잘라온 자료에는 개발자가 client driver를 작성해야 한다고 하는데요.)
3. libusb에 대해서 좀 알고 싶은데요
그 라이브러리는 ohci_hcd 등등의 드라이버들을 그대로 사용하는 건가요?
ioctl들을 call을 하는 거 같은데 cmd로 들어가는 인자가 따로 있더군요 USB_REQ_GET_STATUS 이런것들...
그런 인자들을 ochi_hcd나 ehci_hcd등의 드라이버들이 처리하게 되는 건가요? 아니면 다른 모듈들이 또 있나요?
4. usbnet이나 usb 스토리지 같은 경우 장치를 리눅스 PC에 설치하면 바로 모듈이 새로 올라옵니다.
반면 마우스나 카드리더의 경우는 설치를 해도 특별히 올라오는 디바이스가 없더군요.
이 두 종류의 장치간의 차이를 좀 알려주셨으면 해요.
5. 이건 좀 너무 무식한 질문 같지만
하드웨어를 구성하시는 분들께 요구해야 하는 io장치에 대한 내용은 어떤 것들이 있나요?
대충 질문 사항은 이렇습니다. 너무 많은 거 같습니다.
아직 머리속에 각이 잡이지 않아서 구현을 해도 어떤 식으로 하는게 옳은 방법인지 모르겠네요.
사람마다 말이 다 다르네요. 어떤 분은 커널 모듈같은거 안짜두 된다구 하고 어떤 분은 장치가 일반적인 게 아니니깐 짜야 된다구 하구.
부디 먼저 겪어보신 선배님들이 계시다면 조언 부탁드립니다.
kelp의 holelee님이 답변해주신 대답입니다.
holelee님이 좋은 내용들을 말씀해주셔서 관심있으신분들 같이 보자구 여기에 답글로 답니다.
그외 다른 내용들도 알고 계신분 계시면 공유했으면 좋겠어요.
댓글 달기