[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:55601] Re: サウンドドライバの適用Tips【was: squeezeでサウンド】



こんな感じにまとめてしまいました。
間違ってる部分等ありましたら、ご指摘ください。
なお、一部の行が120文字を越えた箇所があるため、メーラによっては一行が複数行に
跨っている可能性があります。

サウンドが機能しない時の対処方法。

1.サウンドデバイスが認識されているかどうかのチェックを行う
  *) lspciコマンド - 内蔵のPCI接続デバイスを表示させる
 **) lsusbコマンド - USB接続のデバイスを表示させる
  ※一部ノートPCなど、内蔵デバイスをUSB接続させているものもあるため。
その結果、一覧にAudioとかSoundとか言ったサウンド関連の文字列のものがあれば
  ハードウェアとして認識されていると思って良いだろう。

実例:Gigabyte GA-G31M-ES2L REV2.Xを使用
~$ lspci (サウンド関連のみ抽出)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
インテルのHDオーディオデバイスが接続されている事が分かる。

2.ドライバモジュール名とそのモジュールが組み込まれ、ドライバをシステムが認識しているかどうかのチェック
 *)lsmodコマンド - Linux カーネルのモジュールの状態を表示するプログラム

実例:~$ lsmod (サウンド関連のみ抽出)
snd_hda_intel          16791  1 
snd_hda_codec          46002  1 snd_hda_intel
snd_hwdep               4054  1 snd_hda_codec
snd_pcm                47226  2 snd_hda_intel,snd_hda_codec
snd_seq                35327  0 
snd_timer              12258  2 snd_pcm,snd_seq
snd_seq_device          3673  1 snd_seq
snd                    34387  9 snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq,snd_timer,snd_seq_device
soundcore               3450  1 snd
snd_page_alloc          4977  2 snd_hda_intel,snd_pcm
モジュール名が snd_hda_intel であることがわかり、モジュールとして認識されている事が分かる。

3.snd_hda_intelが使用するコーデックを調べておく。
~$ cat /proc/asound/card0/codec*  | grep -i code
実例:~$ cat /proc/asound/card0/codec*  | grep -i code
Codec: Realtek ID 887
snd_hda_intelが使用しているコーデックがRealtekのALC887であることがわかる。

4.現在のほとんどのLinuxディストリビューションでは、サウンドデバイスの取扱いをALSAが行っている。
デバイスが認識され、ドライバモジュールがロードされているにも関わらず、正常動作しない場合、
alsaの設定ファイルの記述に問題がある可能性が高い。
設定ファイルは"/etc/modprobe.d/alsa-base.conf"であり、設定に必要なオプション等
は、"/usr/share/doc/alsa-base/driver/"配下のファイルに収められている。
今回はIntel HD Audioがハードとして組み込まれているので
"/usr/share/doc/alsa-base/driver/HD-Audio.txt.gz"
"/usr/share/doc/alsa-base/driver/HD-Audio-Models.txt.gz"
の二つのファイルを読んでみる。
HD-Audio-Models.txtには、使用されるcodec別の設定オプションが記載されている。
今回はALC887なのだが、一覧には無い。そこで、HD-Audio.txtを読んでみると
"コーデックが見当たらなくても驚かないでね。深呼吸でもして落ち着こう。"と書かれている。
人情の機微を分かった技術文書である。
読み進めると、大意としては"model=generic"というちょっと特殊なオプションを使用してみたらどうか
などといった事が書かれている(ようです)。
この時の書式は":~$ man modprobe.conf"によると "options modulename option..."という
書式である事が分かる。つまり
"options snd-hda-intel model=generic"と"/etc/modprobe.d/alsa-base.conf"に追記
し、リブートさせてみると良い。

5.lspciやlsusbでハードウェアを認識できないとき。
正常に取り付けられているか、ハードウェアに異常がないかのチェックが必要。

6.lsmodコマンドでドライバモジュールが表示されないとき。
ドライバをインストールする必要がある。
-- 
Y_Kawano (zagan) <ml@xxxxxxxxxxxx>