gentoo alsapulseaudio - alsa 믹서가 작동합니다. hw:1,0으로 직접 재생하면 구성된 PCM이 작동하지 않습니다.

gentoo alsapulseaudio - alsa 믹서가 작동합니다. hw:1,0으로 직접 재생하면 구성된 PCM이 작동하지 않습니다.

pulseaudio 데몬이아니요실행할 때 aplay를 사용하여 스피커로 소리를 보낼 수 있습니다

aplay -Dhw:1,0 sample.wav

위와 같이 재생할 때 alsamixer는 예상대로 카드의 볼륨을 제어하는 ​​것 같습니다. 특히 마스터 및 전면 채널은 위에서 재생되는 샘플의 볼륨에 영향을 미칩니다.

aplay -L을 실행하면 많은 PCM이 나열됩니다. 재생을 위해 PCM 중 하나를 선택하면 소리가 전혀 들리지 않습니다. pulseaudio가 실행 중이면 aplay는 자동으로 실패합니다. pulseaudio가 실행되고 있지 않으면 오류 2로 인해 실패하고 파일을 열 수 없습니다.

대부분의 사운드 응용 프로그램은 사운드 하드웨어의 낮은 수준 사양을 허용하지 않는 것 같아서 aplay를 통해서 외에는 전혀 사운드를 얻을 수 없습니다. 문제는 상위 PCM 이름이 하드웨어 장치에 올바르게 매핑되지 않는다는 것입니다.

pulseaudio가 없는 이전 커널에는 이 시스템에서 사운드 문제가 없다는 점에 유의하겠습니다.

소리가 나지 않는 경우:

aplay -Dfront sample.wav
aplay -Dpulse sample.wav

aplay -L 출력:

null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
hdmi:CARD=HDMI,DEV=0
    HDA Intel HDMI, HDMI 0
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
    HDA Intel HDMI, HDMI 1
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
    HDA Intel HDMI, HDMI 2
    HDMI Audio Output
default:CARD=PCH
    HDA Intel PCH, ALC892 Analog
    Default Audio Device
sysdefault:CARD=PCH
    HDA Intel PCH, ALC892 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    Front speakers
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Digital
    IEC958 (S/PDIF) Digital Audio Output

aplay -l 출력

card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

답변1

나에게 대답은 Pulseaudio가 udev를 오해했거나 udev가 잘못된 구성을 제공했다는 것입니다. 나는 이 질문을 결정할 만큼 충분히 알지 못합니다. udev에서 가져오는 대신 하드웨어 구성을 명시적으로 설정하기 위해 Pulse audio default.pa를 변경하면 작동합니다.

default.pa에서는 다음 두 줄의 주석 처리를 제거해야 했습니다.

load-module module-alsa-sink device=hw:1,0
load-module module-alsa-source device=hw:1,0

그리고 다음 줄에 주석을 달아주세요:

### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Use the static hardware detection module (for systems that lack udev support)
#load-module module-detect
#.endif

답변2

올바른 카드를 선택하려면 전체 장치 이름을 사용해야 합니다.

aplay -D front:CARD=PCH,DEV=0 sample.wav

기본 카드를 변경하려면 다음과 같은 내용을 global /etc/asound.conf또는 다음 항목에 추가하세요 ~/.asoundrc.

defaults.ctl.card "PCH"
defaults.pcm.card "PCH"

PulseAudio가 올바른 카드를 사용하도록 하려면 카드를 구성해야 합니다(시도해 보세요 pavucontrol).

관련 정보