* 音がならない時 --NVIDIA HDMI 編 * [#cd9e68d0]

openSUSE13.1で、Yastで設定しても、nvidiaのカード経由で、音が鳴らない時の対処法
ハードウエア環境:マザーボードの音源はBIOSにてOFFにし、音源カードはNVIDIAのカードだけの前提

** 最初にカードのデバイス番号としてどのようなものがあるかチェック ** [#dd141226]

 $ aplay -l
  **** ハードウェアデバイス PLAYBACK のリスト **** [#t7971c9f]
 カード 0: NVidia [HDA NVidia], デバイス 3: HDMI 0 [HDMI 0]
 サブデバイス: 1/1
 サブデバイス #0: subdevice #0
 カード 0: NVidia [HDA NVidia], デバイス 7: HDMI 0 [HDMI 0]
 サブデバイス: 1/1
 サブデバイス #0: subdevice #0
 カード 0: NVidia [HDA NVidia], デバイス 8: HDMI 0 [HDMI 0]
 サブデバイス: 1/1
 サブデバイス #0: subdevice #0
 カード 0: NVidia [HDA NVidia], デバイス 9: HDMI 0 [HDMI 0]
 サブデバイス: 1/1
 サブデバイス #0: subdevice #0

ここで、デバイス番号が、3,7,8,9の4通りがある事がわかった。
順番にデバイスに接続し、音が鳴るかチェック

 $ speaker-test -c 2 -r 48000 -D hw:0,3

 
 speaker-test 1.0.27.2

  
 再生デバイス: hw:0,3
 ストリームパラメータ: 48000Hz, S16_LE, 2 チャネル
 16 オクターブのピンクノイズを使用
 レート 48000Hz (要求値 48000Hz)
 バッファサイズ範囲 64 〜 262144
 ピリオドサイズ範囲 32 〜 131072
 最大バッファサイズ 262144 を使用
 ピリオド数 = 4
 period_size = 65536 で設定
 buffer_size = 262144 で設定
 0 - Front Left
 1 - Front Right
 ピリオド時間 = 4.228354
 ....
 ....


のような表示が出るが、音が鳴らなければ対象デバイス番号は無効なので、
Ctrl + D のキーで終了し、さっさと次の番号を指定する

 $ speaker-test -c 2 -r 48000 -D hw:0,7
 $ speaker-test -c 2 -r 48000 -D hw:0,8
 $ speaker-test -c 2 -r 48000 -D hw:0,9

スピーカーから 「ザーーーー」という音が聞こえたら、そのデバイス番号が当たり!

**/etc/asound.conf ファイルを作成する。(root にて行う)  ** [#z1d075b4]

 # vi /etc/asound.conf

 pcm.!default {
 type hw
 card 0
 device 9 <==ここの番号に、当たりの番号を指定する
 }

 ctl.!default {
 type hw
 card 0
 device 9 <==ここの番号に、当たりの番号を指定する
 }

** /etc/pulse/defaut.pa を確認し、必要があれば編集 ** [#i23d8ec0]

 # vi /etc/pulse/defaut.pa
 以下のコマンドが有効になっていなければ、有効にする

 load-module module-alsa-sink device=hw:0,9

 ここで、hw:0,9 の ”9” は、当たりのデバイス番号を指定。
 ちなみに、hw:0,9の "0"は、1つ目のカードという意味なので、オンボードの音源を
 有効にしている場合では、NVIDIAのカードは1などになるかもしれない・・・。


設定が終了したら、再起動して何か鳴らしてみる。

#hr
カテゴリ: [[ハードウェア]]