gentoo alsa pulseaudio - alsa 믹서가 작동합니다. hw:1,0으로 바로 플레이하세요. 구성된 PCM에 대한 재생이 작동하지 않습니다

gentoo alsa pulseaudio - alsa 믹서가 작동합니다. hw:1,0으로 바로 플레이하세요. 구성된 PCM에 대한 재생이 작동하지 않습니다

pulseaudio 데몬이~ 아니다실행 중이라면 aplay를 사용하여 스피커로 소리를 보낼 수 있습니다.

aplay -Dhw:1,0 sample.wav

alsamixer는 위와 같이 플레이할 때 카드의 볼륨을 제어하면서 내가 기대하는 대로 작동하는 것 같습니다. 특히 마스터 및 프론트 채널은 위에서 재생되는 샘플의 볼륨에 영향을 미칩니다.

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

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

펄스 오디오가 없는 이전 커널에는 이 시스템에서 사운드 문제가 없었습니다.

소리가 나지 않습니다.

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

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

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

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

관련 정보