aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man4/pcm.4
blob: 3f24bb5fcdd0382eb8f5fee446d7f7df2eea3379 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
.\"
.\" Copyright (c) 1998, Luigi Rizzo
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	%Id: pcm.4,v 1.2 1998/10/22 14:12:55 bde Exp %
.\"
.\" Based on Japanese translation by Yasuhito FUTATSUKI <futatuki@fureai.or.jp>
.\" [man-jp 1426]
.\" jpman %Id: pcm.4,v 1.3 2000/08/29 00:54:17 jsakai Stab %
.\"
.Dd June 3, 1998
.Dt PCM 4 i386
.Os FreeBSD
.Sh 名称
.Nm pcm
.Nd FreeBSD オーディオデバイスドライバ
.Sh 書式
.Cd "device pcm0 at isa? port? tty irq 5 drq 1 flags 0x15"
.Sh 解説
.Nm
ドライバは WSS/MSS 仕様または SBPro や SB16 と互換性のある
様々な ISA サウンドカードをサポートしています。
音声入力/再生のみをサポートしており、また、ほとんどのカードで
疑似でない本当の全二重動作が可能です。
.Pp
通常のパラメータの他に flags フィールドをセカンダリ DMA のチャネルを
指定するのに使用します
(一般的には全二重カードで音声入力するために使用します)。
flags には、セカンダリ DMA チャネルを使用しないカードでは 0 を、
使用する場合にはチャネル C を指定するのに 0x10 + C をセットします。
.Pp
PnP オーディオカードも FreeBSD リリース 2.2.6 から利用できるようになった
.Nm pnp
ドライバを用いることでサポートしています。
詳しい情報は
.Xr pnp 4
のマニュアルページを参照して下さい。
特に (認識された) PnP カードに割り当てられるユニット番号はレガシ ISA
デバイスの後になること、実際にドライバで使用するリソース
(port および irq と drq) は "device pcm0" の行からではなく
PnP の設定が用いられることは覚えておいてください。
ですから、カーネルコンフィグファイルに
.Pp
.Cd "device pcm0 ..."
.Pp
のように書いたとすると、最初に見つかる PnP オーディオカードの
ユニット番号は 1 となり、/dev/audio1、/dev/dsp1 等として
アクセスすることができます。
アプリケーションの多くは暗黙のうちに
/dev/audio を使用するようになっているので、
以下のように /dev/audio から正しいデバイスのエントリにシンボリックリンクを
作るのがよいでしょう。
.Pp
.Cd cd /dev
.Cd rm audio dsp dspW mixer
.Cd ./MAKEDEV snd1
.Cd ln -s audio1 audio
.Cd ln -s dsp1 dsp
.Cd ln -s dspW1 dspW
.Cd ln -s mixer1 mixer
.Pp
本ドライバは WSS/MSS カードで最大能力を発揮します。
WSS/MSS はすっきりした構造をしており、
それぞれ独立した機能の集合になっています。
偶然にもこれらのカードは市場で一番安いオーディオカードでもあります。
SB や ESS などといった他のカードは内部構造が複雑で、
また資料が手に入らないことも稀ではありません。
結果、これらのカードのサポートはそれほど良くありません。
.Pp
ドライバは装備されているハードウェアを認識し、
正しく動作させるために出来る限りのことをします。
したがってカーネルのコンフィグファイルに
それほど詳細な設定をする必要はありません。
PnP カードについては自動的に識別するので実に簡単です。
PnP でない ISA のカードについては
(カーネルコンフィグファイルで明示的にアドレスを指定して
優先させない限りは)
まずアドレス 0x530 と 0x604 で MSS カードを探し、
その後に 0x220 と 0x240 で SB カードを探します。

.Sh IOCTL
本ドライバは Voxware の ioctl() のほとんどをサポートしており、
(広く使われている mpeg プレイヤや Linux のバイナリを含めて)
ほとんどのアプリケーションは修正することなしに動作します。
違いはいくつかはあります (その中でも重要なひとつはオーディオ
バッファをメモリマップしてアクセスする能力の違いです)。
このためにアプリケーションの中にはオーディオモジュールに
ちょっとした変更をして再コンパイルする必要があるものもあるでしょう。
サポートしている ioctl の完全なリストについては
/usr/include/machine/soundcard.h を参照して下さい。

.Sh サポートしているカード
.Pp
サポートしているコーデック (訳注: 音声の入出力を行う回路)/カードのリストを、
PnP 設定が可能なものについては適用可能な PnP の設定情報も含めて、
以下に示します
(デフォルトのパラメータを示しますが、
実際のあなたのリソースはこれと違っているかもしれません。)

.Bl -tag -width 2m  % begin list
.It CS4237, CS4236, CS4232, CS4231
.Cd "pnp 1 0 os enable port0 0x534 port2 0x220 irq0 5 drq0 1 drq1 3"
.Pp
これらのカードはすべて MSS モードで全二重で完璧に動作します。
このチップセットは、他にもありますが、A/Open の AW35 および AW32、
Intel のマザーボードのいくつか、
および (CS4231は) 非 PnP のカードに使用されています。
.Pp
Voxware の資料によれば CS4232 はバグ持ちとの報告がありますが、
本当かどうか定かではありません。
私の Intel 製マザーボードの 1 つでは音声入力が動作しませんが、
これは単に音声入力の DMA チャネルが ISA の DMA コントローラに
接続されていないためです。 

.It GUSPnP
.Cd "pnp 1 0 os enable port0 0x220 port1 0x320 port2 0x32c irq0 5 drq0 7 drq1 5"
.Pp
MSS モードで全二重をサポートしています。
GUSPnP は、本物の CS4231 を使用しておらず、
また mu-law 形式を扱うときのエミュレーションにバグがあると疑っています。
このカードはもう生産されていませんので、
わざわざカードを (mu-law で動作することがわかっている) "Mode3" に
セットする特別なコードを採り入れることはしないで
内部的に U8 形式を用いてドライバ内部でソフトウェアで形式の変換をしています。
このことによって分解能が失われますので、
このカードでは可能な限り 16 ビットモードを使用して下さい。

.It Yamaha OPL-SAx
.Cd "pnp 1 0 os enable port0 0x220 port1 0x530 port2 0x388 port3 0x370 irq0 5 drq0 1 drq1 3"
.Pp
すべてのモードで完全に動作します。
このチップは様々な PnP カードで使用されているのみならず、
(非 PnP モードで) マザーボードやラップトップマシンで用いられています
(たとえば東芝の Libretto)。

.It OPTi931
.Cd "pnp 1 1 os enable port0 0x534 port2 0x220 port3 0xe0d irq0 10 drq0 1 drq1 6"
.Pp
このチップはバグ持ちですが、これらのチップ以外に全二重で動作するカードを
見付けることが出来なかった時期もあったので、ドライバでたくさんの回避策を
とって全二重で動作するようにしました。チップのバグのため、u-law 形式は
内部では U8 形式を用いています。

.It SB16, Vibra16C, および古い SB16/AWExx カード
.Cd "pnp 1 0 os enable port0 0x220 irq0 5 drq0 1 drq1 5"
.Pp
これらのコーデックは、
片方向を 8 ビットで、もう一方を 16 ビットで使用することで、
制限付きの全二重動作可能です。
ドライバはこのモードでの動作をサポートしていますが、
このモードでの動作は CreativeLabs ではサポートされていないことを
覚えておいて下さい。

.It Vibra16X および新しめの SB16/AWExx カード
.Cd "pnp 1 0 os enable port0 0x220 irq0 5 drq0 1 drq1 3"
.Pp
最近になって CreativeLabs はコーデック (DSP) を変更しましたが、
新しい回路は古い物と若干異なっています。
最も顕著な違いは 2 つの 8 ビット DMA チャネルの使用法です。
これによって本ドライバの全二重動作サポートが動作しなくなったようです。
ウェーブテーブルを使用することによって全二重動作は可能になるかもしれませんが、
本ドライバではウェーブテーブルをサポートしていないので
半二重で我慢してください。

.It SBPro とそのクローン
その他のほとんどのカードの既定動作がこのモードです。
それらのカードに対しては限定的な (そしてバグがあるかもしれない)
サポート、8 ビット半二重しかありません。
(ESS チップの場合のように)時としてハードウェアがそれ以上の能力を
もっている場合でも、です。
.El
.Pp
.Sh 診断と問題解決
.Bl -tag -width 2m
.It "This is XXX but LDN Y is disabled"
.Pp
これは bios が PnP デバイスを使用不可のままにしており、
手動で "-c" つきでブートして上記の pnp 設定を行わなければならないことを
示しています。 

.It "pcmX: unit not configured, perhaps you want pcmY ?"
これは正しくないユニットを用いていることを示しています。
一般に、正しいユニットへのシンボリックリンクを作らずに
PnP カードを使用しているときに起こります。
/dev ディレクトリで正しいユニットを指すようにシンボリックリンクを
(場合によってはデバイスエントリも) 作り直して下さい。

.It "timeout flushing dbuf_out ..."
これはカードの設定に問題 (具体的には、DMA チャネル) があるか
あるいは (滅多にないことですが) ドライバに問題があるかによって、
カードが正しく認識されていないことを示します。音声入力に使用する
DMA チャネルを確認して下さい。

.It capture does not work
これは入力 DMA チャネルが正しく設定されないときによく起こります。

.El
.Sh バグ
資料がないため、SB16 のサポート状態は十分ではありません。
同様に、ミキサのサポートは不完全であり、
またあなたのカードの機能 (たとえば全体の音量の制御など) の中には
すべてのデバイスについて
サポートされていないものがあるかもしれません。
.Sh 歴史
.Nm
デバイスドライバは
.Fx 2.2.6
で初めて登場しました。
.Sh 作者
.Nm
デバイスドライバおよびこのマニュアルページは
.An Luigi Rizzo (luigi@iet.unipi.it)
が書きました。