온보드 오디오 컨트롤러로 어떻게 전환합니까?

온보드 오디오 컨트롤러로 어떻게 전환합니까?

내 데스크톱(Arch 실행)에 (아주, 아주) 오래된 SB Live가 있습니다! 사운드 카드가 더 이상 제대로 작동하지 않습니다. 대신 마더보드의 온보드 오디오 컨트롤러를 사용하고 싶습니다. 안타깝게도 pavucontrol내 DE(Cinnamon) 설정에는 SB Live 카드만 표시됩니다(더 큰 이미지를 보려면 클릭하세요).

                                        pavucontrol 스크린샷

                                        계피 오디오 설정

그러나 inxi온보드 카드가 인식되었으며 운전자가 할당되었음을 표시합니다.

$ inxi -A
Audio:     Card-1 Intel NM10/ICH7 Family High Definition Audio Controller driver: snd_hda_intel
           Card-2 Creative Labs SB Live! EMU10k1 driver: snd_emu10k1
           Card-3 Logitech Webcam C210 driver: USB Audio
           Sound: Advanced Linux Sound Architecture v: k4.2.5-1-ARCH

드라이버 모듈이 실제로 로드되었습니다.

$ lsmod | grep snd_hda_intel
snd_hda_intel          32768  9
snd_hda_codec         106496  3 snd_hda_codec_via,snd_hda_codec_generic,snd_hda_intel
snd_hda_core           49152  4 snd_hda_codec_via,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_pcm                86016  11 snd_usb_audio,snd_ac97_codec,snd_hda_codec,snd_hda_intel,snd_emu10k1,snd_hda_core
snd                    65536  41 snd_usb_audio,snd_ac97_codec,snd_hwdep,snd_timer,snd_hda_codec_via,snd_pcm,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_emu10k1,snd_seq_device

온보드 카드가 SB Live!에 의해 차단되면 SB의 드라이버를 블랙리스트에 추가했습니다.

$ echo 'blacklist snd_emu10k1' | sudo tee /etc/modprobe.d/snd_emu10k1.conf

다시 시작하면 inxi다음이 표시됩니다.

$ inxi -A
Audio:     Card-1 Intel NM10/ICH7 Family High Definition Audio Controller driver: snd_hda_intel
           Card-3 Logitech Webcam C210 driver: USB Audio
           Sound: Advanced Linux Sound Architecture v: k4.2.5-1-ARCH

그리고 SB라이브! Cinnamon 설정에는 더 이상 표시되지 않지만 pavucontrol온보드 카드도 표시되지 않습니다. 위 스크린샷에는 HDMI 포트만 표시되어 있습니다.

그렇다면 시스템에서 온보드 사운드 카드를 사용하려면 어떻게 해야 합니까?

답변1

udev를 사용하여 자동으로 카드 로드

ALSA 인식 사운드 카드를 자동으로 로드하는 역할을 하는 pulseaudio 모듈은 module-udev-detectudev를 지원하는 시스템에 있습니다. 이 모듈은 pulseaudio를 시작할 때 로드되어야 하며 default.pa일반적으로 /etc/pulse/.

모듈이 로드되었는지 확인하려면 다음을 실행하세요.

pactl list short modules

그렇지 않은 경우 module-udev-detect다음을 실행하여 로드하고 테스트할 수 있습니다.

pactl load-module module-udev-detect

시스템에 있는 모든 ALSA 카드는 사운드 설정에서 선택하거나 다음을 사용하여 출력 수신기로 로드되어야 합니다.

pactl list short cards

성공하면 다음 줄을 다음 줄에 추가할 수 있습니다 default.pa.

.ifexists module-udev-detect.so
load-module module-udev-detect
.else
load-module module-detect
.endif

module-detectudev를 지원하지 않는 시스템의 카드가 감지 될 수 있습니다.

ALSA 카드를 수동으로 로드

실패할 경우 다음 명령을 사용하여 ALSA 카드를 수동으로 로드할 수도 있습니다.

pactl load-module module-alsa-card <options>

<options>영역은 하드웨어에 따라 다릅니다. 다음 예에서는

device_id="0" name="pci-0000_00_05.0" card_name="alsa_card.pci-0000_00_05.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes
  • device_id주어진 카드번호입니다

      aplay -l
    
  • name우리가 자유롭게 선택할 수 있는 이름이에요

  • card_name위에 나열된 대로 ALSA에서 정의한 이름입니다.

      ls /dev/snd/by-path
    
  • 다른 옵션은 표준 카드의 기본값입니다.

/etc/pulse/default.pa다시 한 번 성공하면 사운드 서버가 시작될 때마다 로드 되도록 추가할 수 있습니다 .

load-module module-alsa-card <options>

관련 정보