Audio

如何檢查為什麼 HDMI 上的聲音不起作用

  • February 3, 2012

我在我的系統上安裝了 Gentoo clean,除了我的 /home 但我刪除了所有可能對聲音有影響的隱藏文件夾(.mplayer .pulse* .config .esd_auth 等等),並且對於新使用者adduser mistertest -m -G audio,video,users,結果是一樣的,不當我在 mplayer 中播放文件時發出聲音。

它是 Z68 晶片組,我在 CPU 中使用 Intel IGP H2000,所以這不應該是我主機板上的 spdif 連接器的問題,我認為我已經在核心中安裝了所有正確的模組。我沒有額外的硬體來檢查我的聲音是否正常工作(沒有耳機或外部揚聲器),但我認為問題可能是一些錯誤的配置或內部 spdif(如果有的話)。

dronemother ~ # lsmod | grep snd
snd_hda_codec_hdmi     22705  1
snd_hda_codec_realtek   190506  1
snd_hda_intel          21727  3
snd_hda_codec          63422  3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep               5726  1 snd_hda_codec
snd_pcm                69969  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_timer              17697  1 snd_pcm
snd                    53814  13 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_    timer
soundcore               5009  1 snd
snd_page_alloc          6641  2 snd_hda_intel,snd_pcm

dronemother ~ # lspci -v
# cut other stuff away here    
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
       Subsystem: ASRock Incorporation Device 1892
       Flags: bus master, fast devsel, latency 0, IRQ 46
       Memory at fe600000 (64-bit, non-prefetchable) [size=16K]
       Capabilities: [50] Power Management version 2
       Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
       Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
       Capabilities: [100] Virtual Channel
       Capabilities: [130] Root Complex Link
       Kernel driver in use: snd_hda_intel
       Kernel modules: snd-hda-intel

我安裝了 pulseaudio、alsa-plugins、mplayer、mixer 和 pavucontrol。在 mplayer 中播放文件時沒有錯誤,只是沒有聲音。

那麼我怎樣才能檢查我的問題到底在哪裡呢?

編輯:我剛剛從 Ubuntu Live USB 記憶棒啟動 PC,聲音也不起作用。(花了一點時間,不能每天重啟伺服器,有些人依賴它的服務。)

在 gentoo IRC 和論壇上多次詢問這個問題後,我被推向了正確的方向並能夠解決問題。

~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
 Subdevices: 1/1
 Subdevice #0: subdevice #0

如第 2 行所述,這些是所有可用的播放設備。我相應地配置了我的 /etc/asound.conf 。(也可以在每個使用者的 ~/.asoundrc 中完成)

~ $ cat /etc/asound.conf
pcm.analog {
       type hw
       card 0
       device 0 }

pcm.digital {
       type hw
       card 0
       device 1 }

pcm.hdmi0 {
       type hw
       card 0
       device 3 }

pcm.hdmi1 {
       type hw
       card 0
       device 7 }

在每個條目中,點之後的部分是可以自由選擇的本地別名。其他應用程序可以使用它來辨識設備。使用aplay -D plug:hdmi1 ~/soundfile.wavfinally 播放聲音(實際上您應該播放 wav 文件,因為 aplay 無法解碼 mp3 或類似情況)。

所以我將這幾行附加到我的 /etc/asound.conf

pcm.!default {
       type  plug
       slave.pcm "hdmi1"
}

現在一切都像魅力一樣運作。

引用自:https://unix.stackexchange.com/questions/29185