如何檢查為什麼 HDMI 上的聲音不起作用
我在我的系統上安裝了 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.wav
finally 播放聲音(實際上您應該播放 wav 文件,因為 aplay 無法解碼 mp3 或類似情況)。所以我將這幾行附加到我的 /etc/asound.conf
pcm.!default { type plug slave.pcm "hdmi1" }
現在一切都像魅力一樣運作。