[문의] USB Flash Disk Driver(Memory Stick) 개발 관련.
안녕 하십니까 !
Linux 를 시작 한지 얼마 안된 사용자 입니다.
Linux 에서 USB Flash Disk Driver(흔히 플레시 메모리) 의 불량 유무를 TEST 하는 프로그램을 만들려고 합니다.
목적은 정하여 졌으나 Linux 의 내부 구조의 이해가 부족하여 어떻게 기준을 잡고 해야 할지 모르겠네요.
혹시 도움말 주실분 있으면... 조언 주시면 대단히 감사 하겠습니다.
=====================================
현재 간단히 Driver 를 만들어서 사용 해 보려는데..
기본을 USB skeleton driver 를 기초로 하여 module_init은 하였으며.
/proc/bus/usb/devices 를 참조로 하여 PC 에 기본으로 장착된 EHCI 의 Vender, Device 를 얻어서
위의 skeleton driver 에 넣었습니다.
그럼 probe 루틴이 수행이 되어야 하는데... 아무리 해도 안되는군요?
1) 질문 1 mknode 에 어떻게 넣어야 되나요? <== usb 는 어떻게 등록 하나요 ?
char, block 인지 궁급합니다.
2) 질문 2 usb 의 경우 probe 가 usb-host 에서 먼저 endpoint 0 으로 잡아서
새로운 endpoint 를 할당하고, mount 까지 해 버리는데...
저희는 Test 하기 위해 하는데... 이렇게 잡아 버리면.... 안되는데.
usb 를 전체 disable 해서 host 역활 까지 다 할 수도 없고 난감 합니다.
어떻게 중간에 못 하게 할 수 없을까요 ?
3) EHCI Control 이 주 목적이면 usb 로 잡지 않고 char device 로 만들어서
IOCTL 을 이용하여 Control 하여야만 하나요 ?
4) usb driver 는 어떻게 open 하나요 ?
skeleton driver 만든걸 open 하려고 하니 return 값이 -1 뜹니다.
skeleton driver 에 message 출력 하게 하였으나 출력이 안되는걸로 보아
kernel 내부에서 return 해 버리는것 같은데....
* 참고로 제 컴푸터(삼성SensR70 노트북)의 EHCI 는 Vend:1D6B, Device : 0002 라고 나오던데..
제가 개념이 부족해서 이렇게 고생 하고 있네요...
전문가 분들의 많은 도움 바랍니다.
즐거운 하루 되시기 바랍니다.


댓글 달기