![gentoo alsa pulseaudio - alsa ミキサーは動作します。hw:1,0 への aplay は動作しますが、構成された PCM への aplay は動作しません。](https://rvso.com/image/109259/gentoo%20alsa%20pulseaudio%20-%20alsa%20%E3%83%9F%E3%82%AD%E3%82%B5%E3%83%BC%E3%81%AF%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82hw%3A1%2C0%20%E3%81%B8%E3%81%AE%20aplay%20%E3%81%AF%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%20PCM%20%E3%81%B8%E3%81%AE%20aplay%20%E3%81%AF%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.png)
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
)。