디바이스 드라이버 모듈 프로그래밍에 대해 궁금합니다.(조언부탁드립니다.)

flyhighb의 이미지

안녕하세요?

리눅스 상에서 USB to Serial 디바이스 드라이버를 만들어보고자 공부를 하고 있는데 정확히 개념이 잡히지 않아서 질문을 올리게 되었습니다.

사용 커널은 4.4.0 버전을 사용중입니다.

우선 USB to Serial 장치를 플러그인 하고 lsmod를 하게 되면 ftdi_sio와 usbserial이 적재되어 있고 dev/ttyUSB0이 생성되더라구요.

생각하기로는 이미 kernel 내에 포함된 디바이스 드라이버가 USB to Serial 장치가 인식되면 ftdi_sio와 usbserial이라는 모듈을 insert시키고 dev/ttyUSB0이라는 디바이스 파일도 등록을 하는 것 같습니다.

1.혹시 이에 해당하는 소스는 어디에서 확인 할 수 있을까요??

구글링해서 보게되는 모듈 프로그래밍의 설명에는 장치가 플러그인 되고 그것을 인식하고 해제하는 것에 대한 것은 잘 포함되어 있지 않은 것 같더라구요.

질문드리고 싶은 것은...

2. 제가 이 USB to Serial의 디바이스 드라이버를 구현하려면 현재 어디선가 돌고 있을 USB to Serial의 ko파일을 삭제하면 일단 USB to Serial을 플러그인 해도 장치 인식을 하지 않게 되는게 맞을까요?

3. 그 뒤에 디바이스 드라이버를 만들게 되면 필요한 주번호, 부번호 등은 어떻게 참조를 하게 되나요?

4. 만약 ttyS0을 지웠다고 가정하면 주번호 4, 부번호 64는 ttyS0 디바이스 파일을 지워도 시리얼 컴포트1이라는 것은 변하지 않는 건가요??

잘 이해가 가지 않아서 질문이 두서가 없네요...

조언 부탁드리겠습니다.

pinebud의 이미지

1. lsmod 해보시면 비슷한 드라이버 모듈이 있을듯합니다.
2. 넵. 드라이버가 없으면 안돌겠죠?
3. 드라이버에서 정할수도 있고 랜덤으로 정하게 할수도 있는 것으로 압니다. 요즘은 하드코딩된 디바이스 번호는 잘 안쓰는 것으로 압니다만...
4. udevd를 참조하셔야할 것 같습니다.

A rose is a rose is a rose..