gentoo alsa pulseaudio - микшер alsa работает; aplay напрямую на hw:1,0 работает; aplay на любой из настроенных PCM не работает

gentoo alsa pulseaudio - микшер alsa работает; aplay напрямую на hw:1,0 работает; aplay на любой из настроенных PCM не работает

Когда демон PulseAudioнетработая, я могу использовать aplay для отправки звука на динамики с

aplay -Dhw:1,0 sample.wav

alsamixer, похоже, делает то, что я и ожидал, управляя громкостью на карте, когда я играю, как указано выше; в частности, главный и передние каналы влияют на громкость сэмпла, воспроизводимого выше.

Когда я делаю aplay -L, он выводит список PCM. Когда я выбираю один из этих PCM для aplay, звука нет вообще. Если 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 передавал ему неправильную конфигурацию — я не знаю ни того, ни другого достаточно, чтобы решить этот вопрос. Если я изменю Pulse audio default.pa, чтобы явно задать конфигурацию оборудования вместо получения ее от udev, это сработает.

В 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).

Связанный контент