글 수 90
2008.11.07 15:08:30 (*.138.143.22)
32918
S3C2410 으로 작업을 하다보면 USB disk 가 잘 붙지 않는 에러가 발생하더군요
그리고 기타의 USB 호스트를 지원하는 MCU 들중에서 USB disk 접속이 잘 안되는 일이 발생합니다.
이유는 usb 클라이언트가 통신을 늦게 주거나 호스트가 데이타 처리를 시간안에 처리하지 못해 발생합니다
하지만 해결 방법은 간단합니다. 커널을 2.6.16 이상으로 올리시는 것이지요
커널 2.6.16 이후부터
device drivers --> block device --> Low Performance USB Block driver
옵션이 생겼습니다.
이것을 활성화 시키거나 모듈로 컴파일 하여 올리시면 아주 깔끔하게 USB disk 가 됩니다.
이옵션은 usb client 가 느리게 통신을 하더라고 호스트가 이에 대응하도록(또는 반대의) 되어 있으며
기존에 SCSI Disk 쪽으로 USB 를 에뮬레이션 하던것을 USB 전용의 블럭 드라이버로 처리합니다.
(소스를 직접보며 고민한것이 아니라 정확한 내용을 알고 싶으시면 소스를 참고하세요)
노드 번호도 변경되었으니 참고하세요
/dev/uba b 180 0
/dev/uba1 b 180 1
/dev/uba2 b 180 2
:
/dev/ubb b 180 8
/dev/ubb1 b 180 9