.\"Matsushita(Panasonic) / Creative CD-ROM Driver (matcd) .\"Authored by Frank Durda IV .\" .\"Program and Documentation are Copyright 1994, 1995 Frank Durda IV. .\"All rights reserved. .\" "FDIV" is a trademark of Frank Durda IV. .\" .\" .\"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 positioned at the very beginning of this file without .\" modification, all copyright strings, all related programming .\" codes that display the copyright strings, this list of .\" conditions and the following disclaimer. .\"2. Redistributions in binary form must contain all copyright strings .\" and related programming code that display the copyright strings. .\"3. 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. .\"4. All advertising materials mentioning features or use of this .\" software must display the following acknowledgement: .\" "The Matsushita/Panasonic CD-ROM driver was developed .\" by Frank Durda IV for use with "FreeBSD" and similar .\" operating systems." .\" "Similar operating systems" includes mainly non-profit oriented .\" systems for research and education, including but not restricted .\" to "NetBSD", "386BSD", and "Mach" (by CMU). The wording of the .\" acknowledgement (in electronic form or printed text) may not be .\" changed without permission from the author. .\"5. Absolutely no warranty of function, fitness or purpose is made .\" by the author Frank Durda IV. .\"6. Neither the name of the author nor the name "FreeBSD" may .\" be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" (The author can be reached at bsdmail@nemesis.lonestar.org) .\"7. The product containing this software must meet all of these .\" conditions even if it is unsupported, not a complete system .\" and/or does not contain compiled code. .\"8. These conditions will be in force for the full life of the .\" copyright. .\"9. If all the above conditions are met, modifications to other .\" parts of this file may be freely made, although any person .\" or persons making changes do not receive the right to add their .\" name or names to the copyright strings and notices in this .\" software. Persons making changes are encouraged to insert edit .\" history in matcd.c and to put your name and details of the .\" change there. .\"10. You must have prior written permission from the author to .\" deviate from these terms. .\" .\"Vendors who produce product(s) containing this code are encouraged .\"(but not required) to provide copies of the finished product(s) to .\"the author and to correspond with the author about development .\"activity relating to this code. Donations of development hardware .\"and/or software are also welcome. (This is one of the faster ways .\"to get a driver developed for a device.) .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPER(S) ``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 DEVELOPER(S) 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. .\" .\"-------------------------------------------------------------------------- .\"Dedicated to: My family and Max, my Golden Retriever .\"-----No changes are allowed above this line------------------------------- .\" .\" Please note any documentation updates here including your name .\" and the date. .\"<2> Text brought in sync with changes made in versions 1(17) - 1(21) .\" Frank Durda IV 4-Jul-95 .\"<3> Text brought in sync with changes made in versions 1(22) - 1(25) .\" Frank Durda IV 24-Sep-95 .\" .\" %Id: matcd.4,v 1.10 1998/03/12 07:30:34 charnier Exp % .\" $FreeBSD$ .\" .Dd September 24, 1995 .Dt MATCD 4 i386 .\"Synchronized to Version 1(25) of matcd.c .Os FreeBSD 2.0.5 .Sh 名称 .Nm matcd .Nd Matsushita (Panasonic) CD-ROM ドライバ .Sh 書式 .Pp .Cd "controller matcd[0-4] at isa? port [?| addr]" .br .Cd "/dev/[r]matcd[0-15][a|c] .br .Cd "/dev/[r]matcdl[0-15][a|c] .Pp .Sh 解説 .\" Matsushita-Kotobuki Electronics Industries および Matsushita の .\" 日本語表記は、http://www.panasonic.co.jp/corp/group.html で確認 .\" horikawa@jp.FreeBSD.org 2000/07/06 .Nm matcd ドライバは、松下寿電子工業製の、または短縮して松下製の、CR-562-x 及び CR-563-x CD-ROM ドライブを制御します。これら CD-ROM ドライブは Panasonic (松下の商標)、Creative Labs (omniCD)、Reveal などのブランドで 販売され、Tandy、AST、Packard Bell など多くのコンピュータに採用されて います。 これらのドライブは、専用のホストインタフェースを通じて PC ISA バスに 接続します。このインタフェースはスタンドアロンの ISA カードとして存在す ることもありますし、サウンドカード上に含まれていることもあります。 .Sh ドライバの設定 .Nm matcd ドライバは、それぞれが 4 台までのドライブをもつホストインタフェースを 上限 4 つまでサポートします。オーディオ機能は全てのドライブで同時に実行で きるかもしれませんが、データ読み取り操作の対象は、どの瞬間においても 1 つのホストインタフェースに対して 1 つのドライブのみになります。 マルチホストインタフェースをサポートするためには、 カーネルコンフィギュレーションファイルのエントリを修正する必要があります。 通常、このファイルはシステム上の \fI/usr/src/sys/i386/conf/GENERIC\fR に存在します。 これをコピーしてシステムの名前をつけると良いでしょう。この新しいファイル にシステムでサポートしたいデバイスを含め、逆に不要なデバイスのエントリ は削除します。 このファイルには以下のようなエントリが見つかるでしょう: controller matcd0 at isa? port ? bio 2 つのホストインタフェースをサポートするためには、以下のように変更します: controller matcd0 at isa? port ? bio .br controller matcd1 at isa? port ? bio .br (3 つ、あるいは 4 つまでホストインタフェースをサポートさせたい場合、同様 にエントリを追加してください。) .if n .bp .if t .sp ホストインタフェースが 1 つのみで 4 台までのドライブをサポートする場合、 カーネルコンフィギュレーションの修正は不要であることに注意してください。 2 つ目のインタフェースを追加するまで、1 つめのインタフェース上で必ずしも 4 台のドライブを持たなくてかまいません。 デフォルトでは、 .Nm matcd は Creative ホストアダプタ (\fIoptions.h\fR 参照) の既知の I/O ポート テーブルを用いて CD-ROM ホストアダプタを探索します。これは非常に柔軟で すが、 .Nm matcd がチェックした CD-ROM ホストインタフェースの I/O ポートに、システムの 他のデバイスが存在するときに問題を起こします。さらに、複数の位置を検索 する必要があるため、ブートプロセスに時間がかかる原因となります。 .if t .bp .if n .sp これらの問題は、CD-ROM ホストインタフェースの位置を明示することに よって解決することができます。例えば、デフォルトのほとんどの Sound Blaster カードは I/O ポート 0x230 の位置に松下 CD-ROM ホスト インタフェースを持っています。 (これはカード上のオーディオ機能に 0x10 を加えた I/O ポートの値です。) システムがこのような場合、カーネルブートプロンプトにおいて、 -c オプションを用いることによりカーネルがハードウェアを検出する位置を 変更できます。こうしてカーネルをロードすると、それに含まれる あらゆるデバイスの設定を変更する機会を得ることができます。 例えば、 .Nm matcd アダプタ 0 に対する I/O ポートを変更するには以下のように記述すれば良い でしょう。 config> port matcd0c 0x340 カーネルをリコンパイルするなら、カーネルコンフィギュレーションファイル のエントリを以下のように変更して特定のアドレスを指定することができます: controller matcd0 at isa? port 0x230 bio このように変更すると .Nm matcd ドライバは最初の CD-ROM ホストインタフェースのために I/O ポート 0x230 のみを探索し、他の I/O ポートは妨げません。 カーネルコンフィギュレーションファイルの調整が完了したら、カーネルを 設定、リコンパイル、及びインストールします。そして変更した個所を 有効にするために再起動する必要があります。 .Sh サポートされているハードウェア 現在、 .Nm matcd ドライバで動作するドライブは、2 つが知られているだけです: .Bl -tag -width CR-123-X -compact -offset indent .br .It 松下 CR-562-x .br .It 松下 CR-563-x .br .El たいていの再販業者はこれらにもともとついていたマーキングをそのままに してあり、ラベルは FCC, VDE, CSA, RU などの認定証がついています。 これらのドライブは両方とも駆動ドレイがついています。オリジナルを カスタマイズされた製品も出回っていて、ボリュームコントロールや ヘッドフォンジャックがついていないもの (Tandy コンピュータにみられるかもしれません) がある かも知れませんが、これも .Nm matcd ドライバで動作します。 松下 CR-522-x 及び CR-523-x CD-ROM ドライブは .Nm matcd を利用できません。 CR-522 及び CR-523 は CD キャディを必要とするので正面から識別すること もできます。 IDE インタフェースをもつドライブは、IDE ドライバを使わなければなりま せん。 TEAC CD-55 4X CD-ROM ドライブは Creative/Panasonic インタフェースも使っ ていますが、TEAC のドライブは松下 CR-56x ドライブと互換ではあり\fIませ ん\fR。 TEAC のドライブは .Nm matcd ドライバでは利用できません。 .if t .sp .if n .bp Panasonic ドライブ用のホストインタフェースアダプタの出所で最も一般的なの は、SoundBlaster サウンドカードを含む Creative Labs 製品に見られます。 SoundBlaster サウンドカードには多数のモデルが存在し、ほとんどの最新の カードは適当なインタフェースを提供しますが、"Creative/Panasonic" インタフェースとラベルづけられていることもあります。 以下のホストインタフェースアダプタは .Nm matcd ドライバで動作することが知られています: .Bl -tag -width LONGNAME -compact -offset indent .It Creative Sound Blaster Pro (SBPRO) (CT1330A) .It Creative Sound Blaster 16 (CT1730) .It Creative Sound Blaster 16 - 廉価版 (CT1740) .It Creative OmniCD アップグレードキットアダプタカード - スタンドアロン CD (CT1810) .It Creative Sound Blaster 16 - 2 層、廉価版 (CT2230) .It Creative Sound Blaster 16 (Vibra16) - 2 層、単一チップ (CT2260) .It Creative Sound Blaster 16 Value (SB16) - 2 層、廉価版 (CT2770) .It Creative PhoneBlaster SB16 + Sierra 14.4K Voice/FAX/Data/Speakerphone モデム(CT3100) .It Reveal (SC400) .El 警告: これらサウンドカードには、敢えて Panasonic/Creative インタフェース を含まないように作られているものがあるので、モデルナンバに基づいて 単独責任で買う前に、ボードをチェックしましょう。 これは完全なリストで決してはありません。 Creative Labs および他のベンダは、 Creative/Panasonic ドライブインタフェースの新しバージョンのサウンドカードを いつもリリースするからです。 Creative Labs アダプタに加えて、Media Vision, IBM, Lasermate アダプタで、互換性があるアダプタもまたサポートされます。しかし、これらの アダプタは広範囲にわたるI/Oポートアドレスを使いますので、 これらのアダプタの位置決めをするためにドライバの再構成が必要です。 異なったホストインタフェースの実装を行っているメーカが存在することを 理解することが重要です。MS-DOSで Creative Labs 純正のドライバを用いても、 どうしても通信できないボードがあるなら、 .Nm matcd はそのホストアダプタでは動作しないかもしれません。 .br .if t .bp .if n .sp .Sh サポートされた操作 .Nm matcd ドライバは、ブロックアクセス及びキャラクタアクセスをサポートします。 パーティション "a" は、データ CD から 2048 バイトのユーザデータブロックを返し ます。パーティション "c" は、オーディオ CD を含めてあらゆるタイプの CD から全部で 2352 バイトのフレームを返します。(パーティション "c" は cd9660 ファイルシステムや他のファイルシステムエミュレータを用いて "マウント" できません。) 他にサポートされているパーティションはありません。 ドライブ上のデバイスが全てクローズされるまで、ドライブトレイがロックさ れたままになるということを除き、 .Nm matcdl デバイスは通常の .Nm matcd デバイスと同様に動作します。 .if n .bp .if t .sp .Nm matcd は CD-ROM オーディオに関連した機能やトレイ制御の機能を含む多くの .Fn ioctl コマンドを受理します。コマンドは以下の通りです: .Pp .Bl -tag -width CDIOCREADSUBCHANNELXXX -compact -offset indent .It DIOCGDINFO ディスクラベルを取得します。 .It DIOCGDPART パーティションを取得します。 .It DIOCWDINFO アップデートディスクをセットします。 .It DIOCSDINFO ディスクラベルをセットします。 .It CDIOCREADSUBCHANNEL 再生中のディスクの状態におけるサブチャネル情報を取得します。 .It CDIOCREADTOCHEADER コンテンツサマリのテーブルを読み取ります。 .It CDIOCREADTOCENTRYS 長さと他のトラック情報を読み取ります。 .It CDIOCPLAYTRACKS あるトラック/インデックスから開始してあるトラック/インデックスで終了する オーディオを演奏します。 .It CDIOCPLAYMSF 特定の時刻オフセットから開始するオーディオを演奏します。 .It CDIOCPAUSE 再生中のディスクを一時停止します。 .It CDIOCRESUME 一時停止したディスクの再生をレジュームします。ドライブが既に再生してい る場合には無視されます。 .It CDIOCSTOP 再生中のディスクを停止します。 .It CDIOCEJECT ディスクトレイをオープンします。 .It CDIOCCLOSE ディスクトレイをクローズします。 .It CDIOCPREVENT 全てのデバイスがクローズされるか CDIOCALLOW ioctl が発行されるまで、 ドライブドアをオープンしようとする操作を阻止します。 .It CDIOCALLOW ドライブドアがロックされていれば解除します。この ioctl は何らかのロック されたデバイスがオープンしていれば拒否されます。 .It CDIOCGETVOL ドライブにセットされたボリュームを返します。 .It CDIOCSETVOL ドライブにセットされたボリュームをセットします。 .It CDIOCSETSTEREO このコマンドにより左チャネルのオーディオを左チャネルの出力に送り、 右チャネルのオーディオを右チャネルの出力に送ります。 これはデフォルトの状態です。 .It CDIOCSETMUTE このコマンドによりオーディオ出力は停止します。 ドライブはディスク上のオーディオを読み続けますが、 オーディオ出力が再会されるまでそのデータは破棄されます。 .It CDIOCSETLEFT このコマンドにより左のチャネルのオーディオは左右のチャネルの出力に送ら れます。 .It CDIOCSETRIGHT このコマンドにより右のチャネルのオーディオは左右のチャネルの出力に送ら れます。 .It CDIOCSETPATCH 指定されるビットマップに従い、オーディオをルーティングします。 .It CDIOCSETPITCH このコマンドはオーディオの再生速度を増減します (カラオケのときなど)。 .It CDIOCCAPABILITY ドライブとドライバの性能をレポートします。 .El .Pp .Nm matcd ドライバは上述のように定義された .Fn ioctl コマンドのみをサポートします。 .bp .Sh 関連ファイル .Bl -tag -width /dev/(r)matcd0a_/dev/(r)matcdl0a -compact .It Pa /dev/[r]matcd0a /dev/[r]matcdl0a CD-ROM ディスク上の 2048 バイトブロックデータにアクセスするときに使用します。 これは モード 1 フォーム 1 フォーマットで記録されたものです。 .It Pa /dev/[r]matcd0c /dev/[r]matcdl0c CD-ROM ディスク上の 2352 バイトフレームに任意のフォーマットで記録された データにアクセスするときに使用します。 .It Pa /usr/src/sys/i386/isa/matcd/* .Nm matcd 用のソースコードとコンパイラオプションです。 .El \fIoptions.h\fR ファイルには全てのコンパイルオプションが書かれています。 デフォルトでは ドライバは FreeBSD の current バージョンで動作するよう に設定されています。 .Sh 注 .Pp ドライブが割り込みもしくは DMA を利用することができても、 Creative/Panasonic インタフェース上でこれらを利用することはできません。 1 つ以上のパーティションがオープンしているにも関わらず、 ディスクトレイがオープンしているならば、ドライブ上の全てのパーティションに対す るこれ以上の I/O は全てのパーティションがクローズするまで拒否されます。 物理ドライブ 0 として割り当てられる各々のホストインタフェース上には ドライブが存在していなければなりません。もしそうでない場合、 ドライバはホストインタフェースあるいは接続されたドライブを 1 つも 見つけることができないでしょう。 第 2 のホストインタフェース開始のドライブは、論理ドライブ 4-7 (第 3 のインタフェースの 8-11 と第 4 の 12-15) とみなされます。 最初のホストインタフェースにいくつのドライブが存在しているかに関わりなく、 2 番目のホストインタフェース上の最初のドライブは論理ドライブ 4 になり ます。 ホストインタフェースはカーネルコンフィギュレーションファイルに宣言され た順番か、カーネルコンフィギュレーションファイルでポートアドレスに "?" を用いたならばそれが見つかった順番に番号を割り振られます。 ホストインタフェースの番号は常に切目なく連続しています。 .Sh 関連項目 .Pa /usr/include/sys/cdio.h .Sh 作者 ドライバとドキュメントは .An Frank Durda IV が書きました。 .br Program and Documentation are Copyright 1994, 1995, All rights reserved. .Sh 歴史 .Nm matcd ドライバは .Fx 2.0.5 において登場しました。