マザーボード(K7VTA3)のオンボードサウン ドカードで音を鳴らす

HOME > それいけ Linux > サウンド
Last modified: Fri Oct 31 10:54:03 +0900 2008

はじめに

ここに書かれていることは、マザーボード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参照。

トラブルシューティング