Tips記事
» 2002年05月29日 00時00分 UPDATE

Red Hat Linux 7.xでALSAサウンドドライバを使いたい

[木田佳克,ITmedia]

 Red Hat Linux 7.2(7.3)ディストリビューションでは,標準のシステムCD-ROMにALSA(Advanced Linux Sound Architecture)のRPMが含まれていない。標準で利用されるサウンドドライバ「OSS」でサポートされていないチップの場合,ALSAサウンドドライバを試してみよう。サポートされているチップは,次のサイト上で確認ができる。

 ここでは,ソースコードをダウンロードして音を鳴らすまでの手順を解説しよう。

http://alsa.linux.or.jp/

 標準設定のRed Hat Linux 7.2では,上記のサイトからのソースをconfigure実行した場合,/usr/src/linux/ディレクトリが見つからないといったエラーが表示されてしまう。この問題には,configureファイルを編集するか(configureオプションを指定するか),新たに/usr/src/linux/のシンボリックリンクを作成すればよい。ここでは後者の方法で進める。

# cd /usr/src/
# ln -s linux-2.4.18-3/ linux
$ cd
$ ls alsa* 次に挙げる4種類のファイルをダウンロードする
alsa-lib-0.5.10b.tar.bz2
alsa-driver-0.5.12a.tar.bz2
alsaconf-0.4.3b.tar.gz
alsa-utils-0.5.10.tar.bz2
$
$ tar jxfv alsa-lib-0.5.10b.tar.bz2
$ tar jxfv alsa-driver-0.5.12a.tar.bz2
$ tar jxfv alsaconf-0.4.3b.tar.gz
$ tar jxfv alsa-utils-0.5.10.tar.bz2

 ダウンロードするファイルは,上記リストに挙げるようドライバ(alsa-driver),ライブラリ(alsa-lib),ユーティリティ(alsa-utils),設定ツール(alsaconf)の4種類だ。コンパイルを行う際にも注意点があり,上記の順番で実行していく必要がある。

$ cd alsa-driver-0.5.12a
$ ./configure
$ su
# make; make install

 ドライバをmake installした時点では,次のように音声がミュートされている旨のWARNINGが表示される。しかし,これは無視して構わない。

〜make installの続き〜
ALSA modules were sucessfully compiled.
〜中略〜
if [ -d /sbin/init.d ]; then \
  install -m 755 utils/alsasound /sbin/init.d/
alsasound; \ elif [ -d /etc/rc.d/init.d ]; then \ install -m 755 utils/alsasound /etc/rc.d/
init.d/alsasound; \ elif [ -d /etc/init.d ]; then \ install -m 755 utils/alsasound /etc/init.d/
alsasound; \ fi cat WARNING WARNING!!! The mixer channels for the ALSA
driver are muted by default!!! *************************************
************************************* You would use some ALSA or OSS mixer to
set the appropriate volume.

 続いて,前述したようにlib(ライブラリ),utils(ユーティリティ)それぞれのコンパイル,インストールを行う。

# cd ../alsa-lib-0.5.10b
# ./configure
# make; make install
# cd ../alsa-utils-0.5.10
# ./configure
# make; make install

 次はデバイスファイルの作成だ。このファイル(リンク)を通してデバイスにアクセスされる。

# cd ../alsa-driver-0.5.12a
# ./snddevices

 ALSAドライバを新規にインストールした場合には,次のalsaconfも実行しよう。表示されるメッセージを注意深く見ていると,サンプル音声ファイル「/usr/share/sndconfig/sample.au」,設定ファイル「/etc/asound.conf」,制御スクリプト「/etc/rc.d/init.d/alsasound」などが確認できるだろう。

# cd ../alsaconf-0.4.3b
# ./alsaconf
Aplay: version 0.5.10 by Jaroslav Kysela 
<perex@suse.cz> Using soundcard 'Intel ICH 82801AA at 0xd400,
irq 10' Playing Sparc Audio '/usr/share/sndconfig/
sample.au' : Mu-Law, Rate 8000 Hz, Mono Aplay: unable to set channel params Saving the mixer setup used for this in /etc/
asound.conf. It will be restored when you load alsa with "/
etc/rc.d/init.d/alsasound start". If you save your own mixer settings to this
file, run "alsactl store". 〜中略〜 #

 以上の手順によって,次のようにモジュールが設定され,組み込まれる。

# cat /etc/modulus.conf
〜中略〜
# --- BEGIN: Generated by ALSACONF, do not edit
. --- # --- ALSACONF verion 0.4.3b --- alias char-major-116 snd alias snd-card-0 snd-card-intel8x0 alias char-major-14 soundcore alias sound-slot-0 snd-card-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 options snd snd_major=116 snd_cards_limit=1
snd_device_mode=0666 snd_device_gid=0 snd_de
vice_uid=0 options snd-card-intel8x0 snd_index=0 snd_id=
CARD_0 snd_pbk_frame_size=128 snd_cap_frame_
size=128 snd_mic_frame_size=64 # --- END: Generated by ALSACONF, do not edit. ---

 次のようにlsmodを実行すれば,現在モジュールが組み込まれているどうかを確認することが可能だ。次のように表示されれば,すぐにでも音が鳴らせる状態と判断できる。

# lsmod
〜中略〜
snd-card-intel8x0 11968   0  (autoclean)
snd-pcm           42816   0  (autoclean) 
[snd-card-intel8x0] snd-timer 11872 0 (autoclean)
[snd-pcm] snd-ac97-codec 29440 0 (autoclean)
[snd-card-intel8x0] snd-mixer 35112 0 (autoclean)
[snd-ac97-codec] snd 47392 1 (autoclean)
[snd-card-intel8x0 snd-pcm snd-timer snd-ac97
-codec snd-mixer] soundcore 6692 0 (autoclean) [snd]

 ここでの例は,ソースコンパイルでのインストールのため,制御スクリプトの処理や設定は自動的に行ってくれない。このため,起動マシン再起動時にもデーモンが実行されるようにシンボリックリンクを張っておくのもよいだろう。

# ln -s /etc/rc.d/init.d/alsasound /etc/rc.d/
rc2.d/S96alsa # ln -s /etc/rc.d/init.d/alsasound /etc/rc.d/
rc3.d/S96alsa # ln -s /etc/rc.d/init.d/alsasound /etc/rc.d/
rc5.d/S96alsa

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ