このページではLinux のサウンドドライバ ALSA ( Advanced Linux Sound Architecture )についてのページです。
Last modified: Thu Feb 25 19:30:00 JST 2002
目次
〜ALSAって〜
Linux のサウンドドライバは
- OSS Lite (カーネルに含まれている)
- OSS (Front Technologies により作成されている)
- 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 対応のアプリケーションを紹介します。
- esound
1つのPCMチャンネルで多重化再生を行う。ALSA対応になると、2つ以上のPCM
デバイスがあると、空いているものを使うようになる。
- Timidity++
ソフトウェアMIDIプレーヤー
- mpg123 (ver 0.59q 以降)
コマンドラインなmp3 プレーヤー。make linux-alsa でALSA対応のバイナリができる。
mpg123 -a [カード No.]:[PCM チャンネル No.]
で、使用するPCMを選択可能。
- alsaplayer
mp3 や wav などのオーディオプレーヤー。可変速再生やLevelmeter、
Spacescope がおもしろい。
- xmms(旧 x11amp)
いわずと知れた winamp のようなオーディオプレーヤ。デフォルトのアーカイブには
ALSA は対応していないが、ALSA プラグインが作られています。
→(そのぺーじ?)
xmms-alsa が出る直前に、x11amp ALSA plugin を元に、私も xmms 用の ALSA plugin を
作ってみました。せっかくですので、公開しておきます。
たまに xmms-aalsa への英語のメールをもらいますが、ALAS のバグな場合も
あるので私の英語力では十分な対応は出来ません。ですので日本語以外での
xmms-aalsa への対応は致しません。
- gamix
ALSA 0.4.x の alsa-utils に含まれていたミキサーユーティリティ。
alsa-utils のソースでは
gettext による日本語化はしてあるのですが、alsa-utils の configure では
それを有効にはできないし、日本語カタログも含まれていません。ちょっとだけでも
日本語表示をしたければ、以下のものを使いましょう。
1.10 からはドイツ語も対応しました。
戻る
以上