2011年8月20日

[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@xxxxx>


投稿者 xml-rpc : 2011年8月20日 22:00
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106039
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。