다음 이전 차례

6. 사운드 카드

이제는 예전과 달리 소리없는 컴퓨터는 상상할 수 없는 듯 하다. 많은 사람들이 음악을 좋아하며 사운드 카드는 욕심을 부려볼 만한 컴퓨터 주변 장치라고 생각하기도 한다. 특히 컴퓨터 오락을 즐기는 젊은이들은 고가의 사운드 카드를 구입하고 싶어 안달일 것이다.

하지만 리눅스에 들어온 순간 여러분이 기대하는 정도로 멀티미디어 지원을 받을 수 없다는 사실을 분명히 말한다. 어느 누구도 훌륭한 멀티미디어 지원을 기대하면서 리눅스에 도전하지는 않았으리라 믿는다. 도스용의 훌륭한 게임들을 리눅스에서 즐기려 하지는 않을 것이다. 크게 원하지만 않는다면 여러분이 리눅스에서 얻을 수 있는 사운드 지원은 그렇게 열악하지 않다. 몇 가지를 제외하고는 거의 모든 기능이 제공되기 때문이다.

많은 사람들이 사용하는 범용 사운드 카드를 구입한다. 특히 우리나라에만 국한된 것이 아닌 전세계적 제품을 구입하는 것이 덜 골치아프다. 사운드 블라 스터 제품은 아마 제 1 순위에 들 것이다.

호환 제품에 대해서는 어느 정도 수준의 호환인지를 정확히 알아본다. 정확 하게 하드웨어적 수준에서 호환하는 것인지 아니면 별도의 도스/윈도 95용 프로그램으로 약간의 조작을 해주어야 하는 것인지를 사람들에게 문의해보기 바란다.

여러분이 게임 매니어가 아니라면 그리고 미디 사운드와 같이 특별히 음악에 관계된 작업에 흥미를 두고 있는 사람이 아니라면 다른 주변기기보다 훨씬 비싼 웨이브테이블 방식의 사운드 카드를 구입할 필요가 있겠는가?

리눅스에서는 일반적인 상식이 통한다. 많은 사람들이 갖고 있는 하드웨어를 구입하면 아무런 문제도 없다. 또한 문제가 있더라도 조만간 해결된다. 이 이유는 시장 점유율이 높은 회사의 서비스 문제가 아니라 리눅스 자체가 사용자의 노력에 의해서 만들어진다는 특성 때문이다. 여러 사람이 공유하는 제품일수록 그 많은 사람들 중에서 ‘사운드 드라이버 제작’에 뛰어들 확률이 크지 않을 까?

예를 들어 비교적 우리나라에서만 사용되었던 사운드 카드인 옥소리 사운드 카드가 리눅스에서 제대로 지원될 리 없지 않은가? 또한 그것이 실질적인 표준 사운드 카드에 대하여 어느 정도 수준까지 하드웨어적 호환성을 갖는지의 문제도 중요하다.

전세계적으로 많이 판매되고 있는 ‘사운드 블라스터’ 제품을 구입하면 여러분은 아무런 고통도 받지 않을 것이다. 또한 유럽 사용자들이 많이 사용하고 있다는 Gravis Ultra Sound, GUS 제품을 구입하는 것도 좋다. 리눅스에서는 특히 GUS에 대한 지원이 아주 확실하다. 음악 관련 프로그램 중 오직 GUS에서만 돌아가는 것들도 얼마든지 있으며 항상 GUS 특별 패치가 나오곤 하기 때문이다.

필자는 국내 제품인 ‘사운드 트랙97’에 관심이 많은 편인데 리눅스용 드라이버를 제작한다니 기대가 크다. 많은 제조업체들이 경쟁에 의한 것이든 새로운 기업 마인드에 의한 것이든 리눅스용 드라이버를 제공한다면 리눅서들이야 대환영이다. 그리고 당연히 리눅서들이라면 다른 회사보다는 지원을 잘 하는 회사 제품만을 구입하게 될 것이다. 선택은 물론 그들에게 달렸다. 자신들이 투자한 만큼의 가치가 리눅스 진영에서 (금전적이든 선전효과든) 창출될 수 있다고 생각하면 그렇게 할 것이다. 하지만 분명한 사실 하나는 있다. 리눅서들은 도와주지 않아도 스스로 돌아가는 바람개비라는 사실.

많은 제품들이 ‘사운드 블라스터 호환’이라는 문구를 포장지에 달고 있다. 어찌 그 글만 보고 믿을 수 있겠는가? 최소한 사운드 블라스터 호환이려면 사운드 블라스터 16수준까지는 호환되어야한다. 이는 리눅스뿐 아니라 도스에서 수많은 게임을 즐기려 할 때도 당연히 문제되는 부분이다. 또한 사운드 블라스터 호환이라 할지라도 하드웨어적 호환인지 소프트웨어적 호환인지를 정확히 구별해야 한다. 만약 그 사운드 카드가 마치 사운드 블라스터인 것처럼 속이기 위하여 특별한 도스 프로그램이나 윈도 95 드라이버를 사용해야 한다면 그 제품은 절대 리눅스에서 제대로 작동되지 않을 것이다.

상당히 많은 사람들이 과연 도스용 드라이버나 윈도 95용 드라이버를 리눅스에서 쓸 수 있는가라는 약간은 엉뚱한 질문을 많이 던지곤 한다. 이 기회를 빌어 확실히 대답하건데 절대 못쓴다. 지금까지 국내에서는 어떤 제품도 리눅스용 드라이버가 제공되지 않고있다.

여러분이 게임 매니어이거나 미디 사운드를 즐겨 듣는 사람이라면 미디 사운드를 위한 웨이브테이블을 내장한 사운드 블라스터 AWE32이상의 고급 사운드 카드를 사용하고 싶어할 것이다. 현재 리눅스 표준 배포판에는 들어있지 않으며 안정 커널에서는 지원하지 않지만 개발 버전의 커널 또는 패치의 형태로 웨이브테이블을 이용한 미디 사운드 듣기가 가능하다. 사운드블라스터 AWE32의 예를 볼 때 역시 많은 사람들이 갖고 있는 하드웨어는 조만간 리눅스에서도 지원된다는 사실을 입증한다. 지난 달 리눅스 관련 사이트에서 소개한 바 있다.

이번에 테스트해본 사운드 블라스터 32는 AWE 버전이 아니므로 필자가 직접 확인하지는 못했다. 하지만 이 작업은 초보자에게 있어 상당히 까다로운 작업임에 틀림없다. 몇 가지 프로그램을 가져다 컴파일 작업을 해야 하기 때문이다. 리눅스에서 사용할 수 있는 수준으로 딱 알맞는 수준은 사운드 블라스터 16정도라고 보고 있다. 또는 GUS 카드를 구입할 수 있다면 리눅스에서는 정말 괜찮은 선택이라고 본다.

6.1 사운드 블라스터 16 에서 미디 사운드 감상

지난 해 9월 알짜 슬랙웨어 3.1에서 많은 사람들로부터 사랑받은 애플리케이션 중 하나가 바로 티미더티(Timidity)라는 프로그램이다. 이 프로그램은 하드웨어적인 내장 미디음원을 갖고 있지 않은 평범한 사운드 블라스터 16, 또는 GUS 사운드 카드에서 내장 음원을 가진 것처럼 훌륭한 음질로 미디 파일을 연주해 주는 프로그램이다. 알짜 레드햇 4.0에서는 누락된 패키지이므로 홈페이지에서 받아서 멋진 사운드를 들어보기 바란다.

http://www.clinet.fi/~toivonen/timidity/

단, 하드웨어적으로 해결해야 할 것을 소프트웨어적으로 해결하므로 엄청나게 많은 CPU 점유율을 필요로 한다. 느린 CPU에서는 어떤 문제가 발생하는지 알게 될 것이다.

6.2 PnP 사운드 카드

요즘에 나오는 사운드 카드 치고 PnP 사운드 카드가 아닌 것이 어디 있을까? 리눅스와 PnP 하드웨어는 아직도 궁합이 맞지 않는다던데……

경험에 의하면 사운드 블라스터 모든 PnP 기종은 별 다른 노력없이 리눅스에서 대부분의 기본값인 주소 0x220, IRQ 5, DMA 1, 16비트 사운드에 대하여 DMA 5번을 설정하여 사운드 블라스터 16 호환으로 해두면 아무런 문제도 없 이 사운드 블라스터 16 수준으로 사용할 수 있다.

문제가 발생한다면 도스용으로 제공되는 프로그램을 사용하여 PnP 기능을 없애고 수동으로 주소와 IRQ를 설정해주면 된다. PnP 사운드 카드는 별 걱정할 것이 못된다.

6.3 사운드 카드의 IDE 인터페이스

문제는 다른 곳에 있다. 사운드 카드 자체를 사용하는데는 아무런 문제가 없지 만 사운드 블라스터 카드와 랜 카드 사이의 충돌 때문에 괴로움을 호소하는 사 람들이 참 많다. 필자도 리눅스에서 제일 많이 추천되는 랜 카드인 3Com 제품 중 509b 제품을 인식시키는데 상당히 어려움을 겪은 기억이 있다. PnP를 아주 잘 지원하는 윈도 95에서는 아무런 문제 없이 사용가능하였지만

유독 리눅스만 안되는 이유는 바로 사운드 카드의 IDE 인터페이스 문제였다. 필자가 사용하는 AT-BUS를 가진 사운드 블라스터 16과 최신 IDE 인터페이스의 사운드 블라스터 16을 비교해본 결과 알아낸 사실이다. 사운드 블라스터 사운드 카드들의 IDE 인터페이스는 기본적으로 IRQ 10번을 사용하고 있다. IDE CD롬을 달 수 있는 사운드 카드를 구입한 모든 사람들은 설명서를 잘 읽고 IDE 인터페이스가 어떤 IRQ를 사용하고 있는지 잘 확인하기 바란다.

6.4 사운드 IDE 인터페이스에 CD롬 달기

약간의 노력을 들이면 리눅스에서도 사운드 카드에서 제공하는 IDE 인터페이스에 IDE 또는 ATAPI라고 불리는 CD롬을 장착하여 사용할 수 있다.

다음 설명하는 내용은 사운드 블라스터 32 IE 제품을 가지고 시험해본 내용이다. 같은 회사의 다른 제품은 물론 타사의 제품들도 비슷한 사양을 보이리라 믿는다.

우선 필자는 LG 8 배속 CD롬을 사운드 블라스터 32 IE 의 IDE 인터페이스에 연결하였다. CD롬의 점퍼는 마스터로 설정하였다. 설명서에 있는 것처럼 IDE 데이터 커넥터는 두 개의 입출력(I/O) 주소와 IRQ 하나를 사용하는데 보통 주소는 168h, IRQ 10번이 기본 설정이다. 다른 카드가 이미 해당 주소 또는 IRQ를 사용하는 경우 1E8h, IRQ 11번을 사용하도록 되어있다고 한다.

현재의 IRQ 사용 실태를 알기 위해서는 리눅스로 부팅한 상태에서 다음과 같이 명령한다.

 cat /proc/interrupts
 0:      51498   timer
 1:        497   keyboard
 2:          0   cascade
 4:          1 + serial
 5:          1   sound blaster
 7:         71   plip1
 8:          0 + rtc
 9:        237   PCnet/ISA 79C960
10:         23 + aic7xxx
12:       1192   PS/2 Mouse
13:          1   math error
14:      39254 + ide0
15:      19875 + ide1

보통 3, 4번은 시리얼 장치에 의해 사용되며 14, 15번은 메인보드 또는 I/O 카드의 IDE 인터페이스가 사용한다. PS/2 마우스는 12번을, 사운드 블라스터 카드는 5번을 사용하고 있다.

메인보드 또는 I/O 카드의 IDE 인터페이스는 ide0, ide1 이라는 이름을 가지고 있으며 부팅될 때 자동으로 감지된다. 각각 두 개의 IDE 장치를 장착할 수 있으므로 /dev/hda, /dev /hdb, /dev/hdc, /dev/hdd 라는 장치명이 순서대로 붙는다. /usr/src/linux/Documentation/ide.txt 라는 문서에 자세히 소개되어 있는 내용이다.

ATA-2 스펙에 따르면 IDE 인터페이스는 다음과 같은 표준 규격을 가진다.


인터페이스
포트 주소
첫 번째 IDE ( ide0 ) 0x1f0
두 번째 IDE ( ide1 ) 0x170
세 번째 IDE ( ide2 ) 0x1e8
네 번째 IDE ( ide3 ) 0x168

사운드 카드 설명서에 의하면 기본적으로 충돌이 없는 한 0x168, IRQ 10을 사 용하도록 되어 있으므로 네 번째 IDE ( ide3 )에 해당한다는 것을 알 수 있다.

일단 사운드 IDE 인터페이스를 인식시키기

만약 LILO: 프롬프트가 떨어진다면 다음과 같이 입력한다.

LILO: linux ide3=0x168,0x36e,10 hdg=cdrom

그러면 부팅될 때 다음과 같이 수동으로 인식하는 모습을 볼 수 있을 것이다.


hda: SAMSUNG WNR-31601A (1.6GB), 1536MB w/109kB 
    Cache, LBA, CHS=780/64/63
hdb: SAMSUNG WNR-31601A (1.6GB), 1536MB w/109kB 
 Cache, LBA, CHS=780/64/63
hdg: probing with STATUS instead of ALTSTATUS
hdg: GCD-R580B, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide3 at 0x168-0x16f,0x36e on irq 10

만약 10번 IRQ가 이미 사용중이고 PnP 바이오스에 의해 사운드 카드의 IDE 인터페이스가 11번 IRQ를 받게 되었다면 위 표에 의거하여 세 번째 IDE ( ide2 )가 된다.

그러면 다음과 같이 해주면 된다.

LILO: linux ide2=0x1e8,0x3ee,11 hde=cdrom

장치명 규칙은 ide2에 대하여 /dev/hde, /dev/hdf, 그리고 ide3에 대하여 /dev/hdg, /dev/hdh이다.

매번 부팅할 때마다 LILO: 명령행 옵션에 적어줄 수는 없으므로 /etc/lilo.conf 파일에 등록하고 다시 한 번 /sbin/lilo 를 실행하여 변경 사항을 알려준다.


boot=/dev/hda
map=/boot/map
install=/boot/boot.b
append="hdg=cdrom ide3=0x168,0x36e,10"
prompt
delay=0
image=/boot/vmlinuz
        label=linux
        root=/dev/hdb1
        read-only
other=/dev/hda1
        label=dos
        table=/dev/hda

다시 한번 강조하는데 /etc/lilo.conf의 설정을 조금이라도 바꾸거나 커널 컴파일을 한 사람들은 /sbin/lilo를 다시 한번 실행시켜주어야 한다. 이런 이유로 인 해 LILO를 기피하고 로드린(Loadlin)과 같은 도스용 리눅스 부팅 프로그램을 선호하는 사람들도 있다.

사운드 블라스터 32 IE에 CD롬을 연결시킨 후 /proc/ interrupts의 상황이다.


 0:   16646107   timer
 1:     401992   keyboard
 2:          0   cascade
 3: 1640016008 + serial
 4:     309881 + serial
 5:          1   sound blaster
 7:      98436   plip1
10:        73 + ide3
13:          1   math error
14:    1792150 + ide0

여기서도 확인할 수 있듯이 리눅스 운영에서는 컴퓨터 전반에 대한 지식, 특히 하드웨어 분야에 대해서 x86의 기본 원리 정도는 알아두어야 좋다. 따라서 컴퓨터에 대한 완전 초보자들에게는 아직도 권할 수 없다고 말하고 싶다. 이번에 샘플로 테스팅한 사운드 블라스터 전기종은 사운드 블라스터 16 수준으로 정상 작동한다. 한솔 시너비트 32 PnP도 잘 작동함을 확인하였다.


다음 이전 차례