다음 이전 차례

3. 지원되는 하드웨어

이 장에서 현재 리눅스에서 지원되는 사운드 카드와 인터페이스의 종류를 이야기 하겠다. 여기에 있는 정보는 이 글을 쓰는 당시의 최신 리눅스 커널(2.2.4)에 바탕을 둔 것이다. 이 문서의 내용은 표준 리눅스 커널에 포함되어 있는 사운드 드라이버에 대한 것이다. 리눅스에서 사용할 수 있는 다른 사운드 드라이버도 있다 (또 다른 사운드 드라이버 절을 참고하기 바란다).

지원되는 사운드 카드에 대한 최신 정보를 원한다면 리눅스 커널 소스에 포함되어 있는 파일들을 읽어보기 바란다. 일반적으로 /usr/src/linux/Documentation/sound 디렉터리에 있다.

이 정보는 Intel 플랫폼에서 작동하는 리눅스에 대하여 적용 가능하다.

Alpha 플랫폼의 경우 대부분의 사운드 카드를 사용할 수 있다. 그러나 일부 사운드 카드의 경우 그것들이 비록 i386 머쉰에서 완벽하게 작동한다 하더라도 Alpha 시스템에서는 다른 장치의 I/O 포트와 충돌을 일으킬 수 있다. 그래서 해보기 전에는 어떤 사운드 카드가 제대로 작동할지, 그렇지 않을지를 말하기 어렵다.

PowerPC 버전의 리눅스에서는 사운드 드라이버가 아직 제대로 돌아가지 않는다고 한다. 그러나 미래에는 지원될 것이다.

MIPs에 이식된 리눅스의 경우, 커널내에 사운드 기능을 집어 넣을 수 있다. 그러나 일부 MIPs 머쉰은 EISA 슬롯을 가지고 있거나 사운드 장치를 내장하고 있다. Linux-MIPs 그룹은 사운드 지원을 추가하는 것에 관심을 갖고 있다고 저자에게 이야기하였다.

리눅스 커널에는 리눅스의 Atari 와 Amiga 버전에 대한 별도의 드라이버가 포함되어 있다. 따라서 (Intel 플랫폼상의 사운드 드라이버의 compatible subset으로서) 이들 머쉰에 내장된 사운드 하드웨어를 사용할 수 있다.

SPARC에 이식된 리눅스의 경우, 일부 썬 워크스테이션 모델에 대해서는 사운드가 지원된다. 내장된 사운드 장치는 작동하지만 외장 DSP 오디오 박스의 경우는 썬에서 스펙을 공개하기 않았기 때문에 지원하지 않는다고 들었다.

3.1 사운드 카드

리눅스 커널 사운드 드라이버에 의해 지원되는 사운드 카드는 다음과 같다. 아래의 목록 중에서 일부는 사운드 카드의 모델을 표기한 것이 아니라 오디오 칩셋을 표기한 것이다. 아래의 목록이 완벽한 것은 아니다. 아래 목록에 있는 사운드 카드와 호환되는 것들은 열거하지 않았다. 일부 제조업체의 경우 카드의 디자인을 주기적으로 변경하여 결과적으로는 이전 카드와 호환성이 떨어지는데도 계속해서 같은 모델로 판매하기도 하기 때문에 혼란을 더하는 경우도 있다.

호환가능에 대해서: 대부분의 사운드 카드가 "사운드블래스터 호환" 이라고 주장하더라도 현재 판매된 사운드 카드중에서 리눅스 사운드블래스터 드라이버와 충분히 호환되는 것은 거의 없다. 이들 카드들은 일반적으로 MSS/WSS 또는 MAD16 드라이버를 사용할 경우 더 잘 작동한다. Creative Labs에 의해 만들어진, Creative's custom chips를 (예, SoundBlaster16 Vibra) 사용하는, 진짜 사운드블래스터 카드나 또는 MV Jaz16 그리고 ESS688/1688 based 카드 만이 사운드블래스터 드라이버를 제대로 사용할 수 있다. "SoundBlaster Pro compatible 16 bit sound card"에 사운드블래스터 드라이버를 적용하려는 것은 시간 낭비일 가능성이 크다.

리눅스 커널은 일부 사운드 카드(예: ProAudioSpectrum 16)가 제공하는 SCSI 포트와 일부 CD-ROM 드라이브(예: Soundblaster Pro)만을 위한 전용 인터페이스를 지원한다. 더 자세한 정보는 리눅스 HOWTO 문서인 SCSI HOWTOCDROM HOWTO를 참고하기 바란다.

일부 사운드 카드는 조이스틱 포트도 함께 제공한다. 이를 포함하여 조이스틱 포트에 대한 드라이버가 커널 2.2에 포함되어 있다.

SCSI, CD-ROM, joystick 그리고 사운드 드라이버는 커널에서 완전히 서로 독립적이라는 것을 주지하기 바란다.

3.2 또 다른 사운드 드라이버

리눅스 커널의 사운드 부분은 원래 Hannu Savolainen이 작성하였다. 그리고서 Hannu는 오픈 사운드 시스템을 개발하게 되었다. 이는 4Front Technologies에서 판매하는 상용의 사운드 드라이버이며 여러가지 유닉스 시스템에서 사용할 수 있다. 레드햇 소프트웨어는 Alan Cox씨로 하여금 커널의 사운드 드라이버를 개선시키면서 또한 완전한 모듈로 만들도록 후원하였다. 그외 많은 사람들이 버그를 고치고 새로운 종류의 사운드 카드를 위한 드라이버를 개발하는데 기여하였다. 레드햇에서 발표한 5.0에서 5.2까지의 배포본에는 커널의 표준 드라이버 대신에 이들 수정된 드라이버가 포함되었다. 현재는 모두 커널에 통합된 상태이다. Hannu 또한 여전히 상용 드라이버의 코드를 정기적으로 제공하고 있긴 하지만 현재 커널의 사운드 드라이버 부분을 관리하고 있는 사람은 Alan Cox이다.

4Front Technologies에서 판매하는 상용의 오픈 사운드 시스템 드라이버는 보다 용이하게 설정할 수 있고, 더 많은 종류의 (특히 신형의) 사운드 카드를 지원한다. 또한 커널의 표준 사운드 드라이버에 맞추어서 만들어진 응용프로그램도 사용할 수 있다. 불리한 점이라면 돈을 주고 사야하며 소스 코드를 볼 수 없다는 것이다. 구입 여부를 결정하기 전에 평가판을 내려받아서 시험해 볼 수 있다. 더 자세한 것은 4Front Technologies의 웹사이트인 http://www.opensound.com을 참고하기 바란다.

Jaroslav Kysela 와 몇몇 사람들은 커널의 Gravis UltraSound 카드 드라이버를 대체할 수 있는 또 다른 사운드 드라이버를 작성하기 시작했다. 그러다가 프로젝트에 Advanced Linux Sound Architecture (ALSA) 라는 새로운 이름을 붙였다. 그리고 그 프로젝트의 결과는 커널의 사운드 드라이버를 대체할 수 있을 정도의 더욱 일반적 사용이 가능한 사운드 드라이버를 작성으로 이어졌다. ALSA 드라이버는 여러 종류의 많이 사용되는 사운드 카드를 지원하고, full duplex를 지원하며 완전히 모듈화 되어 있다. 그리고 커널의 사운드 아키텍쳐와 호환된다. ALSA 프로젝트의 웹사이트는 http://www.alsa-project.org 이다. "Alsa-sound-mini-HOWTO"에서 이 드라이버를 컴파일하고 설치하는 방법에 대하여 설명하고 있다.

Markus Mummert ( mum@mmk.e-technik.tu-muenchen.de)는 Turtle Beach MultiSound (classic), Tahiti 그리고 Monterey 사운드 카드의 드라이버 패키지를 제작하였다. 자료의 내용을 인용하면:

busy system에서도 동기성(sync)의 상실 없이 하드 디스크 기록/재생이 고품질로 이루어지도록 설계되었다. wave synthesis, MIDI 그리고 디지털 신호 처리(DSP) 등은 사용할 수 없다. 또한 기록과 재생이 동시에 이루어질 수 없다. 현재 VoxWare 대신 사용되며 1.0.9 와 1.2.1 사이의 몇몇 커널에서 시험하였다. 또한 UN*X SysV386R3.2 system에도 설치 가능하다.

http://www.cs.colorado.edu/~mccreary/tbeach를 참고하기 바란다.

Kim Burgaard ( burgaard@daimi.aau.dk)는 Roland MPU-401 MIDI 인터페이스의 디바이스 드라이버와 툴(utilities)을 제작하였다. Linux software map entry 에 있는 설명을 인용하면:

Roland MPU-401 호환 MIDI 인터페이스(Roland SCC-1 과 RAP-10/ATW-10 포함)의 디바이스 드라이버. Standard MIDI File player 와 recorder를 포함한 유용한 도구 모음.

버전 0.11a 이후로 몇가지 개선된 것이 있다. 그 중에서도 특히 IRQ 공유와 모듈로서 컴파일 가능한 점을 꼽을 수 있다. 또한 메트로놈 기능, 싱크로나이징 할 수 있는 가능성(예: 정확성을 유지하면서 단위 비트를 기초로한 그래픽), 진일보한 replay/record/overdub 인터페이스 등등을 들 수 있다.

ftp://metalab.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz 에서 찾을 수 있다.

리눅스에서는 사운드 카드를 amateur packet radio를 위한 변복조 장치(modem)로서 활용할 수 있다. 2.1 이상의 커널에는 SoundBlaster 및 Windows Sound System 호환 카드에 적용되는 드라이버를 포함하여 이를 지원하고 있으며 1200bps AFSK 와 9600 bps FSK packet protocol을 만족시킨다. 더 자세한 내용은 Linux AX25 HOWTO를 참고하라. (저자도 아마츄어 무선 기사이다, 호출신호는 VE3ICH).

3.3 PC Speaker

사운드 하드웨어를 따로 장착할 필요가 없는 사운드 드라이버가 있다; PC 내부의 스피커를 사용하는 것이다. 사운드 카드 드라이버와 소프트웨어적으로 거의 호환 가능하다. 그러나 소리의 질이 떨어지며 CPU에 부하를 더 많이 준다. 그 결과는 스피커에 따라 약간씩 다르다. 더 자세한 것은 드라이버와 함께 제공되는 문서를 보라.

아래의 ftp 사이트에서 찾을 수 있으며 마지막으로 갱신된 후로 시간이 좀 지난 상태이다. ftp://ftp.informatik.hu-berlin.de/pub/Linux/hu-sound/

3.4 병렬 포트

병렬 프린터 포트와 몇 가지 부품을 사용하여 D/A 변환이 가능하다. 이것은 PC 스피커 보다 소리의 질이 더 좋지만 여전히 CPU에 주는 부하는 크다. 위에서 언급한 PC Sound driver 패키지가 이를 지원하며 필요한 하드웨어등에 대한 안내서가 함께 들어있다.


다음 이전 차례