ここに書かれていることは、マザーボードK7VTA3のオンボードサウンド カードの設定をした際の覚え書きです。
今回はGPL(GNU general public license)とLGPL(GNU library general public license)version2に従って配布されている The Advanced Linux Sound Architecture(ALSA)プロジェクト (日本語)で開発されているサ ウンドドライバを使用します。
APTでは以下のようにインストールできます。ただし、ALSAのドライバを組み込 むカーネルソースが/usr/src/linux/以下にあるものとします。もちろん、カー ネルは既に構築済みでなければいけません。
% sudo apt-get install alsa-source # cd /usr/src # tar xvfz alsa-driver.tar.gz # cd /usr/src/linux # make-kpkg --revision fuga1.0 modules_image # dpkg -i ../alsa*.deb
make-kpkgでコンパイルするときにエラーが発生してコンパイルできなかったの ですが、/usr/src/linux/includeをインクルードパスに追加したらコンパイルで きました。こんな感じ。
# CC="gcc -DALSA_BUILD -I/usr/src/linux/include" make-kpkg \ --revision fuga1.0 modules_image
というか今ALSAのホームページ見たらalsa-driver-0.9.0rc3をコンパイルすると きはalsa-driver-0.9.0rc3/include/linux/isapnp.hを消せって書いてるじゃん。
まず、自分の使っているサウンドカードの種類を知る必要があります。自分で買っ たのであれば箱に使っているチップ名が記載されているでしょう。メーカーもの ではじめからついていたのであれば取説に記載されているでしょう。もし、どち らも無くしているとしたら、パソコンのケースを開けて実際にカードを見てみま しょう。たいていは、カードにチップ名が記載されています。それでも分からな ければ以下のようにしてみて下さい。最初からこうやってもいいんですけどね。
% /sbin/lspci -vv
カードのチップがわかったら、そのカードがサポートされているか調べます。サ ウンドカード名がわかっていればこちらで対 応している(ドライバが開発されている)かがわかります。しかし、今回の場合 のようにオンボードのサウンドカードにはサウンドカード名がありません(ある のかな?)。ということで、さきほど調べたチップ名を利用します。alsa-driver のサウンドモジュールは/lib/modules/`uname -r`/alsa/ディレクトリにインス トールされます。サウンドモジュール名はsnd-チップ名.oとなっているので
% find /lib/modules/`uname -r`/alsa -iname "*チップ名*"
とやると、お目あてのチップのドライバがあるのかがわかります。ちなみに私は 以下のようにしました。
% find /lib/modules/`uname -r`/alsa -iname "*via8233*"
出力はこうでした。
/lib/modules/2.4.19/alsa/snd-card-via8233.o
どのモジュールを使えばいいかがわかったら、今度は/etc/conf.modulesを編集 します。ALSAドラ イバーのインストールガイドはJF プロジェクトで和訳されて いるので参考にするといいでしょう。
設定ファイルの例は/usr/share/doc/alsa-modules-バージョン /examples/modules-0.9.confにあるので、それを参考にするといいでしょう。こ のファイルには一般的な設定しか書いていないので、サウンドカード用のドライ バの設定は自分で書かなければいけません。各ドライバの設定項目の説明はソー スファイルの中のINSTALLというファイルに書いています。
以下が/etc/alsa/modutils/0.9に置いてある私の設定ファイルです。
alias char-major-116 snd alias char-major-14 soundcore alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0660 snd_device_gid=29 snd_device_uid=0 alias snd-card-0 snd-via8233 alias sound-slot-0 snd-card-0 options snd-via8233 snd_ac97_clock=48000 snd_id=CARD_0
最後の三行以外は全てのドライバで共通の設定です。snd-via8233.oには snd_ac97_clockが設定できると書いてあるのでoptionsで設定しています。
ちなみに、0.9.0rc3より後(0.9.0rc4以降)ではsnd_は付きません。現在 (0.9.0rc5)の設定は以下の通りです(モジュール名がvia82xxになってる)。
alias char-major-116 snd alias char-major-14 soundcore options snd major=116 cards_limit=1 device_mode=0660 device_gid=29 device_uid=0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss alias snd-card-0 snd-via8233 alias sound-slot-0 snd-card-0 options snd-via8233 ac97_clock=48000 id=CARD_0
各ドライバのオプションは /usr/share/doc/alsa-modules-2.4.19/INSTALL.gz参照。
音が出ないときは、まず、本当に組み込まれているかを確認して下さい。 以下のコマンドを実行するとわかります。
% /sbin/lsmod
自分の組み込んだモジュールが表示されていますか?されていなければ組 み込まれていません。設定が間違っている可能性があります。
モジュールが組み込まれていることが確認できたら、aumix, xmixer, gmix等で音量がミュートになっていないことを確認して下さい。スピーカー についても同様です。私は、これに気付かずに諦めて新しいサウンドカー ドを買ってしました。今も未開封で眠っています。
ユーザをaudioグループに所属させて下さい。