gentoo alsa pulseaudio - alsa ミキサーは動作します。hw:1,0 への aplay は動作しますが、構成された PCM への aplay は動作しません。

gentoo alsa pulseaudio - alsa ミキサーは動作します。hw:1,0 への aplay は動作しますが、構成された PCM への aplay は動作しません。

pulseaudioデーモンがない実行中は、aplayを使用してスピーカーに音を送ることができます

aplay -Dhw:1,0 sample.wav

alsamixer は、上記のように再生するときにカードの音量を制御することで期待どおりに動作するようです。特に、マスター チャンネルとフロント チャンネルは、上記で再生されたサンプルの音量に影響します。

aplay -L を実行すると、いくつかの PCM がリストされます。これらの PCM の 1 つを 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 では、次の 2 行のコメントを解除する必要がありました。

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)。

関連情報