2011-05-12 5 views
3

ALSA 또는 libusb api는 두 가지 선택 사항입니다. 둘 다 나에게 새롭다; 그 이후로 나는 장치 드라이버를 썼고 80 년대에 Unix 용이었습니다.하지만 사용법을 알았 더라면 어떻게 사용하는지 알 수 있습니다. libusb api를 보았습니다. 아주 좋은; ALSA 프로젝트에 대해서는 전혀 모른다. 커널을 모듈화하여 커널을 구현하는 것 같습니다.Linux에 USB 장치 드라이버 작성

이것은 일반적인 질문이지만 내가 관심을 갖고있는 장치는 Roland GR-55입니다. 그것은 동일한 USB 연결에서 MIDI와 오디오를 가지고 있습니다; Windows 및 MAC 드라이버가 있지만 Linux는 없습니다.

어떤 라이브러리 또는 도구를 사용 하시겠습니까?

디바이스 드라이버 또는로드 가능한 커널 모듈 (LKM)을 작성합니까?

+1

[Linux Device Drivers] (http://www.amazon.com/Linux-Device-Drivers-Jonathan-Corbet/dp/0596005903/ref=tmm_pap_title_0)에 관심이있을 수 있습니다. 나는 그것을 읽고있어, 그것은 우수하다 –

+0

그래,하지만 그것은 _very_ 일자입니다. 최신 정보는 http://www.kernelnewbies.org, http://lwn.net (커널 페이지)를보십시오. USB 및 오디오 드라이버가 작동하는 사이트를 확인하십시오. 아마도이 작업이 완료되었거나 작동 중일 것입니다. – vonbrand

답변

2

위에서 언급 한 것처럼 리눅스 장치 드라이버 http://lwn.net/Kernel/LDD3/ 13 장에서는 USB 드라이버에 대해 자세히 설명합니다. 개발을 위해 드라이버를 커널 모듈로 작성하는 것이 더 쉽습니다. 변경을 할 때 커널을 다시 컴파일 할 필요가 없기 때문입니다.

3

libusb는 유용하고 쉽게 실행 가능합니다. 나는 당신이 거기서 시작할 것을 제안 할 것이다. 특히 잠시 동안 리눅스 드라이버를 작성하지 않았다면 더욱 그렇다. libusb를 사용하여 Roland GR-55에 대한 신호 프로토콜이 무엇인지 이해하고 몇 가지 실험을하십시오.

USB는 동일한 물리적 와이어를 통해 몇 가지 유형의 논리적 연결을 지원합니다. 장치에서 사용할 수있는 DATA 및 CONTROL 파이프가있을 것이므로 적절한 드라이버에서 시작하기 전에 매핑해야합니다.

앞서 말했듯이 libusb는 쉽게 사용할 수 있으며 제어 인터페이스를 작성하고 장치에서 원시 데이터를 저장하려는 경우 몇일 만에 유용 할 수 있습니다. 그러나 ALSA는 기존 음악 소프트웨어와 함께 장치를 사용하려는 경우 사용할 수 있습니다. 또한 ALSA를 업데이트하면 작업을 ALSA 프로젝트에 병합 할 수 있으므로 더 큰 커뮤니티를 지원할 수 있습니다.

처음부터 커널 모듈을 작성하는 것은 재미있을 수 있지만 USB는 약간의 짐승으로 시작하기에 이상적인 것이 아닙니다. ALSA를 사용하면 가이드 할 수있는 프레임 워크가 생기고 자신의 API를 정의하는 것에 대해 많은 것을 걱정할 필요가 없습니다.

0

사운드 카드에서 사운드를 듣고 싶으므로 ALSA를 선택해야합니다. 그렇게하면 일을 끝내게됩니다. libusb 드라이버를 작성하는 경우 재생을 위해 해당 사운드 카드 사운드를 공급하기위한 고유 한 사용자 공간 도구를 작성해야합니다.