ALSA
このページではLinux のサウンドドライバ ALSA ( Advanced Linux Sound Architecture )についてのページです。
Last modified: Thu Feb 25 19:30:00 JST 2002
目次
〜ALSAって〜

Linux のサウンドドライバは

  1. OSS Lite (カーネルに含まれている)
  2. OSS (Front Technologies により作成されている)
  3. ALSA
の3つがある。
OSS Lite はカーネルに含まれてるので、Linux では標準だが、3つのうち対応するカード(特にPCI)が少ない。 4Front の OSS は有料で、一番対応するカードが豊富。OSS Lite とほぼ互換性がある。
て、ALSA は、複数のカードが使えます。エミュレーションにより、OSS Lite の機能を ある程度提供しています。( OSSのFM音源対応の MIDI プレーヤーが使えないの)


〜インストール〜

まず、カーネルをモジュール対応で1度コンパイルしておいてください。 2.2.x のカーネルを利用する場合は、CONFIG_SOUND を[y]または[m]にしてください。 また、CONFIG_KMOD も [y] にしておいたほうがいいでしょう。
ディストリビューションがDebianの方でDebian のパッケージを使う方は、ちょっと読み飛ばしてください。 →ここへ
次に、ALSA のソースを準備してください。 ALSAのWebサイトで見つけて取って きてください。取ってくるのは
alsa-driver-*.tar.gz
alsa-libs-*.tar.gz
alsa-utils-*.tar.gz
alsaconf-0.4.3b.tar.gz
*はバージョン番号です。最新のものは 0.5.10a です。
まず、alsa-driver を展開し、そのディレクトリで

 ./configure
 make
 make install
 ./snddevices
で出来上がりです。
次に、適当なディレクトリに alsaconf を展開して alsaconf を 実行してサウンドカードの設定をしてください。これを実行すると /etc/conf.modules に
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-trid4dwave
alias snd-card-1 snd-card-cs4236
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-12 snd-pcm-oss
options snd snd_major=116 snd_cards_limit=2 snd_device_mode=0666 \
        snd_device_gid=29 snd_device_uid=0
options snd-trid4dwave snd_index=0 snd_id=4DWAVE \
        snd_dac_frame_size_dx=64 snd_adc_frame_size_dx=64

みたいにできると思います。でこのあとに
post-install [サウンドカードのモジュール名] /usr/sbin/alsactl restore
を追加しておくと、ALSAドライバが読み込まれるごとに、ミキサーの設定ができます。 サウンドカードが複数ある場合は、最後のサウンドカードのモジュール名をだけを 指定してください。
あと、/etc/modules にサウンドカードのモジュールを追加しましょう。 で、
modprobe [サウンドカードのモジュール名]
で、ALSAを組み込むことができます。alsa-utilsをインストールしていない場合、 上の追加をしていたら文句をいわれます。
cat /proc/asound/cardsで自分のサウンドカードのドライバが読み込まれているか、確認しましょう。また、OSSエミュレーションを使わないことにしていなければ、 OSS 用のアプリケーションが使えますので、ミキサーを設定して音を鳴らしてみましょう。OSS 用のアプリケーションをいれてない場合は、音を鳴らすのはもう少し先です。

次に、alsa-libs をインストールします。最後に alsa-utils をインストールします。
このあと、ミキサーの設定をX Window 用のアプリケーション xamixer2 か amixer,alsamixer もしくは gamix で 行います。(個人的には X クライアントの gamix がお勧めです。)
設定が終わったら、root で
alsactl store
でミキサーの設定を保存します。これで次にドライバを読み込むときからは、この ミキサーの設定になります。

★Debian な場合★

Debian にはALSA のパッケージが用意されています。
alsa-modules もしくは alsa-base
alsa-source
alsalib* ( potato 以降は libasound*)
alsalib*-dev ( potato 以降は libasound*-dev)
alsautils
をインストールしてください。ただし、alsautils には X のアプリケーションである xamixer2 と gamix は含まれていません。別にパッケージが存在するので gamix をインストールしましょう。
*はバージョン番号です。Potato なら 0.4.1です。
また、Potato には alsa-modules-2.2.12 および alsa-modules-2.2.13 が 用意されていますので、これもインストールすれば以下のモジュール作成を 省くことができます。

インストールしたら、/usr/src/modules
make-kpkg modules
を実行してください。この実行のためには root 権限が必要です。
実行したら、その上のディレクトリに alsa-modules-[カーネルバージョン]_[Debian バージョン]*.deb というファイルができると思います。これを dpkg でインストールしてください。

上で書いた /etc/conf.modules (または /etc/modules.conf ) への post-inst の追加は/etc/modutils/alsaにして、その後、update-modules を実行してください。
modprobe サウンドモジュール名でドライバを組み込んで、 ミキサーを設定してalsactl storeを実行すれば、一応 次のブート時からもALSAを使えるようになります。
個人的には /etc/modules へサウンドモジュールを書いとく方が好きです。


〜ALSA なアプリケーション〜

ここでは私が使っている ALSA 対応のアプリケーションを紹介します。


戻る
以上