Linux CD-ROM HOWTO 日本語版

Copyright \begin{matrix}c \\ ◯ \end{matrix} Jeff Tranter, Jeff Tranter@Mitel.COM 日本語訳箕浦逸史 (minoura@uni.zool.s.u-tokyo.ac.jp)

この文書は Linux システムに CD-ROM を導入して動かすための方法を説明したものです。サポートされているハードウェアのリストや、多くの人から寄せられた疑問に対する解答なども含んでいます。これから CD-ROM を使おうという人に速やかに情報を提供し、ネットワークでの質問を減らすことを目的としています。

目次

1 はじめに 3 1.1 謝辞 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 この文書の最新版は . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 意見、提案などは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 配布条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 CD-ROM の技術 4

3 Linux で使えるＣＤ−ＲＯＭドライブ 5 3.1 SCSI CD-ROM ドライブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 SCSI 以外のインターフェイス付きの CD-ROM ドライブ . . . . . . . . . . . . . . . 6 3.3 ATAPI CD-ROM ドライブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 インストール方法 7 4.1 ハードウェアの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 カーネルの設定変更と再構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3 デバイスファイルの作成と起動パラメータの設定 . . . . . . . . . . . . . . . . . . . . 9

4.3.1 Sbpcd Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.3.2 SONY の CDU535 ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.3.3 CDU31A ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3.4 Aztcd ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3.5 GSCD ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3.6 mcd ドライバ（Mitsumi 用） . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.7 mdcx ドライバ（Mitsumi 用の新しいドライバ） . . . . . . . . . . . . . . . . 13 4.3.8 cm206 ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3.9 optcd ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3.10 sjcd ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3.11 SCSI ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3.12 IDECD ドライバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4 Linux カーネルの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5 CD-ROM のマウント・アンマウントと排出 . . . . . . . . . . . . . . . . . . . . . . . 16 4.6 困った時の対処 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.6.1 Step 1: 自分でコンパイルした新しいカーネルを使用していますか？ . . . . . 17 4.6.2 Step 2 : 正しいカーネルドライバが本当に組み込まれていますか？ . . . . . . 17 4.6.3 Step 3 : カーネルドライバがドライブを起動時に認識していますか？ . . . . . 18 4.6.4 Step 4: ドライブからデータを読み出せますか？ . . . . . . . . . . . . . . . . 19 4.6.5 Step 5 ドライブがマウントできますか？ . . . . . . . . . . . . . . . . . . . . . 19 4.6.6 音楽用 CD が動かない時 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.6.7 それでもうまくいかない時には . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5 CD-ROM を使うアプリケーション 21 5.1 音楽用の CD を演奏するアプリケーション . . . . . . . . . . . . . . . . . . . . . . . 21 5.2 Inheriting File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3 PhotoCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.4 Mkisofs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.5 ISO-9660 ユーティリティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6 よくある質問に対する解答 22

6.1 root でないユーザーがディスクをマウント、アンマウントするにはどうしたらいいで

しょう？ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2 CD-ROM をアンマウントしようとすると "device is busy" というメッセージが出

るのですが。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.3 NFS を使って CD-ROM を他のホストに転送することはできますか。 . . . . . . . . 23 6.4 Linux を CD-ROM から起動する方法はありますか。 . . . . . . . . . . . . . . . . . . 23 6.5 音楽用の CD からデジタルデータを読み出すにはどうしたらいいでしょう。 . . . . . 23 6.6 find コマンドが正しく働かないのですが。 . . . . . . . . . . . . . . . . . . . . . . . 24 6.7 Reveal 社の Multimedia kit の CD-ROM は使えますか？ . . . . . . . . . . . . . . . 24 6.8 Linux は書き込み可能な CD-ROM ドライブをサポートしていますか？ . . . . . . . . 26 6.9 どうして CD-ROM は read-only でマウントしなくてはならないのでしょう。 …. 26 6.10 システムをシャットダウンすると、ディスクトレーが開いてしまうのはなぜでしょう。 26 6.11 マウントできない「特殊な」 CD があるのですが。 . . . . . . . . . . . . . . . . . . . 27 6.12 CDU-33 ドライブのアクセスランプが光るのはなぜでしょうか。 . . . . . . . . . . . . 27 6.13 複数ディスクが入る CD-ROM ドライブは Linux で使えますか？ . . . . . . . . . . . 27

7 参考資料 27

1 はじめに

これは Linux CD-ROM HOWTO です。 CD-ROM を導入する上で必要となる情報を、読者が速やかに得られることを目的としています。 CD-ROM に関連した FAQ (よくある質問への解答) や CD-ROM のアプリケーションや技術関連書籍などの情報も載せました。

1.1 謝辞

ここに掲載した情報の多くは Linux のカーネルのソースコードに附属する README ファイルや、インターネットの alt.cd-rom (news:alt.cd-rom) FAQ と、 Linux ユーザーからの意見をもとにしたものです。日本語版は fj.os.linux (news:fj.os.linux) に流れた情報なども参考にしています。

Linuxdoc-SGML

(ftp://sunsite.unc.edu/pub/Linux/utils/text/linuxdoc-sgml-1.3.tar.gz) パッケージのお

かげで、この HOWTO を様々な形式で提供しています。いずれの形式の文書も一つのソースファイルから生成されたものです。

1.2 改訂履歴

Version 1.0 最初の公開版

Version 1.1 CDU33A がバージョン 1.1.20 のカーネルでサポートされました。 Reveal FX についての注意。オーディオトラックを読みとることに関する情報の付加。αドライバに関する情報の付加。「困った時には」を追加。そのほか細かい追加。

Version 1.2 バージョンが 1.1.33 のカーネルでは ISO9660 ファイルシステムを最初 read only でマウントしなくてはならないこと。 SB16 SCSI ドライバがサポートされていることの確認と、新しい Aztech のドライブはサポートされていないことの確認。 PhotoCD と xpcd プログラムに関する参考資料。新しい spbcd の自動排出機能についての注意の追加。

Version 1.3 カーネルのバージョンの 1.1.49 から SBPCD のディスク排出機能が使えなくなったこと。 XA ディスクとそれを識別する方法についての情報の追加。

Version 1.4 この文書が他の言語に翻訳された。 IBM と Longshine のドライブが SBPCD でサポートされた。 Aztech 製のドライブ用のαドライバについて。 CDU-33 ドライバがドライブの自動検出をしなくなり、 PhotoCD とオーディオ機能をサポート。 2 つ以上の SCSI ドライブがサポートされた。 IDE 用の新しいドライバについて。ドライブのジャンパスイッチについて。 SBPCD の自動排出を IOCTRL で設定できるようになったこと。マルチセッション可能なドライバのリスト。 CDU-33 のライトのフラッシュについて。

Version 1.5 更新までに長い時間がかかりました。（忙しかったので）。文書は GPL の条件下で配布されるようになった。多くのカーネルドライバについての情報の追加。多くの設定や問題解決のための情報を追加。 HTML リンクを追加。その他。

1.3 この文書の最新版は

この文書のオリジナルは comp.os.linux.announce (news:comp.os.linux.announce) に定期的に

投稿されます。また (ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO) などの anonymous ftp
サイトにも登録されます。日本では (ftp://ftp.iij.ad.jp/pub/linux/sunsite/docs/HOWTO) な

どのミラーサイトで入手できます。

  ハイパーテキスト版の Linux HOWTO は例えば (http://sunsite.unc.edu/mdw/mdw.html) な

どの多くの WWW サイトで入手できます。また多くの CD-ROM 形式の Linux パッケージにも含まれていますし、またいくつかの業者からは印刷されたものを買うこともできます。

  日本語版は (ftp://ftp.kuis.kyoto-u.ac.jp/Linux/JF/euc) などの ftp サイトに登録されま

す。最近はあまり更新されていないようですが、 World Wide Web の

(http://yebisu.ics.es.osaka-u.ac.jp/linux/JF/) にも登録されます。

Bruno Cornec (cornec@stna7.stna.dgac.fr) によるフランス語版は

(ftp://ftp.ibp.fr/pub2/linux/french/docs/HOWTO/) で入手可能です。

1.4 意見、提案などは

これを読んでいるあなたの意見をお待ちしています。 HOWTO は読者、すなわち Linux ユーザーが育てるものです。誤りを見つけたり、提案、コメントなどがあれば、著者までお送りください。できるだけ次の版に反映させたいと思います。

  なお、日本語版についての御意見は訳者 (mailto:minoura@uni.zool.s.u-tokyo.ac.jp) までお

願いします。

もしもこの文書を CD-ROM や印刷物として発行する場合には、著者に送っていただけるとありがたいです。私の住所はメイルで問い合わせてください。

1.5 配布条件

原著作権表示: Copyright (C) 1995 Jeff Tranter.

日本語版 : Copyright (C) 1995 Jeff Tranter, Itsushi Minoura.

この HOWTO はフリー・ドキュメントです。 Free Softweare Foundation が発行する GNU 一般公有許諾 Version 2 （またはそれ以降）に従う限り、これを配布または変更することができます。

この文書は役に立つことを希望して配布されていますが、内容に関するいかなる保証もありません。特に市場に受け入れられる可能性や特殊な用途に関する保証もありません。詳しくは GPL (GNU 一般公有許諾）を見てください。この文書は（GNU General Public License: 英語版が正式文書です） Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA から得られます。

2 CD-ROM の技術

「CD-ROM は読みとり専用の記憶装置で、オーディオ用の CD はこれらの目的のデジタル情報を収めたものです。オーディオ用の CD を再生する場合は、ヘッドフォンのジャックを差し込んでください。」 — ある CD-ROM ドライブの取り扱い説明書より

焦らないでください。 CD-ROM 技術の世界は、こんな取り扱い説明書ほど複雑怪奇ではありません。

CD-ROM は英語の Compact Disc Read-Only Memory の略語であって、読みとり専用の大容量記憶装置です。レーザーを、ポリカーボネート製のディスクに貼ったアルミの表面にあて、小さなくぼみを読みとって情報を得ます。この方法は音楽用のコンパクト・ディスクに使われています。多くの情報が記憶でき、信頼性が高く、かつ安価なことから CD-ROM はますます多くの人に使われるようになってきています。

CD-ROM のディスクは一枚あたりおおよそ 650 メガバイトの記憶容量があります。 3.5 インチ倍密度 (2HD) のフロッピーディスクでおよそ 500 枚相当、または約 25 万ページ程度の情報を記録できます。

初期のドライブは 150 Kbyte/sec の転送速度でした。最近では一般的な倍速ドライブの他にや３倍 (300KBytes/sec) や４倍速 (600KBytes/sec) ドライブなどというものも入手可能です。

ほとんどの CD-ROM ドライブは SCSI か、 ATAPI 拡張された IDE インターフェイス、またはメーカー固有のインターフェイスを使っています。また普通は外部のヘッドフォンジャック、またはライン出力で、音楽用の CD を再生することができるようになっています。またデジタルデータとして音楽データを読み出せるものもあります。

CD-ROM は大抵は ISO-9660 (正式には High Sierra と呼ばれます) ファイルシステムでフォーマットされています。この形式は、 MS-DOS のようにファイル名が 8+3 文字に制限されています。 ISO-9660 に対するロックリッジ拡張を使うと、長いファイル名と、 Unix 風の追加情報（ファイルの所有者やシンボリック・リンクなど）が書き込めます。

フォトＣＤはコダック社が開発した、写真をデジタル情報として CD-ROM に保存する方法の規格です。写真をコンピュータ上で見たり、加工したり、プリンタで印刷することができます。最近になってフォトＣＤに関する情報が追加されました。これはマルチセッションの機能です。

CD レコーダー (CD-R) は最近出てきたものです。 CD-ROM とは少し異なる専用ディスクに書き込みを行ないますが、書かれたみのは普通の CD-ROM と同じように扱えます。

CD-ROM ドライブのメーカーは将来的に CD-ROM の容量を１桁増やす技術を模索しています。

3 Linux で使えるＣＤ−ＲＯＭドライブ

この節では現在 Linux でサポートされている CD-ROM ドライブやインターフェイスを列挙しました。ここに挙げた情報はこれを書いている時点での最新の Linux カーネル・バージョン 1.2.13 （最新の安定化版) と 1.3.20 （最新の開発版）に基づいています。

この情報は Intel 版の Linux のみに有効です。他のプロセッサ用の Linux に関してもいくらかの情報は有効かもしれませんが、著者はそれらのアーキテクチャを扱ったことはありません。

3.1 SCSI CD-ROM ドライブ

SCSI (Small Computer Systems Interface) は、 CD-ROM ドライブのインターフェイスとしては一般的なものです。この特長としては転送速度が早いこと、複数のドライブが一つのインターフェイスにつなげること、多くの種類のコンピュータで共通に使われていることなどです。欠点はコントラーカードやケーブルがやや高価なことです。

どんな SCSI の CD-ROM ドライブでも、ブロックサイズが 512 または 2048 バイトであれば Linux で使用可能です。すなわち、街で売っているほとんどの CD-ROM ドライブが使用可能なのです。（訳注:いくつかのドライブは SCSI カードとの相性があるようです。ソースコードに手を加える必要がある場合があります。）

そのようなドライブを使うためには、 SCSI コントローラー・カードが必要です。詳しくは SCSI

HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/SCSI-HOWTO.html) を参照してください。

CD-ROM ドライブにはいくつか、 SCSI とは完全な互換性を持たないコントローラを用いているもの（例えば他の SCSI デバイスを接続することを保証していないものなど）があるので、注意してください。それらは Linux では動作しないことが多いので注意してください。

3.2 SCSI 以外のインターフェイス付きの CD-ROM ドライブ

メーカーが独自のインターフェイスを用いた CD-ROM ドライブもあります。サウンドカードにインターフェイスがついている場合もよくあります。サウンドカードについているような単純なインターフェイスカードも売られています。このような CD-ROM ドライブは安価で、 SCSI ドライブよりも小型のことが多いようです。欠点は、標準化されていないことと、拡張性が低いことでしょう。

このようなインターフェイスは時々誤って IDE インターフェイスと呼ばれます。これらは IDE ハードディスクのように PC/AT に依存した単純なバスを使っているからです。混乱を増やしているのは、 Creative Lab などのメーカーが、独自インターフェイス、 SCSI、 ATAPI のインターフェイスをサウンドカードに付けていることです。

次に列挙した CD-ROM ドライブ（独自のインターフェイスを持ったもの）が Linux で使用可能です。新たに追加されるデバイス用のドライバ（訳注:ディスクドライブを扱うためのソフトウェア。 Linux ではカーネルに内蔵されている）は大抵開発中であり、大抵カーネルに対するパッチとして入

手できます。そのほとんどは (ftp://sunsite.unc.edu/pub/Linux/kernel/patches/cdrom/) で

見つかるでしょう。カーネルの /usr/src/linux/drivers/block/ にある README ファイルも読んでみましょう。最新の情報が得られます。

独自インターフェイスを持った CD-ROM ドライブ

メーカーモデルドライバ注

------          -----           -------------   --------
Panasonic       CR-521          sbpcd  注 1
Panasonic       CR-522          sbpcd  注 1
Panasonic       CR-523          sbpcd  注 1
Panasonic       CR-562          sbpcd  注 1
Panasonic       CR-563          sbpcd  注 1
Creative Labs   CD-200          sbpcd  注 2
IBM             External ISA    sbpcd  注 3
Longshine       LCS-7260        sbpcd
Teac            CD-55A          sbpcd
Sony            CDU-31A         cdu31a
Sony            CDU-33A         cdu31a
Sony            CDU-535         sonycd535  注 4
Sony            CDU-531         sonycd535
Aztech          CDA268-01A      aztcd
Orchid          CDS-3110        aztcd
Okano/Wearnes   CDD110          aztcd
GoldStar        R420            gscd  注 5
Philips/LMS     CM206           cm206  注 6
Mitsumi         CRMC LU005S     mcd/mcdx  注 7, 8
Mitsumi         FX001           mcd/mcdx  注 7, 8
Optics Storage  Dolphin 8000AT  optcd  注 9
Sanyo           H94A            sjcd  注 9

注:

1. これらのドライブは Creative Labs, Panasonic, Matsushita, Kotobuki の名前で売られているかもしれません。 2. このドライブは最近サポートされたばかりであり、まだ完全に安定してはいません。

3. このドライブは Panasonic CR-562 と同じです。

4. Procomm の名でも売られているかもしれません。

5. Reveal マルチメディア・キットの一部としても売られています。

6. Philips CM205 はこのドライバではサポートされていません。別のα版ドライバがあります。

7. Radio Shack という名でも売られているかもしれません。

8. ２種類のドライバがあります。 mcd というカーネルに含まれているものと、 mcdx という機能拡張版（まだ安定してはいません）があります。

9. このドライバは実験的なものと思ってください。

3.3 ATAPI CD-ROM ドライブ

ATAPI (ATA Packet Interface) とは SCSI に似た、大容量の記録用デバイスを扱うための規格です。これは ATA (AT Attachment) インターフェイスに接続するもので、ハードディスク用に開発された IDE インターフェイスの ANSI 規格での正式な呼び名です。 ATAPI は普通ハードディスクや CD-ROM ドライブ、テープドライブなどに使われます。この規格は最近出てきたものですが、急速に普及してきました。これは高価な SCSI コントローラやケーブルを使わずに、ほぼ同じものを提供できるからです。

Linux カーネルにはどんな ATAPI CD-ROM でも接続できるドライバがあります。 Aztech や Mitsumi, NEC, SONY, Vertos などのメーカーが、このドライバで扱うことのできる CD-ROM ドライブを販売しています。

4 インストール方法

Linux に CD-ROM ドライブを接続するためには、次に示す作業が必要です。

1. ハードウェアの接続

2. Linux カーネルの設定の変更と、再構築

3. 必要なデバイスファイルの作成と起動時のパラメータの設定

4. 新しいカーネルでの再起動

5. CD-ROM のマウント

次節でこの方法を詳しく説明します。

4.1 ハードウェアの接続

附属の説明書の通りに CD-ROM ドライブを接続してください。ドライブが内蔵型か外付けか、またインターフェイスの種類などによって、接続方法は異なります。ハードウェアの接続に関しては、特に Linux ゆえに注意しなくてはならない事はありません。ドライブとインターフェイスカードのジャンパスイッチを設定する必要がある場合があります。そのドライブに適切なドライバに含まれる README ファイルを読むと参考になるでしょう。

例えば README.ide に書いてあるように、 IDE デバイスが１台だけの時には ATAPI CD-ROM のジャンパースイッチは slave ではなく single または master に設定しなくてはなりません。

4.2 カーネルの設定変更と再構築

Linux を最初に CD-ROM からインストールするためには、附属してくる起動ディスクを使わなくてはなりません。可能ならば、 CD-ROM の種類に合わせたドライバが含まれたディスクを選ぶ必要があります。もしも適切な起動ディスクが見つからなければ、他の方法があります。

1. ネットワーク経由でインストール

2. DOS を起動し、 CD-ROM の内容をハードディスクにコピーしてからインストール

3. DOS を起動し、インストール用のフロッピーディスクを作る

4. すでに Linux を使っている人に頼んで、適切なドライバを含んだブートディスクを作ってもらう。

Linux Installation HOWTO

(http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Installation-HOWTO.html) にはインストールに

関するさらに詳しい情報が載っています。 Linux の入った CD-ROM を買った場合には、小冊子やテキストファイルの形でインストール方法の解説がついていると思いますので、それを参考にしましょう。

Linux を一度インストールしてしまえば、大抵はカーネルを自分の環境に合わせてコンパイルし直した方がいいでしょう。その理由は、

• CD-ROM ドライブやその他のハードウェアを使うため。

• カーネルを最新のものに置き換えるため。

• 不要なドライバなどを外して、メモリを節約するため。

  Linux Kernel HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Kernel-HOWTO.html)

にはこのカーネルの再構築について詳しく述べてあるはずです。ここでは CD-ROM に関係したことだけを説明します。

もちろん、 CD-ROM を使うためには make config をした後、コンパイルし直さなくてはなりません。

ATAPI CD-ROM ドライブを持っている場合、次の質問に yes と答えなくてはなりません。

    "Normal (MFM/RLL) disk and IDE disk/cdrom support?"
    "Include support for IDE/ATAPI CDROMs?"

SCSI の CD-ROM ドライブの場合は、次の質問に yes と答えます。

     SCSI support?
     SCSI CDROM support?

また SCSI カードに合わせて次のような質問に正しく答えなくてはなりません。たとえば AHA-1542 を持っていれば、

     Adaptec AHA1542 support?

に yes と答えます。

独自インターフェイスを持つドライブの場合、適切なドライバを使うようにしてください。前に示した表を参考にどのドライバを使うかを見つけてください。

また全ての CD-ROM は ISO-9660 ファイルシステムを使うはずです。そこで

     ISO9660 cdrom filesystem support?

に yes と答えます。

CD-ROM には関係ありませんが、ついでに（持っているならば）サウンドカードの設定をしておいた方がいいでしょう。 Sound-HOWTO

(http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Sound-HOWTO.html) が助けになるでしょう。

設定が終ったら、手順にしたがってカーネルをコンパイルして、インストールしてください。デバイスファイルや起動時のパラメータを設定するまでは、あわてて再起動してはいけません。

CD-ROM のドライバにはカーネル・モジュールとして組み込めるものもたくさんあります。これ

は Kernel HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Kernel-HOWTO.html) を参考

に組み込んでください。

もしもあなたの持っているドライブがカーネルでサポートされていなかったら、もっと新しいカーネルを使ってみる必要があるでしょう。（1.3.x でしかサポートされていないドライバもあります。）

また、ドライバがカーネルとは別に配布されている場合もあります。これはカーネルのソースコードににパッチを当てて使用します。これもやはり Kernel HOWTO

(http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Kernel-HOWTO.html) を参考にしてください。

4.3 デバイスファイルの作成と起動パラメータの設定

カーネルはどのデバイスドライバを使うかを判断するために、デバイスファイルを使用します。通常の Linux のパッケージ（Slackware, Debian など）を使っている場合には、インストール時に必要なデバイスファイルが作成されているはずです。例えば Slackware の場合、メニュー形式の設定ツールがついています。またほとんどのシステムでは /dev/MAKEDEV というスクリプトがついているはずです。この節に書いてあることを手動で実行することもできます。どの方法を使うにしても、この節に書いてあること参考に、デバイスファイルを確認しておくことをお奨めします。

デバイスファイルを作るには、ドライブの種類に合わせてシェルコマンドを使います。この作業をするには、おそらく root になる必要があるでしょう。 Linux のパッケージによってはここに示したのとは異なる名前の CD-ROM のデバイスファイルを使っていることがありますので、注意してください。

CD-ROM のデバイス名には、覚えやすい名前のシンボリック・リンクを張ることをお奨めします。例えばパナソニックの CD-ROM に次のようにしてリンクを張ります。

    % ln -s /dev/sbpcd /dev/cdrom

音楽用 CD を使いたい場合は一般のユーザーがデバイスファイルに対して読み書きができるように設定する必要があります。例えば次のようにします。

    % chmod 666 /dev/sbpcd
    % ls -l /dev/sbpcd
    brw-rw-rw-   1 root     disk      25,   0 Jul 18  1994 /dev/sbpcd

Linux 起動時に、デバイスドライバは適切なデバイスが存在するかを（普通は特定のメモリのアドレスを見ることで）確認しようとします。多くのドライバは複数のアドレスを探しますが、設定の違いによって、デバイス同士が同じアドレスを使おうとして衝突したり、ハードウェアの制限などの問題から、デバイスが使用するメモリアドレスを指定することが必要な場合があります。メモリアドレスだけでなく、ほかのパラメーターなども含めて、ほとんどのドライバでは起動時にブートローダーによってこの指定をすることができます。 LILO の場合、 /etc/lilo.conf ファイルに

    append = "sbpcd=0x230,SoundBlaster"

を書き加えます。 LXboot の場合には /.LXbootrc に

    /zImage -f ro spbcd=0x230,SoundBlaster ro

などとします。詳しくはそれぞれのブートローダーの説明書を見てください。

次節ではそれぞれのデバイスドライバについて特に注意しなくてはならないこと、例えばデバイスファイルや起動時のパラメータやドライバの違いなどを述べます。この節は、自分が持っているドライブの項目のみ読めば充分です。

（訳注:この節で、ドライバの説明として出てくる表の項目の、わかりにくいものを簡単に説明します。「複数のドライブ接続」は、１枚のカードに複数台のドライブを接続できるかどうかを示します。「音楽データ読み出し」はデータの読み出しの可・不可であり、音楽ＣＤが演奏できるかどうかではありません。「カーネル設定オプション」はカーネルの make config の時に出てくるメッセージのことです。）

4.3.1 Sbpcd Driver

        原作者: Eberhard Moenkeberg (emoenke@gwdg.de)

マルチセッション: 可 (CD-52x ドライブ以外) 複数のドライブ接続: 可ドライバのモジュール化: 可

  音楽データ読みとり: 可 (CR-562 と CR-563 のみ)

ドライブの自動認識: 可デバイスファイル: /dev/sbpcd, メジャー番号 25 設定ファイル: sbpcd.h

カーネル設定オプション: Matsushita/Panasonic CDROM support?
   README ファイル: README.sbpcd

このドライバは次のようなカーネルコマンドラインを受けとります。

    sbpcd={$<$}I/O アドレス{$>$},{$<$}インターフェイスの種類{$>$}

最初のパラメータはデバイスのベースアドレス（たとえば 0x230）で、 <インターフェイスの種類 > は ”SoundBlaster”, ”LaserMate”, ”SPEA” のいずれかです。どのインターフェイスを使っているかのヒントは、 sbpcd.h を見ると参考になるでしょう。 sbpcd=0 を設定すると、自動認識をやめてドライバを使わいようにします。

デバイスファイルはメジャー番号 25、マイナー番号０で、

    % mknod /dev/sbpcd b 25 0

のように作成します。

１つのインターフェイスカードに４台までのドライブが接続できます。２台目からのドライブはマイナー番号が１から３までのデバイスを使用します。複数のインターフェイスカードを使うこともできます。この時はメジャー番号が 25 のものに加えて 26, 27, 28 のデバイスを作れます。（つまり最大４枚のカードを使って 16 台の CD-ROM ドライブが接続できるのです。これ以上つなぎたいという人がいないことを祈ります :-）

更に詳しいことは README.spbcd を見てください。

4.3.2 SONY の CDU535 ドライバ

        原作者: Ken Pizzini (ken@halcyon.com)

マルチセッション: 不可複数のドライブの接続: 不可ドライバのモジュール化: 可音楽データの読みだし: 不可自動認識: 不可

   デバイスファイル: /dev/sonycd535, メジャー番号 24
     設定ファイル: sonycd535.h
カーネル設定オプション: Sony CDU535 CDROM support?
   README ファイル: README.sonycd535

このドライバはカーネルコマンドラインのオプションとして

    sonycd535={$<$}I/O アドレス{$>$}

を受け付けます。 <I/O アドレス> はインターフェイスカードのベースアドレス（0x320 など）です。コンパイル前に sonycd535.h を書き換えることでも変更可能です。

デバイスファイルは次のようにして作ることができます。

    % mknod /dev/sonycd535 b 24 0

Linux のパッケージによってはこのドライブのための /dev/sonycd というデバイスを持っているものもあります。このドライバの古いものはメジャー番号が 21 になっているものがあります。あなたのデバイスファイルに正しい番号 (24) が設定されているか確かめてください。

このドライバはかつてはパッチとして配布されていましたが、今では正式にカーネルに含まれています。 README.sonycd535 ファイルにはもっと詳しい情報が書かれています。

4.3.3 CDU31A ドライバ

        原作者: Corey Minyard (minyard@wf-rch.cirr.com)

マルチセッション: 可複数ドライブの接続: 不可ドライバのモジュール化: 可音楽データの読みだし: 可自動認識: 不可デバイスファイル: /dev/cdu31a, メジャー番号 15 設定ファイル: cdu31a.h

カーネル設定オプション: Sony CDU31A/CDU33A CDROM support?
   README ファイル: README.cdu31a

このドライバは次のカーネル・コマンドラインを受け付けます。

    cdu31a={$<$}I/O アドレス{$>$},{$<$}割り込み{$>$},PAS

最初はカードの I/O アドレスです（0x340 など）。２つめは割り込み番号です。（０は Polled I/O を使うことを示します。）３つ目の（なくても構わない）パラメータは、 Pro-Audio Spectrum をつないでいる時には ”PAS” を指定し、なければ何も書きません。

デバイスファイルは次のようにして作ります。

    % mknod /dev/cdu31a b 15 0

README.cdu31a には更に詳しい情報が書いてあります。

Jeffrey Oxenreider (zureal@infinet.com) さんの Web ページにはこのドライバを使う時に起こりそ

うな問題に触れてあります。そのページは (http://www.infinet.com/ zureal/cdu31a.html) に

あります。 4.3.4 Aztcd ドライバ

        原作者: Werner Zimmermann (zimmerma@rz.fht-esslingen.de)

マルチセッション: 可複数ドライブの接続: 不可ドライバのモジュール化: 可音楽データの読み出し: 不可自動認識: 不可

   デバイスファイル: /dev/aztcd0, major 29

設定ファイル: aztcd.h

カーネル設定オプション: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support?
   README ファイル: README.aztcd

このドライバは次のカーネルコマンドラインを受け付けます。

    cdu31a={$<$}I/O アドレス{$>$}

パラメータはカードの I/O ベースアドレス（0x340 など）です。

デバイスファイルは次のようにして作成できます。

    % mknod /dev/aztcd0 b 29 0

README.aztcd には更に詳しい情報が書いてあります。

4.3.5 GSCD ドライバ

        原作者: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)

マルチセッション: 不可複数ドライブの接続: 不可ドライバのモジュール化: 可音楽データの読みだし: 不可自動認識: 不可

   デバイスファイル: /dev/gscd0, major 16

設定ファイル: gscd.h

カーネル設定オプション: Goldstar R420 CDROM support?
   README ファイル: README.gscd

このドライバは次のカーネルコマンドラインを受け付けます。

    gscd={$<$}I/O アドレス{$>$}

<I/O アドレス> は、カードのベースアドレス（0x340 など）です。

デバイスファイルは

    % mknod /dev/gscd0 b 16 0

のようにして作成します。

このドライバについての更に詳しい情報は README.gscd ファイルや WWW サイトの

(http://linux.rz.fh-hannover.de/ raupach) を見てください。

4.3.6 mcd ドライバ（Mitsumi 用）

        原作者: Martin Harriss (martin@bdsi.com)

マルチセッション: 不可複数ドライブの接続: 不可カーネルのモジュール化: 可音楽データの読みだし: 不可自動認識: 不可

   デバイスファイル: /dev/mcd, major 23

設定ファイル: mcd.h

カーネル設定オプション: Standard Mitsumi CDROM support?
   README ファイル: README.mcd

これは Mitsumi のドライブ用の古い方のドライバです。まだ安定していませんが、新しい機能を持った mcdx ドライバもあります。

    mcd={$<$}I/O アドレス{$>$},{$<$}IRQ{$>$}

のようにしてカーネルコマンドラインで I/O ベースアドレス（0x340 など）と IRQ 番号を指定できます。

デバイスファイルは次のようにして作ります。

    % mknod /dev/mcd b 23 0

README.mcd に、さらに詳しい情報が載っているでしょう。

4.3.7 mdcx ドライバ（Mitsumi 用の新しいドライバ）

        原作者: Heiko Schlittermann

マルチセッション: 可複数ドライブの接続: 可ドライバのモジュール化: 可音楽データの読み出し: 不可自動認識: 不可デバイスファイル: /dev/mcdx0, メジャー番号 20 設定ファイル: mcdc.h

カーネル設定オプション: Experimental Mitsumi support?
   README ファイル: README.mcdx

このドライバは新しく、まだ実験段階のドライバです。古い mcd ドライバの方がたぶん安定しており、こちらもまだ使用可能です。

このドライバは次のカーネルコマンドラインによって

    mcdx={$<$}I/O アドレス{$>$},{$<$}IRQ{$>$}

I/O ベースアドレス（0x340 など）と、 IRQ 番号を設定できます。

デバイスファイルは次のようにして作成します。

    % mknod /dev/mcdx0 b 20 0

さらに詳しいことは README.mcdx を御覧ください。 4.3.8 cm206 ドライバ

        原作者: David A. van Leeuwen (david@tm.tno.nl)

マルチセッション: 可複数ドライブの接続: 不可ドライバのモジュール化: 可音楽データの読み出し: 不可自動認識: 可デバイスファイル: /dev/cm206cd, メジャー番号 32 設定ファイル: cm206.h

カーネル設定オプション: Philips/LMS CM206 CDROM support?
   README ファイル: README.cm206

このドライブは、次のカーネルコマンドラインによって、

    cm206={$<$}I/O アドレス{$>$},{$<$}割り込み{$>$}

I/O ベースアドレス（0x340 など）と、割り込みチャネルを設定することができます。デバイスファイルは以下のようにして作成します。

    % mknod /dev/cm206cd b 32 0

さらに詳しいことは、 README.cm206 を御覧ください。

4.3.9 optcd ドライバ

        原作者: Leo Spiekman (spiekman@dutette.et.tudelft.nl)

マルチセッション: 不可複数ドライブの接続: 不可ドライバのモジュール化: 可音楽データの読み出し: 不可自動認識: 不可デバイスファイル: /dev/optcd0, メジャー番号 17 設定ファイル: optcd.h

カーネル設定オプション: Experimental Optics Storage ... CDROM support?
   README ファイル: README.optcd

次のカーネルコマンドラインで

    optcd={$<$}I/O アドレス{$>$}

カードの I/O ベースアドレス（0x340 など）を設定できます。

デバイスファイルは次のようにして作成します。

    % mknod /dev/optcd0 b 17 0

さらに詳しい情報は、 README.optcd を御覧ください。 4.3.10 sjcd ドライバ

        原作者: Vadim V. Model (vadim@rbrf.msk.su)

マルチセッション: 不可複数ドライブの接続: 不可ドライバのモジュール化: 不可音楽データの読み出し: 不可自動認識: 不可デバイスファイル: /dev/sjcd, メジャー番号 18 設定ファイル: sjcd.h

カーネル設定オプション: Experimental Sanyo H94A CDROM support?
   README ファイル: README.sjcd

次のカーネルコマンドラインで

    sjcd={$<$}I/O アドレス{$>$},{$<$}割り込み{$>$},{$<$}DMA{$>$}

カードの I/O ベースアドレス（0x340 など）、割り込み、 DMA チャネルを設定できます。（例 sjcd=0x340,10,5）

デバイスファイルは次のようにして作成します。

    % mknod /dev/sjcd b 18 0

さらに詳しいことは、 README.sjcd を御覧ください。

4.3.11 SCSI ドライバ

        原作者: David Giller

マルチセッション: 可 (ドライブによっては不可) 複数ドライブの接続: 可ドライバのモジュール化: 可音楽データの読み出し: 可 (ドライブによっては不可) 自動認識: 可デバイスファイル: /dev/scd0, メジャー番号 11 設定ファイル: cdrom.h

カーネル設定オプション: SCSI CDROM support?

README ファイル: なし

SCSI カードそれぞれに特有のカーネルコマンドラインに指定するオプションがあります。詳しく

は SCSI HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/SCSI-HOWTO.html) を参照して

ください。

(最大 SCSI バスの数だけの) 複数のドライブを接続することができます。デバイスファイルは、メジャー番号が 11 で、マイナー番号が 0 以上のものを使用します。次のようにして作成してください。

    % mknod /dev/scd0 b 11 0
    % mknod /dev/scd1 b 11 1

4.3.12 IDECD ドライバ

        原作者: Scott Snyder (snyder@fnald0.fnal.gov)

マルチセッション: 不可複数ドライブの接続: 可ドライバのモジュール化: 不可音楽データの読み出し: 不可自動認識: 可デバイスファイル: /dev/hd{b,c}, メジャー番号 22 設定ファイル: cdrom.h

カーネル設定オプション: Include support for IDE/ATAPI CDROMs?
   README ファイル: README.ide

ATAPI CD-ROM ドライブ用のドライバです。このドライバは次の形式のカーネルコマンドラインを認識します。

    hdx=cyls,heads,sects,wpcom,irq

または

    hdx=cdrom

hdx は {hda,hdb,hdc,hdd} のいずれかか、または単に hd とすると順に次のドライブを指示します。最初の３つのパラメータ (cyls,heads,sects) のみが必須のものです。例えば hdc=1050,32,64 hdd=cdrom などです。

4.4 Linux カーネルの起動

さて、それでは新しいカーネルを起動する準備はできましたか。リブートしたら、次に示すようなデバイスドライバが出すメッセージを確認しましょう。 (このメッセージはドライブのタイプによって異なります。 )

    SBPCD: Trying to detect a SoundBlaster CD-ROM drive at 0x230.
    SBPCD: - Drive 0: CR-562-x (0.76)
    SBPCD: 1 SoundBlaster CD-ROM drive(s) at 0x0230.
    SBPCD: init done.

この起動メッセージがスクロールしてしまって見えない場合には、 Shift+PageUp でバックスクロールしたり、 dmesg コマンドや tail /var/adm/messages などのコマンドで確認しましょう。

ドライブが認識されなかったり、エラーが出たりしたときには、「困った時の対処」の項を見てください。

4.5 CD-ROM のマウント・アンマウントと排出

CD-ROM をマウントする場合、ディスクをドライブに入れた後、ルートの権限で次のようにマウントコマンドを実行してください。（前記のように CD-ROM ドライブのデバイスファイルに /dev/cdrom というシンボリックリンクを設定した場合です）

    % mount -t iso9660 -r /dev/cdrom /mnt

これで /mnt の下で CD-ROM にアクセスすることができます。 /mnt とは一般的には一時的なマウントポイントですから、恒久的に使うには /cdrom などという名前の方がよいでしょう。 mount コマンドには他にも有用なオプションがあります。詳しいことはオンラインマニュアルの mount(8) の項を見てください。（訳注： mount(8) とはオンラインマニュアルの８章の mount の節という意味です。 man 8 mount で表示されるはずです。）

/etc/fstab に項目を書き加えることで、 Linux の起動時に CD-ROM を自動的にマウントしたり、マウントする時のパラメータを指定することができます。これもオンラインマニュアルの fstab(5) を見てください。

音楽用 CD を再生する場合はディスクをマウントしてはいけません。

CD-ROM をアンマウントするためにはルートになって、次のように umount コマンドを実行します。

    % umount /mnt

ディスクをアンマウントできるのは、そのドライブにアクセスしているプロセスがない時にかぎります。（またはそのドライブが何かのプロセスのデフォルトのディレクトリになっている時にもアンマウントはできません。）ディスクはアンマウントしてからでないと排出してはいけません。大抵のドライブには Eject ボタンがついていますが、ソフトウェア的にディスクを排出するプログラムもあります。

CD-ROM をマウントしている間は、たとえ Eject ボタンを押してディスクを排出することが可能でも、排出してはいけません。（ドライブによってはマウントしている間は排出できなくなります） SPBCD ドライバはアンマウントされると自動的にディスクを排出し、ディスクが入ると自動的にマウントします。（この機能はカーネルのコンパイル時や、またはソフトウェア・コマンドを使って off にすることもできます。）

4.6 困った時の対処

この HOWTO に従ったのにもかかわらず、問題が起こったら、以下の項目を確認してください。この項目は、あとになるほど複雑な問題を扱います。チェックして、うまくいかない時には次の項目に移る前にその問題を解決してください。

4.6.1 Step 1: 自分でコンパイルした新しいカーネルを使用していますか？

CD-ROM を扱えるようにコンパイルし直したカーネルを使う時には、その日付を見て新しくコンパイルしたものが動作しているかを確認できます。次のように uname コマンドでタイムスタンプを見て確認してください。

    % uname -a
    Linux fizzbin 1.1.31 #1 Wed Jul 20 16:53:35 EDT 1994 i386

または /proc/version を見ることでも確認できます。

    % cat /proc/version
    Linux version 1.2.13 (root@fizzbin) (gcc version 2.6.3) #9 Sun Aug 6 11:56:47 EDT 1995

この日付がコンパイルした時間と異なる場合には、古いカーネルを走らせているのでしょう。本当にリブートしましたか？ LILO を使っているなら、インストールし直しましたか（/etc/lilo/install の実行）フロッピーディスクからの起動の場合、新しい起動ディスクを作成しましたか？確認しましょう。

4.6.2 Step 2 : 正しいカーネルドライバが本当に組み込まれていますか？

/proc/devices を見れば、どんなドライバが組み込まれているかがわかります。

% cat /proc/devices
Character devices:
 1 mem
 4 tty
 5 cua
 6 lp
14 sound
15 Joystick
Block devices:
 2 fd
 3 hd
25 sbpcd

まず CD-ROM デバイスドライバを探しましょう。ブロックデバイスの中にあるはずです。上の例では spbcd が見つかりました。

また ISO-9660 ファイルシステムがサポートされているかどうかも/proc/filesystems を見て確かめてください。

% cat /proc/filesystems
        ext2
        msdos
nodev   proc
        iso9660

ドライバが使用している I/O ポートアドレスを確認するためには/proc/ioports を見ます。

% cat /proc/ioports
...
0230-0233 : sbpcd
...

コンパイルして組み込んだはずのドライバが表示されない場合には、カーネルの設定か、構築に何か問題があったのでしょう。もう一度やり直してみてください。

4.6.3 Step 3 : カーネルドライバがドライブを起動時に認識していますか？

CD-ROM デバイスが起動時に認識されているかを確かめるために、起動時のメッセージを見る必要があります。メッセージがスクロールされて見えない時には、直後なら Shift-PageUp で見ることもできますが、 dmesg コマンドで見ることもできます。

% dmesg

または

% tail /var/adm/messages

ドライブが認識されない時には何かがおかしいはずです。電源が入っているか、ケーブルが正しく接続されているかを確認しましょう。ジャンパスイッチのあるものは、ハードウェアアドレスなどが正しく設定されているかを確かめましょう。 IDE デバイスとして ATAPI CD-ROM を１台だけ接続している時には”single” ”master” にして ”slave” になっていないかを確認しましょう。 DOS で正しく動くことを確認できたら、それらのハードウェアの設定はうまくいっていると考えてよいでしょう。

多くのドライバは自動検出機能を持っていますが、持っていないものもあります。また自動認識機能は必ずしも信頼できるとは限りません。ドライバの種類に合わせたカーネルコマンドラインで、ドライブの存在を明示的に示してやることもできます。また同時に標準とは異なる I/O アドレスや他のパラメータを設定することもできます。 LILO や LXboot の場合は起動時に手動で、それらのパラメータを入力することもできます。

動かない時に考慮すべきもう一つの可能性は、ドライブの種類とは異なる種類のドライバを組み込んでしまったかもしれないということです。説明書に IDE と記載してあるにも関わらず、実際には ATAPI ではなくメーカー独自のインターフェイスを持ったドライブである場合があります。

そのドライブ（またはインターフェイスカード）が DOS のドライバによって初期化しないといけないものかもしれません。この場合には DOS でいったん起動したあと、 Control-Alt-Delete でリスタートして、 Linux を起動します。

また、使っているドライブがここに載っていないものの場合、 Linux にはそのドライバが用意されていないのかもしれません。この文書の最後に使えるドライブのリストをあげておきますので、チェックしてください。

4.6.4 Step 4: ドライブからデータを読み出せますか？

CD-ROM の読み取りをしてみましょう。次に示すコマンドを打つと、ドライブのアクセスランプが（あれば）点灯するはずです。エラーが出た時は何か問題が起こっていることを示します。 if に指定するデバイスファイルは CD-ROM を示す適切なものを用いてください。 ISO-9660 の CD-ROM （Linux 配布用の CD-ROM など）がドライブに入っていることも確かめてください。終了するには Ctrl-C を入力します。

    dd if=/dev/cdrom of=/dev/null bs=2048
    ^C
    124+0 records in
    124+0 records out

これがうまくいったら、カーネルはうまくドライブとやりとりができますので、 Step 5 に移ってください。

うまくいかない時にまず考えられるのは、デバイスファイルが間違っていることです。デバイスファイルが本当に /dev ディレクトリにあって、正しい（前述の通りの）メジャー番号とマイナー番号がついているか確かめてください。メジャー番号は下の例のように ls -l コマンドで確認できます。

    ~# ls -l /dev/cdrom
    lrwxrwxrwx   1 root     root            8 Jul  2 11:58 /dev/cdrom -> /dev/mcd
    ~# ls -l /dev/mcd
    brw-r--r--   1 root     disk      23,   0 Jul 18  1994 /dev/mcd

この場合は Mitsumi CD-ROM でメジャー番号は 23, マイナー番号は 0 です。また、デバイスファイルの読みだし、書き込み権限が出ているかも確認してください。

これがうまくいかない理由には、ハードウェアの問題もあり得ます。 DOS で試して動作しなければ、ハードウェアの問題でしょう。

4.6.5 Step 5 ドライブがマウントできますか？

Step 4 のように読み出しができるのに、ドライブがマウントできない場合には、まず次のようにして、カーネルの ISO9660 ファイルシステムの機能が使えるようになっているかを確かめてください。

    % cat /proc/filesystems
            ext2
            msdos
    nodev   proc
            iso9660

CD-ROM をマウントするときには "-t iso9660" と "-r" というオプションを付けるのを忘れないようにしてください。また CD-ROM （音楽用 CD ではありません）が壊れていないことも（他のマシンで試すなどして）確かめてください。また普通は root 権限でマウントしなければなりません。

ATAPI CD-ROM の場合、 2048 というブロックサイズを与えてやる必要があるかもしれません。 "0o block=2048" というオプションを mount コマンドに与えてみてください。

また、マウントポイントが存在するか、またそれが空のディレクトリであるか確かめてください。 sbpcd ドライバの場合、音楽 CD の停止命令を送ってみてください。例えば、 xcdplayer 附属の

xcdstop などを実行した後でマウントできるようになる場合があります。おそらくバグでしょう。

起動時に CD-ROM を自動的にマウントしようとしているなら、 /etc/fstab に正しく記述されているか確かめましょう。（訳注: 最近の Slackware には /etc/fstab によらず起動時に CD-ROM を自動でマウントする rc ファイルが附属しています。）

syslog デーモンを起動している場合には、カーネルのエラーメッセージが記録されていることもあります。次のようにして "dmesg" コマンドを試してみてください。

    % dmesg
    SBPCD: sbpcd_open: no disk in drive

システムの設定によっては、エラーが /var/adm のなかのファイルに記録されている場合もあります。

4.6.6 音楽用 CD が動かない時

ここではドライブが CD-ROM を読みとれるのに、音楽用 CD を演奏できないときのための問題解決法を説明します。

音楽用 CD を演奏するためには、そのためのアプリケーションが必要です。アプリケーションによっては問題があったり、使っているドライブと合わないものもあります。動作しない時は他のアプリケーションを試してみるか、コンパイルし直してみましょう。

また、 CD-ROM ドライバによっては音楽 CD の演奏機能がないものがあります。ドライバの README やソースコードを見て確認しましょう。

ドライブについているヘッドホンジャックから音が出るならば、問題はサウンドカードにあります。ミキサープログラムを使って入力デバイスとボリュームレベルを調整してみてください。また、 CD-ROM ドライブとサウンド・カードをケーブルで接続しないとサウンドカードから音が出ないので、それも確認しましょう。サウンドカードがきちんと動作しているかは、 Sound HOWTO

(http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Sound-HOWTO.html) を見て確認してください。

4.6.7 それでもうまくいかない時には

まだ問題が解決できない場合、最後の手段をこっそりとお教えしましょう。

• もう一度この HOWTO をじっくりと読み直す。

• この文書の最後に挙げてある参考資料を読む。特にカーネルのソースに附属する README を読む。 • fj.os.linux や comp.os.linux, または関連する BBS の会議室などで質問する。

• Linux メーリングリストで質問する。

• カーネルを最新版のものに変えてもう一度試してみる。

• コンピュータを買った店に相談する。

• 関係するカーネルドライバの作者にメールで問い合わせる。

• この HOWTO の著者に聞く。

• あきらめて Emacs の M-x doctor に相談する。

5 CD-ROM を使うアプリケーション

この説では Linux で動作する CD-ROM に関連したアプリケーションを簡単に説明します。これらの最新版についての情報は、 Linux Software Map (LSM) という文書を参考にしてください。

5.1 音楽用の CD を演奏するアプリケーション

CD-ROM に付いているヘッドホン・ジャックやサウンド・カードを通じて音楽用の CD を演奏するプログラムがいくつかあります。 Workman

X ウィンドウ・システム (X11) で動く音楽用 CD の演奏プログラムで、 CD のデータベースなど、多くの機能を持っています。 Xview ライブラリを必要とします。

WorkBone

テキストベースで動く CD プレイヤーです。 xcdplayer

X11 で動くシンプルな CD プレイヤーです。 cdplayer

ごく簡単な機能だけを持つコマンドライン型の CD プレイヤーです。 Xmcd

X11/Motif の CD プレイヤーです。 xmitsumi

X11 で動く、ミツミのドライブ用のプレイヤーです。 xplaycd

これも X11 で動くもので、ミキサーや VU メータなどのプログラムが付属しています。 cdtool

コマンドラインで使う音楽用 CD のためのツール群です。これらのプログラムは特別なデバイスファイル（たとえば/dev/cdrom）用に作られています。そ

れを自分のシステムのデバイス名と合わせるために、パラメータとしてデバイス名を与えるか、シンボリック・リンクを作成しなくてはならないかもしれません。もしも CD の出力をサウンド・カードに送るつもりなら、ミキサープログラムを用意した方がいいでしょう。ボリュームを調整したり、録音用に CD-ROM からの入力を選択したりすることができるからです。

5.2 Inheriting File System

Inheriting File System (IFS) とは、カーネル内蔵のドライバで、同じ場所に複数のファイルシステムをマウントできるものです。これは SunOS の Translucent File System と同じものです。ハードディスクのディレクトリを CD-ROM にマウントすることで、疑似的に書き込み可能な CD-ROM を作ることができます。

現在はまだ実験段階で、 0.99 pl11 と pl12 用に書かれています。最近のカーネルではうまく動作しないでしょう。作者は Werner Almesberger さん (almesber@bernina.ethz.ch) です。

似たようなパッケージで、 user file system という名のものが、同じような目的のために使えるものです。

5.3 PhotoCD

PhotoCD は ISO-9660 ファイルシステムを使い、独自のフォーマットの画像データを収録したものです。どんな CD-ROM ドライブでも PhotoCD を読めるというわけではありません。

Hadmut Danisch 氏が作った hpcdtoppm というプログラムは PhotoCD ファイルを portable pixmap 形式に変換するものです。このプログラムは

(ftp://ftp.gwdg.de/pub/linux/hpcdtoppm) から、または PBM ユーティリティーの一部として

多くの FTP サイトから入手することができます。 ("pbm" または "netpbm" を探してください。 )

Gerd Knorr 氏 (kraxel@cs.tu-berlin.de) の作った photocd プログラムを使うと PhotoCD の画像を targa または Windows や OS/2 の bitmap ファイルに変換できます。

この同じ人が作った xpcd というプログラムは X11 で動く Photo CD を扱うプログラムです。画像をマウスで選び、まず小さなウィンドウで画像を見て、画像を５段階の解像度でロードすることができます。画像の一部に注目してその部分だけをロードすることもできます。このパッケージは

(ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc) にあります。

ImageMagik 画像ソフトウェアも PhotoCD ファイルを扱うことができます。これは

(ftp://ftp.x.org/contrib/applications/ImageMagick/) から入手できます。

5.4 Mkisofs

Eric Youngdale 氏の mkisofs パッケージを使うと ISO-9660 ファイルシステムをハードディスクに作ることができます。これは CD-ROM を作る前のテストに役立つでしょう。

書き込み可能な CD-ROM ドライブに書き込むためのツールは、ドライブの販売元によって異なるようです。書き込みは連続的に行うことが要求されるので、 Linux のようなマルチタスク OS はあまり適しているとは言えません。

5.5 ISO-9660 ユーティリティ

ISO-9660 フォーマットされたディスクをチェックするユーティリティがいくつかあります。 CD を疑うときには、これが役に立つでしょう。 Bill Siegmund 氏と Rich Morin 氏によって書かれたプログ

ラムが (ftp://ftp.cdrom.com/pub/cdrom/ptf/) にあります。

6 よくある質問に対する解答

6.1 root でないユーザーがディスクをマウント、アンマウントするにはどうしたらいいでしょう？

マウントコマンドによってはユーザーに対するオプションが使えるものがあります。 /etc/fstab に次のように記述すると

    /dev/sbpcd  /cdrom   iso9660     user,noauto,ro

一般のユーザーが次のようなコマンドを使って、ディスクのマウント、アンマウントができるようになります。

    % mount /cdrom
    % umount /cdrom

ディスクの安全を守るためのいくつかのオプション付きでマウントコマンドが実行されます。（例えば、プログラムが実行されなかったり、デバイスファイルが無視されたりします。）ときにはそれが用心深すぎる措置だと思われるでしょう。

他の方法として、フロッピーや CD-ROM などの持ち運び可能なデバイスを一般ユーザーがマウントしたりアンマウントするための usermount パッケージを入手することもできます。これはハードディスクなどのデバイスは保護します。これは主だったアーカイブサイトで見つかるでしょう。

また、 ftp.cdrom.com というアーカイブサイトには mount.c というソースファイルが登録されています。これは CD-ROM を一般ユーザー（だけ）がマウントしたりアンマウントしたりすることができるプログラムです。これは setuid することで実行します。

6.2 CD-ROM をアンマウントしようとすると "device is busy" というメッセージが出るのですが。

他のプロセスがそのドライブにアクセス中だったり、マウントされたディスクのディレクトリを標準ディレクトリとしているプロセスがあったりすると、ディスクをアンマウントすることはできません。どのプロセスがディスクにアクセスしているのか知りたいときには、次に示すように fuser コマンドを使うことができます。

    % umount /cdrom
    umount: /dev/sbpcd: device is busy
    % fuser -v /cdrom
    /cdrom:               USER       PID ACCESS COMMAND
                          tranter     50 ..c..  bash

6.3 NFS を使って CD-ROM を他のホストに転送することはできますか。

/etc/exports を書き換える必要があります。詳しくはオンラインマニュアルの exports(5) を見てください。

6.4 Linux を CD-ROM から起動する方法はありますか。

一番簡単なのは、ブートフロッピーを使うことです。 (Slackware などの) Linux の配布形態には、一つ又はいくつかのブート用のフロッピーが付いています。使っているシステムに合った CD-ROM ドライバの組み込まれたフロッピーを使って起動してください。

将来的には必要な ROM BIOS 機能を持った ATAPI CD-ROM ドライブから直接 Linux を起動することができるようになるでしょう。

6.5 音楽用の CD からデジタルデータを読み出すにはどうしたらいいでしょう。

これができる CD-ROM ドライブは多くはありません。 Heiko Eissfeldt 氏 (heiko@colossus.escape.de) と Olaf Kindel 氏が音楽データを読みとって .wav フォーマットのファイルとして保存するユーティリティーを書いています。これは東芝の XM3401 または XM4101 SCSI ドライブでのみ動きます。このパッケージは cdda2wav.tar.gz という名前で sunsite.unc.edu に登録されています。他にも Chinon 535 や東芝 3601B のドライブで成功したという報告もあります。

Panasonic SBPCD ドライバは、バージョン 1.1.22 のカーネルに含まれる (version 2.0) ものから、は、サウンドデータを読むことができるようになりました。これに応じて改良された cdda2wav プロ

グラムが (ftp://ftp.gwdg.de/pub/linux/misc/cdda2wav-sbpcd.2.tar.gz) に登録されてい

ます。

標準的な cdda2wav プログラムには Panasonic のドライブに対応していると書いてありますが、まだデータの「重なり」を処理し切れないために確実に動くとはいえません。

CDU-33 ドライバは音楽データを読み込むことができるようになりました。 cdda2wav プログラムが使えるそうです。

このことについて、さらに詳しく知りたい方は、参考資料の節に挙げた alt.cd-rom の FAQ リストを見てください。

6.6 find コマンドが正しく働かないのですが。

Rock Ridge 拡張されていない ISO-9660 フォーマットのディスクの場合、 find コマンドに -noleaf オプションを付ける必要があります。

ISO-9660 フォーマットの場合、それぞれのディレクトリファイルのリンク数が簡単には分からないため、それは 2 にセットされます。しかし find プログラムは探索の最適化のために (i link - 2) 個のサブディレクトリをそれぞれのディレクトリで探し、それ以外を普通のファイルとみなすので、ディレクトリの探索がおかしくなります。 -noleaf オプションを付けるとこの最適化が行われなくなるのです。

6.7 Reveal 社の Multimedia kit の CD-ROM は使えますか？

   （以下の内容は Horne@leader.pfc.mit.edu 氏の御教示によります。）

私は Reveal CD/Soundcard キットを買い、いろいろ試した結果、 Linux で動かせるようにし、その方法を投稿しました。 CD-ROM HOWTO に掲載されて以来、週に２通ほど問い合わせが来るようになりました。

私はエキスパートではありません。私は Reveal 社のテクニカル・サポートからアドレスを聞き出して、２つの SOUND-FX ラインを cdu31a ドライバに追加しただけです。大抵の質問には答えることができません。ここで述べる以上のことはほとんど説明できません。特に注意していただきたいのは、私はこのカードが Linux に適していると、お勧めしているわけではありません。

Linux で REVEAL カードを使う

まとめ:

• 買わない方がいいでしょう。

• もしも既に持っているならば、そしてソニーのドライブを持っているならば、 CD を動作させることができます。

• ソニーのドライブでない場合でも、たぶんドライブを動かすことはできるでしょう。しかし保証はしません。私は試していないからです。

• 音は良くありません。 Aztech がプログラム情報を公開してくれたら、少しはましになるでしょう。

詳細説明:

もしも SONY のドライブが付いていれば、 cdu31a ドライバが動作します。カーネルを cdu31a ドライバをサポートするように設定します。以下は cdu31a ドライバのソースの引用です。

* WARNING -    All autoprobes have been removed from the driver.
*              You MUST configure the CDU31A via a LILO config
*              at boot time or in lilo.conf.  I have the
*              following in my lilo.conf:
*
*                append="cdu31a=0x1f88,0,PAS"
*
*              The first number is the I/O base address of the
*              card.  The second is the interrupt (0 means none).
*              The third should be "PAS" if on a Pro-Audio
*              spectrum, or nothing if on something else.

Reveal カード用に適当なところに次の設定をします。

append="cdu31a=0x654,0"

私は LILO を使っていません。私は自動認識を外して、アドレスを自分で設定しています。 (</usr/src/linux/drivers/block/cdu31a.c> のファイルから”cdu31a addresses” という文字列を検索して設定しました。 )

この方法は、ソニーのドライブ以外では動作しません！！（私は詳しくは知りませんが、動いたら非常に驚きです）

ソニーの場合の類推で、 Panasonic や Mitsumi ドライブを持っている場合も、 Reveal テクニカルサポートに電話して CD-ROM の種類にあったベースアドレスを知る必要があります。そして適切なドライバを選ぶ必要があります。（この場合、 sbpcd ドライバが使えるかはわかりません。たぶん動くでしょう。どちらにせよアドレスを知る必要があります。） "append=..." も他のドライバでどうすればいいかはわかりません。

いくつかのシステム設定をするまでは、ドライバへのパッチや lilo.conf の設定はできません。もしも Linux をまだインストールしていない時には、試してみることがあります。

1. インストールファイルを DOS パーティションにコピーして、そこからインストールします。これは簡単ですが、 DOS パーティションのハードディスクが 90MB ほど必要でしょう。一旦システムを起動してしまえば前述のやり方が使えます。そのためには最小限のシステムと、コンパイラ（Slackware の場合 A, AP, D シリーズ）それに、カーネルのソースコードのみインストールすれば十分です。これでカーネルにパッチを当てて、作り直せます。

2. SONY CD や、それに似たものの場合、パッチを当てたカーネルを作ってくれる友達が必要です。（自動認識 ON, あなたのシステムのアドレスを最初に調べるようにする）そして普通に Rdev を実行します。

     rdev  /dev/fd0 /dev/fd0                 ; root=floppy
     rdev -r /dev/fd0 1440                   ; ramdisk
     rdev -t /dev/fd0 -3                     ; prompt for screen mode

そうして、このインストール用ルートディスクから起動します。 CD-ROM 用のマウントポイントを作ってください。

      # mkdir /cd
      # mount -r -t iso9660 /dev/fd0 /cd

そして ”install from mounted directory” を選んでインストールします。もちろん配布物のカーネルはそのままでは動作しませんから、先のように改変したカーネルをコピーします。

3. これはたぶん可能なことですが（私は試していません）、 LOADLIN を使うと Linux を DOS パーティションから起動できるので、簡単にできるでしょう。たぶん LILO の用にデータをカーネルに送れるので、 DOS から Linux を起動して、カーネルドライバにアドレスを渡せばよいでしょう。ただし試したことはありません。

音源の設定:

このカード (isc-400) は Linux ではあまりサポートされていません。残念ながら、あまり良いハードウェアとはいえないからでしょう。 8-bit の SB モードで音を出すことができます。ミキサーはまだ動作していませんので、録音もできません。 MSS モードは IRQ がないので、ドライバでどのように扱えばいいのかわかりません。 AdLib 互換でも動いてはいません。

私と、もう一人がネイティブ・モードのプログラム情報を得ようと努力しましたが、さんざん電話をした挙げ句、シンガポールまで問い合わせろと言われてあきらめました。もしも良い音を出したくなれば、私は今度は SoundBlaster を買うでしょう。

6.8 Linux は書き込み可能な CD-ROM ドライブをサポートしていますか？

Adam J. Richter (adam@yggdrasil.com) 氏によると、

Yggdrasil パッケージでは、 Adaptec 154x SCSI コントローラを使って、 Philips の CD ライターを扱うことができます。他の SCSI コントローラが使えるかどうかについては確認していませんが、おそらく動くと思います。 mkisofs を使えば、 ISO-9660 ファイル・システムを作成することができるので、それを CD に書き込むことができます。このセットアップについて援助がほしい場合は、私たちの 900 テクニカル・サポート・ナンバーの 1-900-446-6075 内線 835 （US$2.95/分：アメリカ国内のみ）に電話してください。

6.9 どうして CD-ROM は read-only でマウントしなくてはならないのでしょう。

CD-ROM は読みだし専用のメディアですから当然のことです。古いカーネルでは CD-ROM は read/write モードでマウントできました。しかも CD に対する書き込みの命令はエラーにならず無視されました。カーネルのバージョンが 1.1.33 になってこの問題は見直され、 CD-ROM は read-only でしかマウントできないようになりました。マウント時には mount -r のように読みとり専用のオプションを指定してください。

6.10 システムをシャットダウンすると、ディスクトレーが開いてしまうのはなぜでしょう。

1.1.38 カーネルに附属する sbpcd ドライバは、アンマウントされるとディスクを自動的に排出します。システムをシャットダウンするときにはマウントされていた CD も自動的にアンマウントされるので、ディスクが排出されることになります。

この機能はディスクを変えたいときには便利です。さらに、トレーを開いたままで、ディスクをマウントしたり、読もうとすると、自動的にトレーを閉じるようになっています。

この仕様は、いくつかのプログラム（cdplay や workbone）で問題になることがわかりました。 1.1.60 以降のカーネルでは、この機能をソフトウェア的に調整することができます。サンプルプログラムが README.sbpcd ファイルに含まれています。（eject プログラムも使えるでしょう）

6.11 マウントできない「特殊な」 CD があるのですが。

その「特殊」な CD はおそらく（PhotoCD や CD-R ドライブを使って作られた”one-offs” のようなディスク、または 8cm 電子ブックなどの） XA ディスクでしょう。ほとんどの Linux カーネルの CD-ROM ドライバは XA ディスクを扱えませんが、それを可能にするパッチが FTP サイトにあるかもしれません。

sbpcd ドライバは XA に対応しています。もしも sbpcd ドライバを使っているなら、次のようにしてディスクが XA かそうでないかを確かめることができます。 sbpcd.c ファイルを見て、 ”Table of Contents” （目次）の表示をする (DBG TOC) ようにします。そしてカーネルを再構築して新しいカーネルをインストールして、それを使って起動します。ディスクをマウントするごとにディスクの目次が（コンソールまたはログファイルに）書き込まれます。もしも目次の最初に表示される数字が 20 ならばそれは XA ディスクです。 00 ならば普通のディスクです。もしも目次が異なるトラックを示したら、それが XA ディスクである可能性があります。

（この情報は、 Eberhard Moenkeberg さんに提供していただきました。）読めない CD の他の可能性としては、

1. その CD-ROM が ISO-9660 ファイルシステムではない。（SunOS など）

2. 音楽用 CD である。

3. ディスクが壊れている。

4. 上下逆さに入れている :-)

訳注: 電子ブックの場合、 EB フォーマットはほとんどのドライブで読めます。拡張された EBXA フォーマットは、読めないものもあるようです。

6.12 CDU-33 ドライブのアクセスランプが光るのはなぜでしょうか。

これは普通の現象であり、最近のドライバに追加された機能です。 CD がマウントされた時にアクセスランプがフラッシュします。（これはバグではなく特徴です。）

6.13 複数ディスクが入る CD-ROM ドライブは Linux で使えますか？

パイオニア（６連・１２連）やナカミチの（７連） CD-ROM チェンジャー付きの連奏ドライブが使えるという報告があります。今までに動作報告されているものはどれも SCSI ドライブです。

最近のカーネルで連奏ドライブを使うには、 make config の際に、 ”Probe all LUNs on each SCSI device”という質問に yes と答える必要があるでしょう。なお、 SCSI timeout というパラメータを大きくする必要があったという報告もあります。

7 参考資料

Panasonic の CD-ROM 用のドライバに関する情報は

/usr/src/linux/drivers/block/README.sbpcd にあるはずです。

次に示す Usenet の FAQ は news.answers に定期的に投稿されます。また rtfm.mit.edu などの FTP サイトにも登録されます。 • alt.cd-rom FAQ

• comp.periphs.scsi FAQ

またこれらの他の Linux の HOWTO 文書にも、 CD-ROM に関する有用な情報が書かれています。

• SCSI HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/SCSI-HOWTO.html)

• Hardware Compatibility HOWTO

  (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Hardware-HOWTO.html)
• Sound HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Sound-HOWTO.html)
• Kernel HOWTO (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Kernel-HOWTO.html)

• Distribution HOWTO

  (http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/Distribution-HOWTO.html)

少なくとも 10 社が Linux を収録した CD-ROM を販売しています。それらの一部は Distribution HOWTO に紹介されています。また Linux の日本語環境である JE を収録した CD-ROM もいくつかあります。「Linux 情報メモ」や「JMETA-FAQ」をご覧ください。

ここに示したニュースグループは、 CD-ROM 関連のトピックを扱っています。

• comp.publish.cdrom.hardware

• comp.publish.cdrom.multimedia

• comp.publish.cdrom.software

• comp.sys.ibm.pc.hardware.cd-rom

• alt.cd-rom

• alt.cd-rom.reviews

• fj.comp.dev.cdrom

インターネットの ftp.cdrom.com というサイトには CD-ROM についての情報やソフトウェアが多く蓄積されています。 /pub/cdrom というディレクトリを見てください。

(http://viswiz.gmd.de/MultimediaInfo/) という Web サイトにはマルチメディアに関する多

くの情報があります。

Linux Documentation Project は ”Linux Installation and Getting Started” をはじめとして Linux についていくつかの本を出版しています。これらの本は anonymous FTP を通じて無料で入手することもできますし、また印刷物として購入することもできます。

The Linux Software Map (LSM) とは、 Linux のソフトウェアについての情報と、それがどこに置

かれているかを書いた文書です。 LSM は (ftp://sunsite.unc.edu/pub/Linux/docs/LSM.gz) な

ど、様々な FTP サイトに置かれています。

Linux mailing list には多くのチャネルがあって、異なるトピックを扱っています。参加方法などを

得るためには、本文に "help" と書いたメールを majordomo@vger.rutgers.edu 宛に送ってくだ

さい。