[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:19717] Re: SOUND DriverALSAの組み込み方
-
From:KOJIMA Mitsuhiro
-
Date:Mon, 21 Jul 2003 11:23:25 +0900 (JST)
- Subject: [plamo:19717] Re: SOUND DriverALSAの組み込み方
- From: KOJIMA Mitsuhiro <kojima@xxxxxxxxxxx>
- Date: Mon, 21 Jul 2003 11:23:26 +0900 (JST)
こじま@梅雨末期の大雨であちこち大変みたいですね,です.
From: naomijj@hi-ho.ne.jp
Subject: [plamo:19716] Re: SOUND Driver ALSAの組み込み方
Date: Mon, 21 Jul 2003 11:12:17 +0900
> (他のmodulesを組み込む時もメジャー、マイナー番号の付け方が解りません。)
> ALSAに限らず、modulesを使う時いつも気になります。
> 検索をかけては、真似ているのですが、番号の割り出しをどのようにするのか。
> いつも疑問ですし、興味があります。
> 検索をかけたりしますが、まだはっきり解りません。
> PCIスロットなどに差すと、スロット位置で変わったりするのか?と思ったりしてます。
ここしばらく苦労している某解説書で,ちょうどこのヘンの話を書いてたので
ご参考までに.
# 出版されるかは不明だけど(^^;),
-----------------------------------------------
-- /etc/modules.conf
Linux では,ほとんどのドライバがモジュール化され,動作中でも必要に応じ
て組み込めるようになっています.そのために,どのモジュールドライバがど
のデバイスに対応するかを指定するための設定ファイルが /etc/modules.conf
です.以下に RH8.0 の /etc/modules.conf を示します.
alias parport_lowlevel parport_pc
alias eth0 pcnet32
alias scsi_hostadapter BusLogic
alias usb-controller usb-uhci
alias char-major-14 sb
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
RH8.0 の場合,ハードウェアを自動的に識別する機能が組み込まれているため,
/etc/modules.conf は自動的に作成され,比較的簡単な構成になっています.
上記の例のように,/etc/modules.conf では alias の指定によって仮想的な
デバイス名と実際のモジュールデバイスが対応づけられ,options によって,
そのモジュールデバイスを組み込んだ際に与えられるパラメータを指定できま
す.例えば,
alias char-major-14 sb
は,メジャー番号 14 のデバイス(/dev/sequencer や /dev/dsp 等,サウンド
関係のデバイス)を利用する際には,sb.o というモジュール(Open Sound
System 製のサウンドブラスタ用ドライバ)を組み込む,という意味になります.
また,
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
という指定は,sb.o というモジュールを組み込む際には,パラメータとして
"io=0x220.." を与える,という意味になります.
同様に,
alias eth0 pcnet32
イーサネットを利用する際は,pcnet32.o というモジュール(AMD PCnet32 ネッ
トワークカード用のドライバ)を利用する,という意味です.
もう少し複雑な例として,Plamo-3.1 の /etc/modules.conf の中から
ALSA(Advanced Linux Sound Archtecture)を利用する際の設定を紹介します.
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-intel8x0
post-install snd-card-0 alsactl restore
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
上記の例の 1 行目は, ALSA の場合デバイスのメジャー番号として 116 が割
りあてられているため,メジャー番号 116 のデバイスを利用する際には snd
というモジュールドライバを利用するという意味の設定です.
Linux のサウンド機能は,従来 OSS(Open Sound System) が担っており,OSS
用に開発されたアプリケーションも多数あるため, ALSA には OSS と共存す
る機能も用意されており,OSS 用のデバイス(メジャー番号 14 のデバイス)が
必要になった際は OSS が提供している soundcore モジュールドライバを利用
する,という指定が 2 行目です.
ALSA の場合,複数のサウンドカードを同時に利用することができるため,実
際のサウンドカード用のモジュールドライバはカードごとに snd-card-0 から
snd-card-7 まで指定することができます.上記の例の 3 行目が実際のサウン
ドカード用のモジュールドライバの指定で,snd-card-0 として snd-intel8x0
モジュールドライバを利用する,という設定になっています.4 行目の
post-install は,snd-card-0 で指定したモジュールドライバをインストール
した後に実行するコマンドの指定で,上記の例では alsactl restore コマン
ドを実行し,ボリューム等の設定を復旧するようにしています.
5 行目以下の指定は OSS を前提としたアプリケーションに対して ALSA が提
供する機能を指定するものです.5 行目は OSS が利用する一枚目のサウンド
カード(sound-slot-0)として ALSA の snd-card-0(実体は snd-itel8x0)を割
り当て,6 行目以降の sound-service-0-X はそのサウンドカードを用いて提
供する各種サービスに対して ALSA のモジュールを割りあてています.X の部
分は OSS が提供するサービスのマイナー番号に対応しており,(14, 0)は
/dev/mixer, (14, 1)は/dev/sequencer,(14, 3)は/dev/dsp0,(14, 8)は
/dev/music,(14, 12)は/dev/adsp0 にそれぞれ対応する機能を提供するため
のモジュールを指定しています.
/etc/modules.conf にはこのように複雑な依存関係を指定することができます
が,高機能な分,モジュールを読み込む度にチェックするのは大変な作業にな
ります.そのため,ld.so.conf と ld.so.cache の関係と同様,どのモジュー
ルを使う際にはどのモジュールを読み込む必要があるかという情報をあらかじ
め用意しておくことになっています.このためのコマンドが depmod で,
depmod -a コマンドを実行すると /etc/modules.conf に記述に従って存在す
るモジュールドライバを調べ, "/lib/modules/<カーネルのバージョン>/modules.dep"
というファイルに依存関係を記述します.すなわち,/etc/modules.conf を修
正した場合は depmod -a コマンドを実行して依存関係情報(modules.dep)も更
新しておく必要があります.
/etc/modules.conf のより詳細な説明は modules.conf の man ページを,モ
ジュールを読み込むためのコマンドについては modprobe や insmod の man
ページを参照してください.
- References
-
- [plamo:19715] Re: SOUND Driver ALSAの組み込み方, HOTTA Sadamichi
- [plamo:19716] Re: SOUND DriverALSAの組み込み方, naomijj
[検索ページ]
[メール一覧]
Plamo ML 公開システム