System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제4장 사운드카드 설정

    2. ALSA 드라이버를 이용하기

가. ALSA 드라이버 이용하기

이전 장에서 살펴본 sndconfig 명령어는 거의 대부분의 리눅스 관련 서적 등에서 다루고 있는 내용이기 때문에 누구나 한번쯤은 읽어봤을 내용이라고 생각됩니다. 만일 sndconfig 명령어 목록에 없는 사운드 카드라면 어떻게 해야 할까요. 대부분이 사운드 카드를 포기하거나 아니면 다른 카드로 바꿔서 사용하겠지만 꼭 방법은 없는 것이 아닙니다.

리눅스에는 각종 프로젝트들이 존재하는데 이런 프로젝트들이 만들어내는 산물들이 리눅스를 더욱더 강력한 os로 만들어 주고 있습니다. 이 alsa도 그 중 하나인데 alsa란 'advanced linux sound architecture'의 약자로 각종 사운드 카드 드라이버를 제공하고 있습니다. 이 프로젝트 만들어낸 각종 사운드 카드 드라이버는 무료로 사용할 수 있는데 이번 장에서 이 alsa 드라이버를 사용하는 방법에 대해서 살펴보겠습니다.

나. ALSA 드라이버 설치하기

ALSA 드라이버는 http://www.alsa-project.org에서 최신 드라이버를 다운로드 할 수 있습니다.

ALSA 드라이버를 사용해서 설정할 수 있는 사운드 카드의 종류는 다음과 같습니다.

●ALSA 드라이버(버전 0.4.1)를 통해 사용할 수 있는 사운드 카드

- Gravis UltraSound Classic

- Gravis UltraSound Extreme

- Gravis UltraSound ACE

- Gravis UltraSound MAX

- Gravis UltraSound PnP

- Dynasonic 3-D/Pro

- SoundBlaster 1.0

- SoundBalster 2.0

- SoundBalster Pro

- SoundBalster 16(PnP)

- SoundBalster AWE 32(PnP)

- SoundBalster AWE 64(PnP)

- ESS AudioDrive SEx688

- Yamaha OPL3-SA2/SA3

- OAK Mozart

- S3 SonicVibes PCI

- Ensoniq AudioPCI ES 1370

- Ensoniq AudioPCI ES 1371

- Sound Blaster PCI 64

- Sound Blaster PCI 128

- Sound Blaster Vibra PCI

- CS4232/CS4232A

- CS4235/CS4236B/CS4237B/CS4238B/CS4239

- UltraSound 32-Pro

- ESS Solo-1 ES 1938/ES1946

- ESS AudioDrive ES18XX

- Soundcards based on CS4231 chips

- OPTi 82C9xx chips

- Serial MIDI driver

- Soundcards based on AD1848/AD1847/CS4248 chips

- Trident 4DWave DX

- Trident 4DWave NX

- Aztech Sound Galaxy

- Soundcards based on CS4610/CS4612/CS4614/CS4615/CS4280

- Turtle Beach WaveFront series

- Soundcards based on C-Media CMI8330 chips

- Dummy soundcard

- Advance Logic ALS100

위에서 자신의 사운드 카드 목록을 발견하지 못했다 하더라도 크게 실망할 필요는 없습니다. 모델명이 약간의 차이가 있다면 한번 alsa 드라이버를 설치해보는 것도 좋습니다. 참고로, 필자가 사용하는 cs4624 사운드 카드도 목록에는 없지만 cs461x로 인식되어 사용하는데 아무런 문제점이 없었습니다. alsa 드라이버를 설치하려면 다음과 같이 실행합니다

먼저, cd를 마운트한 후 alsa 프로그램 소스를 적당한 위치로 복사합니다. 한텀과 같은 터미널에서 다음과 같이 입력하고 [enter]키를 누릅니다.

# mount /mnt/cdrom [enter]

# cp /mnt/cdrom/book/driver/alsa/* /tmp [enter]

# cd /tmp [enter]

참고로, 알자 6.1부터는 x 윈도우 매니저로 인라이튼먼트나 kde를 사용하고 있다면 마운트명령어를 사용하지 않아도 cd가 cd롬에 삽입되면 자동으로 마운트 됩니다. 따라서, 제일 처음의 마운트(mount) 명령은 경우게 따라 실행하지 않아도 됩니다.

두 번째로, 복사된 alsa-driver-0.4.1d.tar.gz와 alsa-lib-0.4.1d.tar.gz alsaconf-0.4.1.tar.gz 파일의 압축을 각각 풉니다.

# tar -xzvf alsa-driver-0.4.1d.tar.gz [enter]

alsa-driver-0.4.1d/

alsa-driver-0.4.1d/cards/

alsa-driver-0.4.1d/cards/hal2/

alsa-driver-0.4.1d/cards/hal2/makefile

(생략)

# tar -xzvf alsa-lib-0.4.1d.tar.gz [enter]

alsa-lib-0.4.1d/

alsa-lib-0.4.1d/makefile.in

alsa-lib-0.4.1d/copying

alsa-lib-0.4.1d/changelog

(생략)

# tar -xzvf alsaconf-0.4.1.tar.gz [enter]

alsaconf-0.4.1/

alsaconf-0.4.1/alsaconf

alsaconf-0.4.1/readme

alsaconf-0.4.1/copying

alsaconf-0.4.1/mktgz

alsaconf-0.4.1/alsaconf.spec

위와 같이 각각의 압축파일들의 압축을 풀면, alsa-driver-0.4.1d, alsa-lib-0.4.1d, alsaconf-0.4.1d라는 디렉토리가 각각 생성되고 그 킨에 각각의 파일들이 풀리게 됩니다.

세 번째로, alsa-driver를 컴파일 하기 위해서 alsa-driver-0.4.1d라는 디렉토리로 경로를 변경한 후 다음과 같이 입력하고 [enter] 키를 누릅니다.

# cd alsa-driver-0.4.1d [Enter]

# ./configure --with-isapnp=yes [Enter]

loading cache ./config.cache

checking for gcc... gcc

checking whether the C compiler (gcc ) works... yes

(생략)

# make install [Enter]

ln -sf ../support/isapnp.h include/isapnp.h

make[1]: Entering directory '/usr/backup/CONFIGURE/note-

sound/alsa-driver-0.4.1d/suppotr'

gcc -DALSA_BUILD -I/usr/src/linux/include -I.. -E -

D__GENKSYMS__ isapnp.c | /sin/genksyms -k 2.2.12 >

../include/modules/isapnp.ver

updating ../include/sndversions.h

(생략)

WARNING!!! The mixer channels for the ALSA driver are muted by default!!!

*******************************************************************************

You would use some ALSA or OSS mixer to set the appropriate volume.

# ./snddevices [Enter]

Creating /dev/mixer?... done

Creating /dev/sequencer... done

(생략)

Creating /dev/aload?... done

Creating /dev/aloadSEQ... done

위의 과정을 전부 무사히 마치면 ALSA 사운드 카드 설치가 끝나게 됩니다. 참고로 './configure --with-isapnp=yes'라고 사용한 이유는 ISA PnP 사운드 카드를 사용하는 사용자들을 위해서 이렇게 실행한 것입니다. 좀 더 자세한 컴파일 방법에 대해서 알고 싶다면 alsa-driver-0.4.1d 디렉토리에 들어있는 INSTALL 파일을 참고하세요.

네 번째로, 방금 위에서 풀었던 alsa-lib-0.4.1d이라는 디렉토리로 경로를 변경하고 위와 마찬가지 방법으로 컴파일 후 설치하면 됩니다.

# cd ../alsa-lib-0.4.1d[Enter]

# ./configure [Enter]

creating cache ./config.cache

checking for a BSD compatible install...

/usr/bin/insatll -c

checking wether build environment is snae... yes

(생략)

creating utils/Makefile

creating utils/alsa-lib.spec

creating include/config.h

# make install [Enter]

Making install in doc

make[1]: Entering directory '/usr/backup/CONFIGURE/note-

sound/alsa-lib-0.4.1d/doc'

make[1]: Nothing to be done for 'install'.

(생략)

Making install in utils

make[1]: Entering directory '/usr/backup/CONFIGURE/note-

sound/alsa-lib-0.4.1d/utils'

/bin/sh ../mkinstalldirs /usr/share/aclocal

/usr/bin/install -c -m 644 ./alsa.m4 /usr/share/aclocal/alsa.m4

make[1]: Leaving directory '/usr/backup/CONFIGURE/note-

sound/alsa-lib-0.4.1d/utils

# ldconfig [Enter]

이렇게 하면 alsa에서 제공하는 라이브러리들의 설치가 끝나게 됩니다.

다섯 번째로 이제는 사운드 카드의 설정만 남았습니다. 이번에는 위에서 압축을 풀어서 생성되었던 alsaconf-0.4.1 디렉토리로 경로를 변경한 후 다음과 같이 실행합니다. 참고로, 이 alsaconf 파일을 실행하기 전에 앞서 sndconfig를 실행했을 때와 마찬가지로 메모리에 사운드 관련 모듈이 적재되어 있는지 확인한 후 만일 적재되어 있다면 앞서 살펴본 방법과 같이 메모리에서 제가한 다음 alsaconf를 실행하세요.

# cd ../alsaconf-0.4.1 [enter]

# ./alsaconf [enter]


위와 같은 하면이 나타나면 [enter] 키를 한 번만 누르면 됩니다. 여러 번 누르면 화면이 순간적으로 지나가기 때문에 주의하세요.


위 그림은 alsaconf 가 시스템에 설치된 사운드 카드를 인식한 결과를 출력한 것으로 앞에서도 말했지만 cs4624를 cs4612로 인식하고 있습니다. 여기서 제대로 인식했다면 'yes'를 그렇지 않다면 'no'를 누르세요. 참고로, 나중에 /etc/conf.modules 파일을 수정할 때 사운드 카드의 모델을 알고 있어야 하기 때문에 여기서 인식한 모델의 이름을 기억해두어야 합니다.


이 부분은 특별한 경우를 제외하고는 사용자가 따로 설정할 부분이 아니기 때문에 그냥 기본적으로 입력된 값을 수정하지 말고 [enter] 키를 누르세요.


만일 시스템에 또 다른 카드가 있다면 위의 그림에서 선택해주면 되는데 아마도 사운드 카드를 두 개 이상 사용하는 사용자는 없을 것이므로 목록의 제일 위의 것인 'no more card'를 선택하고 [enter] 키를 누릅니다.


이제 마지막으로 위에서 인식한 사운드 카드의 정보를 /etc/conf.modules 파일에 저장할 것이지를 묻는 것으로 반드시 'yes'를 선택하고 [enter] 키를 누릅니다. 여기서 'yes'를 누르면 alsaconf 명령을 통한 모든 사운드 카드 설정이 끝나게 됩니다. 이제 마지막으로 /etc/conf.modules 파일을 확인하는 것만 남았습니다.

만일, alsaconf가 위처럼 자동으로 사운드 카드를 인식하지 못하고 자동인식에 실패했다면 위에서 본 사운드 카드 목록이 나열되는 화면으로 이동하게 됩니다. 여기서 자신이 사용하는 사운드 카드의 종류를 선택하고 [enter] 키를 누르면 앞서 살펴본 sndconfig 와 유사한 수동설정 화면이 나타납니다. 여기서 알맞은 정보를 입력하면 사운드 카드를 설정할 수 있지만 이런 경우 대부분이 실패할 가능성이 높기 때문에 마지막 수단인 oss 드라이버를 사용하는 것이 좋습니다.

이는 다음에 살펴보겠습니다.

다. /etc/conf.modules 파일 수정하기

alsaconf 명령을 사용해서 제대로 사운든 카드 인식에 성공했다면 /etc/conf.modules 파일을 수정하게 됩니다. 그런데 정확하게 /etc/conf.modules 파일을 수정해주면 좋겠지만 아쉽게도 사용자의 손을 거쳐야 하는 부분이 있습니다.


위 그림을 보면 "--begin : --"으로 시작하는 문장이 보일 것입니다. 이 문장에서부터 "--end--" 까지가 alsaconf에서 사운드 카드를 위해서 새로 추가한 것으로 이 문장들 중에 다음과 같은 부분을 수정해야 합니다.

alias snd-card-0

이 부분 뒤에 alsaconf 가 인식한 사운드 카드의 모델명을 입력해야 합니다. 그런데 그냥 모델명을 입력하는 것이 아니라 /lib/modules/2.2..12.20kr/misc 에 들어 있는 사운드 카드 관련 모듈과 이름을 비교해서 파일이름이 snd-card-*로 시작하는 모듈의 이름을 적어주는 것입니다.

예를 들어 앞 그림에서는 cs4624는 cs4612로 인식했는데, /lib/modules/2.2.12-20kr/misc에는 snd-card-cs461x.o라는 파일이 있습니다. 즉, 아래와 같이 이 파일의 이름을 적어주는 것입니다.

alias snd-card-0 snd-card-cs461x

이런 식으로 /etc/conf.modules 파일을 수정하고 한텀과 같은 터미널에서 다음과 같이 입력하고 실행합니다.

# modprob snd-card-xxxx [enter]

위에서 'snd-card-xxxx' 에는 /etc/conf.modules에 적어준 'snd-card-cs461x'와 같은 모듈의 이름을 적어주는 것입니다. 참고로, isa pnp 사운드 카드를 사용하는 독자들은 /etc/isapnp.conf 파일이 자신의 시스템에 맞게 되어 있는지 한번 확인한 후 실행하는 것이 좋습니다.

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.