Shino's Bar

Linux奮戦記


成果のいくつかを公開。というよりは自分のための覚え書き?
改定 23 Apr 2002 /初出 15 Jan 2001 Vine Linux にALSAを入れる - VineSeedPlusのSRPMを利用

Vine Linux にはサウンド・ドライバとしてOSS freeが付いていますが、 カバーするサウンド・チップは限られおり、 OSSの新しいものは有料化されています。 フリーウェアとしてはALSA projectによりサウンド・ドライバの開発が進められています。 ここではVineSeedPlusで用意されているSRPMを利用して導入する手順を紹介します。
はそれぞれ別にまとめてあります。
  1. サポートされているサウンドカードは?
  2. ALSA projectのページから ALSA sound card matrix を見て、自分のカードのALSAによるサポート状況を調べます。 記載されておればDriverの名前を控えておきます。Driverが空欄で色が掛かっておれば現在サポートされていません。グリーン色は現在開発中ということなので、時を置いてチェックします。
  3. パッケージの入手

  4. VineSeedPlusに最新のrpm/srpmが用意されています。 JaistのftpサイトなどのSRPMSから入手。RPMSにある *.i386.rpm はカーネルのが異なるのでたいてい使えません。必ずSRPMSにあるものからリビルドしてください。他のディストリビューションでもこの方法でたいてい大丈夫でしょう。 ファイルは4つに分かれています。 2002年4月現在の最新版は

    alsa-driver-0.5.12a-0vl0.1.src.rpm
    alsa-lib-0.5.10b-0vl1.src.rpm
    alsa-utils-0.5.10-0vl2.src.rpm

    alsaconf-0.4.3b-0vl6.src.rpm
    このほかに同じVineSeedPlusにあるgamix-1.11-0vl1.src.rpmも入れておくと便利です。

  5. /etc/conf.modulesの準備
  6. 他のサウンド関係の設定があれば除いておきます。 /etc/conf.modules に

    alias sound-slot-0 xxxxxxxx

    とういう行があれば取り除くか、先頭に「#」を付けてコメントアウトしておきます。 (xxxxxxxx のところはサウンドカードによって異なる)
  7. カーネルヘッダの準備
  8. (カーネルを入れ換えたりしていなければこの項はスキップ) 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 が存在しませんので、シンボリックリンクを張る作業は必須になります。
  9. RPM作成環境の準備
  10. まず自分の環境でrpmパッケージを作成するときの環境を確認してください。 RedHat系(Vineなど)では /usr/src/redhat/以下に,BUILD, RPMS/i386, SOURCES, SPECS, SRPMS のディレクト リ が用意されてます。 他のディレクトリを使うなど環境設定を変更するにはMaking RPMを見てください。 なお、ALSA projectのアーカイブからの場合は一般ユーザー権限でRPMを作成することはできません。

  11. alsa-driverの導入
  12. # cd (alsa-driver-*.src.rpmの置いてあるパス) 
    # rpm --rebuild alsa-driver-*.src.rpm             #rpmをリビルド
    たくさんのメッセージの最後のほうに
    書き込み中: /usr/src/redhat/RPMS/i386/alsa-driver-0.5.11-0vl3.i386.rpm
    などという表示があるはず。
    # cd /usr/src/redhat/RPMS/i386
    # rpm -ivh alsa-driver-*.i386.rpm #できたrpmを使ってインストール
    
    このあとサウンド関係のデバイスファイルを準備します。
    # su -
    # snddevices

    (註)VineProject供給 のrpmパッケージを使わなければこのスクリプトは/usr/doc/alsa-driver-*にあります。

    # cd /usr/doc/alsa-driver-* #インストールによってできたこのディレクトリに移動
    # ./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'などのリンクが確認できれば問題ありません。

  13. alsa-libの導入
  14. alsa-driverを導入してからでないと以下の操作はできません。
    # cd (alsa-lib-*.src.rpmの置いてあるパス) 
    # rpm --rebuild alsa-lib-*.src.rpm             #rpmを作成
    # cd /usr/src/redhat/RPMS/i386
    # rpm -ivh alsa-lib-*.i386.rpm #できたrpmを使ってインストール
    
  15. alsa-utilsの導入
  16. alsa-driverとalsa-libを導入してからでないと以下の操作はできません。
    # cd (alsa-utils-*.src.rpmの置いてあるパス) 
    # rpm --rebuild alsa-utils-*.src.rpm             #rpmを作成
    # cd /usr/src/redhat/RPMS/i386
    # rpm -ivh alsa-utils-*.i386.rpm #できたrpmを使ってインストール
    
  17. alsaconfの導入とalsaの設定
  18. ルートになって
    # cd (alsaconf-*.src.rpmの置いてあるパス) 
    # rpm --rebuild alsaconf-*.src.rpm             #rpmを作成
    # cd /usr/src/redhat/RPMS/noarch
    # rpm -ivh alasaconf-*.noarch.rpm
    # alsaconf
    
    あとは対話型で設定を進めていきます。 ここで使っているサウンドカードが一覧にあれば良いのですが、なければ近いもの を適当に選び、 /etc/conf.modules(システムによってはmodules.conf)を書き換えたところで中断 し、あとは手動で設定を続けます。
    一覧表にある場合は最後までalsaconfで設定を進めます。 テストで男性の声が聞こえてくればALSA導入完了です。 このあとrootで
    # su -
    # alsactl store
    を実行しておきます。一度実行すればあとはいつも設定値が保存されるはず。

    手動で設定の場合 /etc/conf.modulesの例としてYMF724の場合を示します
アドバイスは E-mail で マスターまで
Shino's Bar goto [シノバー店内案内] [PRIVATE ROOM マスターの部屋] [DOS/Vマシンの自作] [MPEG2最前線!] [Linux奮戦記]