Gentoo
gentoo alsa pulseaudio - alsa 混音器工作;直接播放到 hw:1,0 作品;播放到任何配置的 PCM 都不起作用
當 pulseaudio 守護程序沒有執行時,我可以使用 aplay 將聲音發送到揚聲器
aplay -Dhw:1,0 sample.wav
當我像上面那樣玩時,alsamixer 似乎可以控制卡上的音量來達到我的預期;特別是主通道和前通道會影響上面播放的樣本的音量。
當我執行 aplay -L 時,它會列出許多 PCM。當我選擇其中一個 PCM 進行播放時,根本沒有聲音。如果 pulseaudio 正在執行,則 aplay 會靜默失敗。如果 pulseaudio 沒有執行,它會失敗並返回錯誤 2,無法打開文件。
大多數聲音應用程序似乎不允許聲音硬體的低級規格,所以除了通過播放之外我根本無法獲得任何聲音。我認為問題在於更高級別的 PCM 名稱沒有正確映射到硬體設備。
我會注意到沒有 pulseaudio 的舊核心在這台機器上沒有聲音問題。
這些不產生聲音:
aplay -Dfront sample.wav aplay -Dpulse sample.wav
應用 -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
應用 -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
對我來說,答案是 Pulseaudio 要麼誤解了 udev,要麼 udev 給了它錯誤的配置——我對任何一個都沒有足夠的了解來決定這個問題。如果我將 Pulse 音頻 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