Shino's Bar

お家で使うLinuxtux


15 Jan 2006 (初出 9 May 2003) alsa-driver-1.0.10-0.nosrc.rpmほかをアップしました。

Vine Linux にALSAを入れる - バージョン1.xをRPMで

Vine Linux にはサウンド・ドライバとしてOSS freeが付いていますが、 カバーするサウンド・チップは限られおり、 OSSの新しいものは有料化されています。 フリーウェアとしてはALSA projectによりサウンド・ドライバの開発が進められています。 ここではnosrc.rpmを利用して導入する手順を紹介します。
はそれぞれ別にまとめてあります。

Vine Linux 3.0 /3.1 を使用しており、最新版が必要でない場合は Vine Linuxドキュメントチームによる FAQ/8 ALSAの導入 を参考にしてください。ただし apt-get build-dep alsa-driver 不要。たぶん以下の手順でOK。

$ apt-get -b source alsa-driver
# apt-get install alsa-driver-1.0.5a-0vl2.i386.rpm
# apt-get install alsa-lib alsa-utils
# /usr/sbin/alsaconf

サポートされているサウンドカードは?

ALSA projectのページ (日本語ページ) から ALSA sound card matrix を見て、自分のカードのALSAによるサポート状況を調べます。 記載されておればDriverの名前を控えておきます。Driverが空欄で色が掛かっておれば現在サポートされていません。グリーン色は現在開発中ということなので、時を置いてチェックします。

自分のマシンのサウンドカードが何であるかは、次のコマンドでPCIに接続されたハードの情報が出てくるので調べることができます。 PCI接続のカードのほかメインボードに内蔵されているものも出てきます。

$ cat /proc/pci

RPM作成環境の準備

まず自分の環境でrpmパッケージを作成するときの環境を確認してください。 RedHat系(Vineなど)では /usr/src/redhat/ などのディレクトリ以下に,BUILD, RPMS/i386, SOURCES, SPECS, SRPMS のディレクト リ が用意されてます。 他のディレクトリを使うなど環境設定を変更するにはMaking RPMを見てください。 なお、ALSA projectのアーカイブからの場合は一般ユーザー権限でRPMを作成することはできません。

カーネルヘッダの準備

(カーネルを入れ換えたりしていなければこの項はスキップ) ALSAドライバーはカーネルと強い関係があるので、カーネルのバージョンが変わると ALSAドライバーも入れ直ししなければなりません。またカーネルヘッダが正しくな いとちゃんと導入できません。
$ uname -r
2.2.19-0vl0.24
$ rpm -q kernel
kernel-2.2.19-0vl0.24
$ rpm -q kernel-headers
kernel-headers-2.2.19-0vl0.24
これら3つのバージョンが一致していなくてはなりません。 kernel-headersがインストールされていないかバージョンが異なる場合は正しいバージョンのものを入れてください。 また念のため、
$ ls -dl /usr/src/linux*
lrwxrwxrwx    1 root     root           12 Dec  3 17:50 /usr/src/linux -> linux-2.2.19/
drwxr-xr-x   19 root     root         4096 Dec  3 17:50 /usr/src/linux-2.2.19/
で確認します。正しくない場合はカーネル のソース(gz,bz2などのアーカイブではなく、'linux'などのディレクトリ名に展開されたソース群)を/usr/src/linux-2.2.19のディレクトリに置き、/usr/src/linuxのシンボリックリンクを張り直します。 Red Hat Linux 7.x ではもともと /usr/src/linux が存在しませんので、シンボリックリンクを張る作業は必須になります。

ソースの入手

ソースのtarballを ALSA projectのページ あるいはここにリストされているミラーから入手します。最低限必要なものは次の3つです。 (バージョンは2006年1月現在最新のもの) いずれも ~/rpm/SOURCES などRPMを作るために指定された場所にこれらを置いておきます。
ここにnosrc.rpmを用意しています。 これらnosrc.rpmのダウンロード先はどこでも構いません。 たとえば ~/とします。

(昔のバージョン)

各RPMのリビルドと導入

各RPMのリビルド(nosrc.rpm → i386.rpmなど) は一般ユーザー権限で、 できあがった i386.rpmなどバイナリパッケージをインストールするのはroot権限で行います。 それぞれ su の後パスワード入力でrootに、 exit で一般ユーザーに戻って…と 行ったり来たりするのは面倒なので、 Xのデスクトップ上でxtermなどの仮想ターミナルを2つ立ち上げ、 いっぽうは一般ユーザーでalsa-*.nosrc.rpmの置いてあるパスに移動、 他方では rootになり/home/tako/rpm/RPMS/i386 などバイナリパッケージの置き場所に移動しておきます。
  1. alsa-driverの導入
  2. $ cd (alsa-driver-*.nosrc.rpmの置いてあるパス) 
    $ rpm --rebuild alsa-driver-*.nosrc.rpm             #リビルドでrpmを作る
    たくさんのメッセージの最後のほうに
    書き込み中: /home/tako/rpm/RPMS/i386/alsa-driver-0.9.2-0.1.i386.rpm
    などという表示があるはず。 仮想ターミナルをもう1つ立ち上げ、そのディレクトリに移動し、rootになってインストール。
    $ cd /home/tako/rpm/RPMS/i386
    $ su
    $ (rootのパスワードを入力)
    # rpm -ivh alsa-driver-*.i386.rpm


  3. alsa-libの導入
  4. alsa-lib-1.0.10-0以降のパッケージは alsa-driverや alsa-utilsを導入せず、alsa-libのみを導入することもできます。 オーディオ・ドライバは alsa-driverを使わずカーネル付属のものを使うが、アプリケーションが alsa-libを要求している場合など。

    APIドキュメント作成には doxygenが必要です。 alsa-libを使ったプログラム開発をする方は alsa-libリビルドの前にVinePlusなどからdoxygen をあらかじめ導入しておいてください。

    一般ユーザーで
    $ rpm --rebuild alsa-lib-*.nosrc.rpm
    rootで
    # rpm -ivh alsa-lib-*.i386.rpm
  5. alsa-utilsの導入
  6. alsa-libを導入してからでないと以下の操作はできません。 また gettext も必要です。あらかじめ導入しておいてください。


    一般ユーザーで
    $ rpm --rebuild alsa-utils-*.nosrc.rpm
    rootで
    # rpm -ivh alsa-utils-*.i386.rpm

/etc/modules.conf の準備 (OSSドライバを外す)

他のサウンド関係の設定があれば除いておきます。/etc/modules.conf (システムによっては /etc/conf.modules)

alias sound-slot-0 xxxxxxxx

とういう行があれば取り除くか、先頭に「#」を付けてコメントアウトしておきます。 (xxxxxxxx のところはサウンドカードによって異なる) また
# /sbin/lsmod でこのモジュール xxxxxxxx が組み込まれていないかどうか 確認してください。 モジュール xxxxxxxx が組み込まれていたら
# /sbin/rmmod xxxxxxxx でこれを取り除く、あるいはコンピューターをリブートして、これが組み込まれていないことを確認しておきます。

alsaconfによる設定

alsaconfは、alsa-0.5.xのときと違って0.9.xではalsa-driver, 1.x では alsa-utils のパッケージに含まれています。 su - でルートになって /usr/sbin/alsaconfを実行します。
# su -
# /usr/sbin/alsaconf
あとは対話型で設定を進めていきます。 テストで男性の声が聞こえてくればALSA導入完了です。

alsaconfを実行(じっさいにはalsaconfからsnddevicesを実行)したとき

`/dev/mixer0' へのシンボリックリンク `/dev/mixer' を作れません
`/dev/midi0' へのシンボリックリンク `/dev/midi' を作れません
`/dev/dsp0' へのシンボリックリンク `/dev/dsp' を作れません
(以下略)

などというメッセージが出ることがありますが、 リンクを作ろうとしたが、すでに存在していたということだと思います。
$ ls -l /dev/mixer と入力してみて
lrwxrwxrwx 1 root root 11 Jan 6 09:55 /dev/mixer -> /dev/mixer0
出力で'/dev/mixer -> /dev/mixer0'などのリンクが確認できれば問題ありません。


当サイトからダウンロードできるRPMはいずれもテストパッケージです。動作報告を募集しています。
RPM / nosrc.rpmからの導入法は当サイトの説明ページ
問い合わせ、情報は Linux BBS

Shino's Bar goto [MPEG最前線!] [お家で使うLinux]