web-dev-qa-db-ja.com

HDMI経由のサウンドが機能しない理由を確認する方法

/ home以外のGentoo cleanをシステムにインストールしましたが、サウンドに影響を与える可能性のあるすべての隠しフォルダー(.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を起動したところ、サウンドも機能しませんでした。 (少し長くかかった、毎日サーバーを再起動できない、一部の人々はそのサービスに依存しています。)

8
Baarn

Gentoo IRCそして最後に forums でこの質問を何度も尋ねた後、私は正しい方向に進んで問題を解決することができました。

~ $ 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

Line2で述べたように、これらはすべて利用可能な再生デバイスです。 /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を使用すると、最終的にサウンドが再生されました(実際には、wavファイルを再生する必要があるため、aplayはmp3などをデコードできません)。

したがって、私はこれらの数行を/etc/asound.confに追加しました

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

そして今、すべてが魅力のように機能します。

6
Baarn