저는 Conexant CX20584 칩셋을 기반으로 한 Intel HDA 사운드 카드가 장착된 Acer Aspire One 522 넷북을 가지고 있습니다. KDE는 시작 시 소리를 출력하지만 Flash 및 아마도 다른 많은 장치 검색 응용 프로그램은 /dev/dsp
KDE를 통해 소리를 출력할 방법이 없으므로 거의 쓸모없는 멀티미디어 경험을 제공합니다.
ALSA 재생 장치를 사용하여 확인하면 aplay -l
기본 오디오 장치가 0이 아닌 카드 1로 인식되고 카드가 HDMI에 연결되어 있음을 알 수 있습니다.
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
이렇게 해서 얻었 /dev/dsp1
지만 대부분의 앱이 작동하도록 하드코딩한 것 같아서 /dev/dsp
카드 인덱스를 교체할 수 있는 방법을 찾기 시작했습니다. ALSA 문서를 조사한 후 다음 파일을 사용하여 HDMI 및 Intel HDA에서 사용하는 드라이버 모듈에 인덱스를 할당해 보았습니다 /etc/modprobe.d/asound.conf
.
options snd cards_limit=2
options snd-hda-codec-conexant index=0
options snd-hda-codec-hdmi index=1
options snd slots=snd-hda-codec-conexant,snd-hda-codec-hdmi
그런데 그게 안되고, 끝없이 답을 찾다가 잊어버린 몇몇 링크를 토대로 보면 이 index
명령어들이 모듈 로딩 순서를 조정해야 하기 때문인 것 같은데, 이들 커넥선트와 HDMI 코덱은 우연히 같은 Intel HDA 드라이버를 사용하고 있기 때문인 것 같습니다. 모듈이므로 이 경우에는 작동하지 않는 것 같습니다.
즉, 장치가 동일한 ALSA 드라이버 모듈(이 경우 Intel HDA)을 사용할 때 올바른 카드 인덱스를 정의할 수 있는 방법이 있습니까?
답변1
드디어 이 질문에 대한 답을 찾았습니다이 게시물은 다른 포럼에서 가져온 것입니다.(참조는 "시도 1b" 참조) 이에 따라 사용된 드라이버가 동일하더라도 모듈 ID를 지정할 수 있습니다.
alias char-major-116 snd
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-hda-intel
options snd cards_limit=2
options snd-hda-intel id=SB index=0
options snd-hda-intel id=HDMI index=1
이렇게 하면 카드의 올바른 순서가 생성되고 사운드가 예상대로 작동합니다.
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: HDMI [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
다른 유사한 상황에 적용하려면 /proc/asound
카드의 심볼릭 링크를 확인하면 필수 모듈 ID가 됩니다.
$ ls -l /proc/asound/
total 0
lrwxrwxrwx 1 root root 5 Jan 26 19:19 HDMI -> card1
lrwxrwxrwx 1 root root 5 Jan 26 19:19 SB -> card0
dr-xr-xr-x 4 root root 0 Jan 26 19:19 card0
dr-xr-xr-x 3 root root 0 Jan 26 19:19 card1
-r--r--r-- 1 root root 0 Jan 26 19:19 cards
-r--r--r-- 1 root root 0 Jan 26 19:19 devices
-r--r--r-- 1 root root 0 Jan 26 19:19 hwdep
-r--r--r-- 1 root root 0 Jan 26 19:19 modules
dr-xr-xr-x 2 root root 0 Jan 26 19:19 oss
-r--r--r-- 1 root root 0 Jan 26 19:19 pcm
dr-xr-xr-x 2 root root 0 Jan 26 19:19 seq
-r--r--r-- 1 root root 0 Jan 26 19:19 timers
-r--r--r-- 1 root root 0 Jan 26 19:19 version