사운드 카드와 HDMI 모두 Intel HDA 드라이버를 사용하는 경우 사운드가 작동하지 않습니다. 장치 로딩 순서를 바꾸는 방법은 무엇입니까?

사운드 카드와 HDMI 모두 Intel HDA 드라이버를 사용하는 경우 사운드가 작동하지 않습니다. 장치 로딩 순서를 바꾸는 방법은 무엇입니까?

저는 Conexant CX20584 칩셋을 기반으로 한 Intel HDA 사운드 카드가 장착된 Acer Aspire One 522 넷북을 가지고 있습니다. KDE는 시작 시 소리를 출력하지만 Flash 및 아마도 다른 많은 장치 검색 응용 프로그램은 /dev/dspKDE를 통해 소리를 출력할 방법이 없으므로 거의 쓸모없는 멀티미디어 경험을 제공합니다.

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

관련 정보