ちなみに、99/11/28現在の私の環境は以下の通り。
まずは、ALSAからソースを入手します。
(x,y,zは、バージョン番号)
- ALSAドライバ
- alsa-driver-x.y.z
- ALSAライブラリ
- alsa-lib-x.y.z
- ALSAユーティリティ
- alsa-utils-x.y.z
- ALSA設定ツール
- alsaconf-x.y.z
ALSAを作る前にカーネルでSoundを使うようになっているか確認します。カーネルコンパイル時に"Sound card support"で"Y"を指定します(CONFIG_SOUND=y)。ただし、以降聞かれる使用するカード、ドライバに関する設定は全て"N"を指定します。
bash-2.03$ grep CONFIG_SOUND= /usr/src/linux/.config CONFIG_SOUND=y
# cd /usr/src/linux
# make config
("Sound card support"で"Y"を指定する。以降全て"N"を指定する。)
# make dep; make clean
# make bzImage
# make modules
# make modules_install
# cp arch/i386/boot/bzImage /vmlinuz
# rdev -R /vmlinuz
# cp System.map /boot/.
# sync; sync; sync
# lilo
# shutdown -r 0
ALSAドライバのソースを展開してコンパイルします。コンパイルが終了したらインストールを行い、snddevicesスクリプトでデバイスファイルを作ります。
# tar zxvf alsa-driver-0.4.1f2.tar.gz
# cd alsa-driver-0.4.1f2
# ./configure
# make
# make install
# ./snddevices次に、/etc/modules.confにデバイス、カード情報を設定します。この設定は、alsaconfを用いて行います。
# tar zxvf alsaconf-0.4.2.tar.gz
# cd alsaconf-0.4.2
# alsaconf
(画面の指示に従い、カードの種類、IRQ、DMA等の設定を行います。) Select Card : 8: SoundBlaster_1.0 Card identifier : CARD_1 IO port : 0x220 IRQ : 5 8-bit DMA : 1 Max. 8-bit DMA size in KB: 64Let'sNote(CF-S21)では、/etc/modules.confに以下の設定が追加されました。
# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 0.4.2 ---
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-1 snd-card-sb8
alias sound-slot-1 snd-card-1
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-1 snd-seq-oss
alias sound-service-1-3 snd-pcm1-oss
alias sound-service-1-12 snd-pcm1-oss
options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0666 snd_device_gid=0 snd_device_uid=0
options snd-card-sb8 snd_index=1 snd_id=CARD_1 snd_port=0x220 snd_irq=5 snd_dma8=1 snd_dma8_size=64
# --- END: Generated by ALSACONF, do not edit. ---設定ファイルの設定が終了したら、以下のコマンドを実行してALSAドライバをカーネルにロードします。以下のコマンドは、/etc/rc.d/rc.modulesに追加しておくとよいでしょう。
# modprobe snd-card-sb8
(sb8の部分は、カードの種類により異なります。)カードが認識されていれば以下のように情報が見えます。
$ cat /proc/asound/cards 0 [CARD_1 ]: SB - Sound Blaster Pro Sound Blaster Pro at 0x220, irq 5, dma 1
アプリケーションでALSAドライバを使うためALSAライブラリをコンパイルしてインストールします。
# tar zxvf alsa-lib-0.4.1e.tar.gz
# cd alsa-lib-0.4.1e
# ./configure
# make
# make installミキサーとサウンド再生ツール等が含まれているALSAユーティリティをコンパイルしてインストールします。
# tar zxvf alsa-util-0.4.2.tar.gz
# cd alsa-util-0.4.2
# ./configure
# make
# make installALSAの音量設定がデフォルトでは、0なので、ミキサーで設定します。xamixer2を実行します。
mpg3を再生するため、mpg123を作ります。
# tar zxvf mpg123-0.59r.tar.gz # cd mpg123-0.59r # make linux-alsa # make install 再生方法は、以下の通り。
$ mpg123 -2 /tmp/love.mp3
MIDIの再生には、TiMidi++-2.8.0を使いました。以下の通りコンパイルとインストールします。
./configure --enable-audio=alsa --with-default-output=alsa \ --with-x --enable-audio --enable-ncurses --enable-tcltk \ --enable-gtk --enable-network --enable-spectrogram $ make $ su # make installMIDIの再生には、パッチが必要です。ここでいうパッチとは、ピアノとかバイオリンとか音源の定義が書かれているファイルのことです。私は、guspat-APR-11-1998を持って来てインストールしました(サイズがでかい!)。
# cd /usr/local/share
# tar zxvf guspat-APR-11-1998.tar.gztimidity.cfgのパスが、/usr/local/lib/timidityになっている部分があったので/usr/local/share/timidityに修正しました。これで、インストールは終りです。早速再生してみましょう。
$ timidity -Os8 avemaria.mid
前章で、timidityを使えるようにしました。このソースには、Netscape用のpuluginを作るためのソースも含まれています。作り方とインストール方法は、以下の通りです。
$ cd interface/Plugins
$ make ump.so
$ cp ump.so ~/.netscape/plugins/.さて、鳴るでしょうか?
PCMCIAのSCSIカードを挿してMOを使ったらライト中カーソルの動きが遅くなったり、サウンドデバイスが使えなくなったり、MOをマウントした瞬間フリーズしたり、動作不安定となりました。原因は、IRQ5の競合でした。IRQ5は、サウンドカードで使用するためPCMCIAカードに割り当てないよう設定しました。"/etc/pcmcia/config.opts"に以下を追加します。
# Built-in sound port
exclude irq 5サウンドカードとSCSIを使う人は、要注意です。