Debianと音声出力デバイス
Debian + AMD AシリーズCPU + ASUS M/Bで構成した自作PCについては以前書いた
メインPCをDebianに移行した - なんとな~くしあわせ?の日記
音声デバイスで詰みそうになったのでメモしておく
Linuxで音が出ない時は?
HdaIntelSoundHowto - Community Help Wiki
これはUbuntuのドキュメントだが役に立ちそうだ。
長い文章だけど結局やってることは確認だけである。
デバイスがLinuxに認識されているかどうか
・dmesg,lspciコマンド、または /var/log/messages を見てデバイスが認識されているか確認する
・なんらかのエラーがあればデバイスドライバの読み込みに異常があったか、デバイスが異常な状態にある
・音声デバイスの場合はPCIのログを見ればいい?
ALSAレベルでサウンドデバイスが認識されているかの確認
ALSA(Advanced Linux Sound Architecture)はLinuxのカーネルコンポーネント?らしい。
Advanced Linux Sound Architecture - Wikipedia
ALSAとは?
・デバイスドライバより上位のコンポーネント
・カーネルや上位アプリケーションからサウンドデバイスに対して操作が行える
ここで以下のコマンドを打つと、ALSA認識しているサウンドカードが出力される
(Linuxによって音声デバイスのドライバが認識されていても、ここに出ない場合がある)
cat /proc/asound/cards
ALSAレベルで認識されている場合
・ALSAがちゃんと音声出力デバイスを読み込んでいる場合Debian系Linuxならば「alsamixer」コマンドで音声出力の調整ができる
・alsamixerを使わなくても、GNOMEやXfce4のようなデスクトップ環境レベルのアプリで、音声ミキサーを使用出来る(…LXDEにはない?)
個別の事象
今回使用したM/B「ASUS F2A85 M-PRO」にはアナログ出力のデバイスとしてRealtek ALC892が積まれていた。こいつの調子がとにかく悪く、ブートログにerrorがよく出ていた(※なぜかその状態でも1/3の確率ぐらいで使用できたがw)。
やったこと
# apt-get install firmware-linux-nonfree firmware-realtek
2. /etc/modprobe.d/alsa-base.confを変更
# vim /etc/modprobe.d/alsa-base.conf // 「options snd-hda-intel model=asus」を追記して再起動
とりあえずこれでALSAはデバイスを認識した。alsamixerで音声の調節もできた。
今回の問題は以下のUbuntuのスレッドと同様の問題だった
Ubuntu日本語フォーラム / Ubuntu10.04 64bit で音が出ない
ただしそのスレッドにあるように、今のDebianのカーネルはRealtek ALC892をすべてサポートしているわけではないらしく、現在音声が聞けるのはマザーボード前面のヘッドホン出力のみです、つまりステレオ2ch再生。
不明点
・なぜ初期状態で背面のライン出力も使えたのか?
…firmware-linux-nonfree firmware-realtekを入れた後、ライン出力は使えなくなった。
これが原因なのかもちょっと不明。問題の切り分けができない
先のUbuntuフォーラムにあるカーネルより今の自分の環境のほうがだいぶバージョンが上なのだが、なんで起動できないんだろう?
$ uname -a Linux cowgirl 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
参考にしたサイト
ドキュメント
HdaIntelSoundHowto - Community Help Wiki
フォーラム
[SOLVED] Realtek ALC892 not working on Linux Mint 13 MATE - Linux Mint Forums
audio - No sound with Mint 12 and Realtek ALC892 - Unix & Linux Stack Exchange
Ubuntu日本語フォーラム / Ubuntu10.04 64bit で音が出ない
開発者向けバグ報告
Bug #573378 “ALC892 not supported in 10.04 default kernel” : Bugs : linux package : Ubuntu
その他情報
PulseAudioやAlsaのシステム構成図を見つけたので参考に貼っておきます。ここまで複雑なのをPluseAudioはきちんと処理できているのだろうか?