Linux に CD-ROM ドライブをインストールするためには、次に示 す作業が必要です:
次節でこの方法を詳しく説明します。
附属の説明書の通りに CD-ROM ドライブを接続するか、販売店の人に接続を行っ てもらいましょう。ドライブが内蔵型か外付けかどうか、あるいはインターフェ イスの種類などによって、具体的な接続方法は異なります。ハードウェアの接 続に関しては、特に Linux ゆえに注意しなくてはならない事はありません。 正しく動作させるには、ドライブとインターフェイスカードのジャンパスイッ チを設定する必要があるかもしれません。一部のカーネルドライバには、これ に関する情報を含む文書ファイルが付いています。
ide-cd に書いてあるように、IDE デバイスが1台だけの時には ATAPI CD-ROM のジャンパースイッチは "slave" ではなく "single" または "master" に設定しなくてはなりません。
Linux を最初に CD-ROM からインストールするためには、Linux ディストリビュー ションの一部として用意されている起動ディスクやルートディスクを使うこと になるでしょう。可能ならば、CD-ROM の種類に合わせたドライバが含まれた ディスクを選ぶ必要があります。もしも適切な CD-ROM ドライバ が入っている起動ディスクが見つからなければ、いくつか他の方法もあります:
Linux Installation HOWTO (日本語訳: http://www.linux.or.jp/JF/JFdocs/Installation-HOWTO.html) にはインストールに関するさらに詳しい情報が載っています。Linux の入った CD-ROM を買った場合には、小冊子やテキストファイルの形でインストール方 法の解説がついていると思いますので、それを参考にしましょう。
Linux を一度インストールしてしまえば、大抵はカーネルを自分の環境に合わ せてコンパイルし直した方がいいでしょう。その理由を以下に示します:
Linux Kernel HOWTO (日本語訳: http://www.linux.or.jp/JF/JFdocs/Kernel-HOWTO.html) はカーネルの再構築にについて詳し く述べてあるはずです。ここでは CD-ROM に関連することだけを説明します。
もちろん "make config" の際には、CD-ROM ドライブのサポートを組み込まな ければなりません。
ATAPI CD-ROM ドライブを持っている場合、次の質問に yes
と答え
なくてはなりません:
Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]
SCSI の CD-ROM ドライブの場合は、次の質問に "yes" と答えます:
SCSI support (CONFIG_SCSI) [Y/n/m/?]
SCSI CDROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]
またお使いの SCSI カードも有効にしてください。例えば以下のような質問
Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X) [Y/n/m/?]
に yes と答えます。
独自インターフェイスを持つドライブの場合、適切なドライバを使うようにし てください。前に示した表を参考にどのドライバを使うかを見つけてください。
事実上全ての CD-ROM は ISO-9660 ファイルシステムを使っています。そこで
ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]
に "yes" と答えます。
CD-ROM の操作に必須ではありませんが、Linux がサポートしているサウンド カードを持っているならば、ついでにカーネルのサウンドドライバの設定もし ておくとよいでしょう。 Sound HOWTO (日本語訳: http://www.linux.or.jp/JF/JFdocs/Sound-HOWTO.html) が参考になるでしょう。
設定が終ったら、いつも通りの手順でカーネルをコンパイルして、インストー ルしてください。次の章で説明するようにデバイスファイルの作成と起動時パ ラメータの設定を行うまでは、あわてて再起動してはいけません。
ISO-9660 ファイルシステムとほとんど全ての CD-ROM ドライバは、 カーネルモジュールとして構築することもできます。この方法を 用いると、カーネルの再起動やメモリの解放を行うことなくドライバのロード とアンロードを行うことができます。ただし最初はカーネル組み込みのドライ バを用いて接続を行うことをお勧めします。カーネルモジュールの使い方は、 モジュール付属の文書や Kernel HOWTO で説明されています。
もしもお使いのドライブがカーネルでサポートされていなかったら、もっと新 しいカーネルを使ってみる必要があるでしょう。
また、カーネルのソースコードとは別に配布されているドライバを使う必要が あることもあります。普通はカーネルのソースコードにパッチを当てます。 これもやはり Kernel HOWTO を参考にしてください。
カーネル設定プログラムには、"make menuconfig" で呼び出すこ とができるメニューベースのものや、"make xconfig" で呼び出すことができ る X11 ベースのグラフィカルなものがあります。(標準の方法も含めて)3 つ の方法全てにオンラインヘルプが付いています。
(訳注: オンラインヘルプの内容が書かれている Configure.help ファイルの 日本語訳が JF にあります。 http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/Configure.help.euc.html をご覧ください。)
カーネルはどのデバイスドライバを使うかを判断するために、 デバイスファ
イルを使用します。通常の Linux のパッケージを使っている場合には、イン
ストール時に必要なデバイスファイルが作成されているはずです。例えば
Slackware には、メニュー形式の設定ツールである setup
がついて
います。またほとんどのシステムには /dev/MAKEDEV というス
クリプトがついているはずです。この方法を使わないで、この節に書いてある
ことを手動で実行することもできます。いずれの方法を使うにしても、この節
に書いてあることを参考に、少なくともデバイスファイルを確認しておくこと
をお奨めします。
デバイスファイルを作るには、ドライブの種類に合わせてシェルコマンドを使
います。この作業をするには、root
ユーザになる必要があります。
Linux のパッケージによってはここに示したのとは異なる名前の CD-ROM のデ
バイスファイルを使っていることがありますので注意してください。
CD-ROM のデバイス名には、覚えやすい名前のシンボリックリンクを張る ことをお奨めします。IDE CD-ROM の 2 番目のインターフェイスに付いている 2 番目のドライブには以下のようなリンクを張ります。
# ln -s /dev/hdd /dev/cdrom
音楽用 CD を演奏したい場合は一般のユーザがデバイスファイル(シンボリッ クリンクではなく実ファイル)に対して読み込みができるようにファイル保護 モードを設定する必要があります。例えば次のようにします。
# chmod 664 /dev/hdd
# ls -l /dev/hdd
brw-rw-r-- 1 root disk 22, 64 Feb 4 1995 /dev/hdd
Linux 起動時に、デバイスドライバは適切なデバイスが存在するかどうかを
(普通は特定のメモリのアドレスを見ることで)確認しようとします。多くのド
ライバは複数のアドレスを探しますが、ハードウェアの設定の違いが原因で、
デバイス同士が同じアドレスを使おうとして衝突することやハードウェアの制
限などの問題が起こることがあります。そのためデバイスが使うメモリアドレ
スなどのパラメータの指定が必要な場合があります。ほとんどのドライバでは、
カーネルのコマンドラインオプションを使ってこの情報をドライバに渡すこと
ができるようになっています。この指定は対話的に行うこともできますが、普
通はブートローダを使って指定します。LILO の場合、
以下のような append
コマンドを /etc/lilo.conf ファ
イルに書き加えます。
append = "sbpcd=0x230,SoundBlaster"
詳しくは LILO 付属の文書を参照してください。
次節ではそれぞれのデバイスドライバについて特に注意しなくてはならないこ とを述べます。例えばデバイスファイルや起動時のパラメータやドライバによ る機能の違いなどです。この節については、読者の皆さんがお持ちのドライブ の項目だけを読めば充分です。デバイスドライバに関する文書は通常、 /usr/src/linux/Documentation/cdrom ディレクトリにあります。
(訳注: この節で、ドライバの説明として出てくる表の項目の、わかりにくい ものを簡単に説明します。「複数ドライブの接続」は、1 枚のカードに複数台 のドライブを接続できるかどうかを示します。「音楽データ読み出し」はデー タの読み出しの可・不可であり、音楽 CD が演奏できるかどうかではありませ ん。「カーネル設定オプション」はカーネルの "make config" の時に出てく るメッセージのことです。)
原作者: Eberhard Moenkeberg (emoenke@gwdg.de) マルチセッション: 可 (ただし全てのドライブではありません) 複数のドライブ接続: 可 ドライバのモジュール化: 可 音楽データ読みとり: 可 (CR-562, CR-563, CD-200 のみ) ドライブの自動認識: 可 デバイスファイル: /dev/sbpcd, メジャー番号 25 設定ファイル: sbpcd.h カーネル設定オプション: Matsushita/Panasonic CDROM support? README ファイル: sbpcd
このドライバは次のようなカーネルコマンドラインを受けとります。
sbpcd=<io-address>,<interface-type>
最初のパラメータはデバイスのベースアドレス(例えば 0x230)で、
<インターフェイスの種類> は "SoundBlaster", "LaserMate", "SPEA"
のいずれかです。どのインターフェイスを使っているかのヒントは、
sbpcd.h を見ると参考になるでしょう。sbpcd=0
を設
定すると、自動認識をやめてドライバを無効にします。
デバイスファイルは以下のように作成します。
# mknod /dev/sbpcd b 25 0
1 つのインターフェイスカードに 4 台までのドライブが接続できます。2 台目 からのドライブはマイナー番号が 1 から 3 までのデバイスを使用します。複 数のインターフェイスカードを使うこともできます。この時はメジャー番号が 25 のものに加えて 26, 27, 28 のデバイスを作れます(つまり最大 4 枚の カードを使って 16 台の CD-ROM ドライブが接続できるのです。これ以上つな ぎたいという人がいないことを祈ります :-)。
更に詳しいことは spbcd ファイルを見てください。
CD-ROM ドライブを買ったのが最近である場合、ドライブが SoundBlaster に繋ぐようになっていても、このカーネルドライバを使わなければならないと 思い込まないでください。現在は Creative Labs が販売している CD-ROM ド ライブはほとんどが EIDE/ATAPI ドライブです。
原作者: Ken Pizzini (ken@halcyon.com) マルチセッション: 不可 複数のドライブの接続: 不可 ドライバのモジュール化: 可 音楽データの読みだし: 不可 自動認識: 不可 デバイスファイル: /dev/sonycd535, メジャー番号 24 設定ファイル: sonycd535.h カーネル設定オプション: Sony CDU535 CDROM support? 説明: sonycd535
このドライバはカーネルコマンドラインのオプションとして
sonycd535=<I/O アドレス>
を受け付けます。 <I/O アドレス> はインターフェイスカードのベースアドレス(0x320 など)です。コンパイル前に sonycd535.h を書き換えることで も変更可能です。
デバイスファイルは次のようにして作ることができます。
# mknod /dev/sonycd535 b 24 0
Linux のディストリビューションよってはこのドライブ用に /dev/sonycd というデバイスファイルを持っているものもあり ます。このドライバの古いものはメジャー番号が 21 になっているものがあり ます。お使いのデバイスファイルに正しい番号 (24) が設定されているかどう かを確かめてください。
このドライバはかつてはパッチとして配布されていましたが、今では正式にカー ネルに含まれています。sonycd535 ファイルにはもっと詳しい 情報が書かれています。
原作者: 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 など)。2 つ目のパラ メータは割り込み番号です。(0 は Polled I/O を使うことを示します。) 3つ 目のパラメータ(省略可能)には、Pro-Audio Spectrum をつないでいる時には "PAS" を指定し、なければ何も書きません。
このドライバをモジュールとしてロードする時は、オプション指定の方法が少 し違います。modprobe コマンドや insmod コマンドを使ってドライバをロー ドする時に、以下のようにパラメータを指定します。
cdu31a_port=<I/O アドレス> cdu31a_irq=<割り込み番号>
ベース I/O アドレスは必要ですが、割り込み番号は省略可能です。
デバイスファイルは次のようにして作ります。
# mknod /dev/cdu31a b 15 0
このドライバに関する更に詳しい説明は cdu31a に書いてあり ます。
Jeffrey Oxenreider (zureal@infinet.com) さんの WWW ページにはこのドラ イバを使う時によく起こる問題が書いてあります。 そのページは http://lemures.shinma.symix.com/~zureal/cdu31a.html にあります。
原作者: Werner Zimmermann (zimmerma@rz.fht-esslingen.de) マルチセッション: 可 複数ドライブの接続: 不可 ドライバのモジュール化: 可 音楽データの読み出し: 不可 自動認識: 不可 デバイスファイル: /dev/aztcd0, メジャー番号 29 設定ファイル: aztcd.h カーネル設定オプション: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support? README ファイル: README.aztcd
このドライバは次のカーネルコマンドラインを受け付けます。
aztcd=<I/O アドレス>
パラメータはカードの I/O ベースアドレス(0x340 など)です。
デバイスファイルは次のようにして作成できます。
# mknod /dev/aztcd0 b 29 0
README.aztcd には更に詳しい情報が書いてあります。
原作者: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de) マルチセッション: 不可 複数ドライブの接続: 不可 ドライバのモジュール化: 可 音楽データの読みだし: 不可 自動認識: 不可 デバイスファイル: /dev/gscd0, メジャー番号 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 を見てくださ い。
原作者: Martin (martin@bdsi.com) マルチセッション: 不可 複数ドライブの接続: 不可 カーネルのモジュール化: 可 音楽データの読みだし: 不可 自動認識: 不可 デバイスファイル: /dev/mcd, メジャー番号 23 設定ファイル: mcd.h カーネル設定オプション: Standard Mitsumi CDROM support? README ファイル: mcd
これは Mitsumi のドライブ用の古い方のドライバで、しばらくの間使われて
いました。新しい方の mcdx
ドライバを使うとよいでしょう。こち
らは新しい機能がいくつかありますが、安定度では劣るかもしれません。
このドライバでは、
mcd=<I/O アドレス>,<IRQ>
という形式のカーネルコマンドラインで I/O ベースアドレス(0x340 など)と IRQ 番号を指定できます。
デバイスファイルは次のようにして作ります。
# mknod /dev/mcd b 23 0
mcd ファイルに詳しい情報が載っているでしょう。
原作者: Heiko Schlittermann マルチセッション: 可 複数ドライブの接続: 可 ドライバのモジュール化: 可 音楽データの読み出し: 不可(ハードウェア自体が対応していません) 自動認識: 不可 デバイスファイル: /dev/mcdx0, メジャー番号 20 設定ファイル: mcdc.h カーネル設定オプション: Experimental Mitsumi support? README ファイル: mcdx
このドライバが新しい方のドライバです。古くて多分枯れている
mcd
ドライバもまだ使用可能です。
このドライバは次のカーネルコマンドラインによって
mcdx=<I/O アドレス>,<IRQ>
I/O ベースアドレス(0x340 など)と、IRQ 番号を設定できます。
デバイスファイルは次のようにして作成します。
# mknod /dev/mcdx0 b 20 0
Mitsumi 製の CD-ROM を買ったのが最近である場合、このカーネルドライバを 使わなければならないとは思い込まないでください。現在の新しい Mitsumi の CD-ROM ドライブは EIDE/ATAPI 互換なので、このドライバではなく idecd カーネルドライバを使わなければなりません。
詳しいことは mcdx ファイルを御覧ください。
原作者: David A. van Leeuwen (david@tm.tno.nl) マルチセッション: 可 複数ドライブの接続: 不可 ドライバのモジュール化: 可 音楽データの読み出し: 不可 自動認識: 可 デバイスファイル: /dev/cm206cd, メジャー番号 32 設定ファイル: cm206.h カーネル設定オプション: Philips/LMS CM206 CDROM support? README ファイル: cm206
このドライブは、
cm206=<I/O アドレス>,<割り込み>
という形式のカーネルコマンドラインによって、I/O ベースアドレス(0x340 など)と割り込み番号を設定することができます。
デバイスファイルは以下のようにして作成します。
# mknod /dev/cm206cd b 32 0
詳しくは cm206 をご覧ください。
原作者: Leo Spiekman (spiekman@dutette.et.tudelft.nl) マルチセッション: 不可 複数ドライブの接続: 不可 ドライバのモジュール化: 可 音楽データの読み出し: 不可 自動認識: 不可 デバイスファイル: /dev/optcd0, メジャー番号 17 設定ファイル: optcd.h カーネル設定オプション: Experimental Optics Storage ... CDROM support? README ファイル: optcd
このドライバは、
optcd=<io-address>
という形式のカーネルコマンドラインでカードの I/O ベースアドレス(0x340 など)を設定できます。
デバイスファイルは次のようにして作成します。
# mknod /dev/optcd0 b 17 0
詳しくは optcd ファイルをご覧ください。
原作者: Vadim V. Model (vadim@rbrf.msk.su) マルチセッション: 不可 複数ドライブの接続: 不可 ドライバのモジュール化: 可 音楽データの読み出し: 不可 自動認識: 不可 デバイスファイル: /dev/sjcd, メジャー番号 18 設定ファイル: sjcd.h カーネル設定オプション: Experimental Sanyo H94A CDROM support? README ファイル: sjcd
このドライバは、
sjcd=<I/O アドレス>,<割り込み>,<DMA>
という形式のカーネルコマンドラインでカードの I/O ベースアドレス(0x340 など)、割り込み番号、DMA チャネルを設定できます。(例: sjcd=0x340,10,5)
デバイスファイルは次のようにして作成します。
# mknod /dev/sjcd b 18 0
詳しくは sjcd ファイルをご覧ください。
原作者: Grant R. Guenther (grant@torque.net) マルチセッション: 不可 複数ドライブの接続: 可 ドライバのモジュール化: 可 音楽データの読み出し: 不可 自動認識: 可 デバイスファイル: /dev/pcd0, メジャー番号 46 設定ファイル: bpcd.h カーネル設定オプション: Parallel port IDE device support? README ファイル: paride.txt
これは、パラレルポートに接続する各種の記憶デバイス用のドライバです。通 常、このドライバはパラレルポートデバイスを自動的に検出します。 自動検出がうまく動作しない場合には、ドキュメントに書かれているデバイス 用パラメータの指定に使用できるパラメータの説明をご覧ください。
最初のドライブ用のデバイスファイルは次の操作で作成できます:
# mknod /dev/pcd0 b 46 0
詳しくは /usr/src/linux/Documentation/paride.xt をご覧く ださい。古いバージョンのカーネルに入っていた bpcd ドライバはこのドライ バに置き換わっている点に注意してください。
原作者: Grant R. Guenther (grant@torque.net) マルチセッション: 可(CD-ROM ドライブに依存) 複数ドライブの接続: 可 ドライバのモジュール化: 可 音楽データの読み出し: 不可 自動認識: 可 デバイスファイル: /dev/scd0, メジャー番号 11 設定ファイル: cdrom.h カーネル設定オプション: SCSI CDROM support? README ファイル: scsi.txt
カーネルコマンドラインは SCSI カードの種類ごとに専用のものがあります。 詳しくは SCSI HOWTO (日本語訳: http://www.linux.or.jp/JF/JFdocs/SCSI-HOWTO.html) をご覧ください。
複数の CD-ROM ドライブを接続することができます(SCSI バスに接続可能な台 数まで接続できます)。デバイスファイルはメジャー番号 11 で、最初のマイ ナー番号が 0 から始まるように作成します。
# mknod /dev/scd0 b 11 0
# mknod /dev/scd1 b 11 1
カーネルドライバそのものは音楽データの取り出しをサポートしていませんが、 一部の SCSI ドライブはこの機能を持っています。この機能は cdda2wav プロ グラムを使って利用できます(このプログラムは generic SCSI カーネルイン ターフェイスを使用します)。
前述の IDE CD-ROM ドライブの SCSI エミュレーション ドライバ の説明もご覧ください。
原作者: Scott Snyder (snyder@fnald0.fnal.gov) マルチセッション: 可 複数ドライブの接続: 可 ドライバのモジュール化: 不可 音楽データの読み出し: 可(ドライブ側の対応が必要) 自動認識: 可 デバイスファイル: /dev/hd{a,b,c,d}, メジャー番号 22 設定ファイル: cdrom.h カーネル設定オプション: Include support for IDE/ATAPI CDROMs? README ファイル: ide-cd
これは ATAPI CD-ROM ドライブ用のドライバです。このドライバは
hdx=cyls,heads,sects,wpcom,irq
または
hdx=cdrom
という形式のカーネルコマンドラインを受け付けます。
hdx
には {hda,hdb,hdc,hdd} のいずれか、または単に hd (「次の」
順番のドライブを表します)を指定します。必要なのは最初の 3 つのパラメー
タだけ(cyls,heads,sects)です。例えば hdc=1050,32,64 hdd=cdrom
のように指定します。
IDE ドライバに CD-ROM ドライバを認識させるためにトリックが必要なことが あります。3 つ以上のデバイスがある場合や、複数の IDE コントローラがあ る場合は特にそうなります。通常必要なことは、正しいコマンドラインオプショ ンを LILO から渡すことだけです。その方法については /usr/src/linux/Documentation/cdrom/ide-cd ファイルに説明 があります。よく読んでください。
最近の Linux カーネルでは複数の IDE デバイスへの対応が改良されています。 古いカーネルを使っていて問題が起きた場合は、カーネルをバージョンアップ すると直るかもしれません。
一部の IDE コントローラにはハードウェア的な問題がありますが、カーネル ドライバ側で問題を回避することができます。この機能を有効にするためには、 ドライバに追加のパラメータを渡す必要があるかもしれません。詳しくは ドライバの README ファイルをご覧ください。
さて、これで新しいカーネルを起動する準備ができました。リブートしたら、 次に示すようなデバイスドライバが出すメッセージを確認しましょう。 これはデバイスドライバが CD-ROM ドライブを検出したことを示します(この メッセージは CD-ROM ドライブのタイプによって異なります)。
hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive
この起動メッセージがスクロールしてしまって見えない場合には、
dmesg
コマンドや tail /var/adm/messages
などのコマン
ドで確認できるはずです。
ドライブが認識されなかったり、問題が発生したときには、「困った時の対処」 の項を見てください。
CD-ROM をマウントするには、CD-ROM をドライブに入れた後、root
ユーザになって以下のように mount
コマンドを実行してください
(前記のように、CD-ROM ドライブのデバイスファイルに
/dev/cdrom というシンボリックリンクを設定した場合です)。
# mount -t iso9660 -r /dev/cdrom /mnt/cdrom
これで /mnt ディレクトリで CD-ROM にアクセスすることがで きます。
mount コマンドには他にも役に立つオプションがあります。詳し
いことはオンラインマニュアルの mount(8)
の項を見てください。
(訳注: mount(8)
とはオンラインマニュアルの 8 章の mount の節
という意味です。man 8 mount
で表示されるはずです。)
/etc/fstab に項目を書き加えることで、Linux の起動時に
CD-ROM を自動的にマウントしたり、マウントする時のパラメータを指定する
ことができます。これについてもオンラインマニュアルの fstab(5)
を見てください。
音楽用 CD を再生する場合は CD-ROM をマウントしてはいけません。
CD-ROM をアンマウントするには、root
ユーザになって、次のよう
に umount
コマンドを実行します。
# umount /mnt/cdrom
CD-ROM をアンマウントできるのは、そのドライブにアクセスしているプロセ スがない時にかぎります(またはそのドライブが何らかのプロセスのデフォル トのディレクトリになっている時にもアンマウントはできません)。CD-ROM をアンマウントしてからでないと排出してはいけません。大抵のドライブには イジェクトボタンがついていますが、ソフトウェア的に CD-ROM を排出する eject プログラムもあります。
CD-ROM をマウントしている間は、CD-ROM を排出してはいけませ ん(これができるかどうかはドライブによって異なります)。ドライバによっ ては、CD-ROM がアンマウントされると自動的に排出を行い、CD-ROM をマウン トすると自動的にトレイの挿入を行います(この機能はカーネルのコンパイル 時や、またはソフトウェア・コマンドを使って off にすることもできます)
音楽 CD を演奏した後に、CD-ROM がマウントできないことがあります。この 場合にはマウントの前に(CD プレイヤープログラムを使って) 音楽 CD の演奏 を「停止(stop)」させる必要があります。この問題は sbpcd ドライバでのみ 起こるようです。
最近のカーネルはカーネルベースの オートマウンタ(automounter) をサポートしており、これを使う と CD-ROM を含めたリムーバブルメディアの透過的なマウントを行うことがで きます。これを行うために必要なツールは ftp://ftp.kernel.org/pub/linux/daemons/autofs/ にあります。
この HOWTO に書かれている手順に従ったにもかかわらず問題が起こったら、 以下の項目を確認してください。後に書いてあるものほど複雑な問題です。チェッ クして、うまくいかない時には、その問題を解決してから次の項目に移ってく ださい。
CD-ROM のサポートを組み込んでコンパイルしたカーネルを実行しているかど
うかは、カーネルの日付を調べればわかります。次のように uname
コマンドでタイムスタンプを見てください。
% uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown
または /proc/version を見ることでも確認できます。
% cat /proc/version
Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21 EST 1999
この日付が実際にコンパイルした時間と異なる場合には、古いカーネルを走ら せているのでしょう。本当にリブートしましたか? LILO を使っているなら、 再インストールを行いましたか?(/etc/lilo/install の実行) フロッピーディ スクからの起動の場合、新しい起動ディスクを作成してそれを使っていますか?
/proc/devices を見れば、組み込まれているドライバがわかり ます。
% cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyS
5 cua
7 vcs
Block devices:
3 ide0
22 ide1
まず CD-ROM デバイスドライバを探しましょう。ブロックデバイスの中にある
はずです。この例では idecd
(メジャー番号 22 )が見つかりました。
また ISO-9660 ファイルシステムがサポートされているかどうかも /proc/filesystems を見て確かめてください。
% cat /proc/filesystems
ext2
nodev proc
nodev devpts
vfat
iso9660
ドライバが使用している I/O ポートアドレスを確認するには /proc/ioports を見ます。
howto % cat /proc/ioports
...
0230-0233 : sbpcd
...
コンパイルして組み込んだはずのドライバが表示されない場合には、 カーネルの設定か構築に何か問題があったのでしょう。カーネルの設定と構築 からもう一度やり直してみてください。
カーネルの起動時に CD-ROM デバイスが認識されていることを確かめます。こ
れには起動時のメッセージを見る必要があります。メッセージがスクロールさ
れて見えない時には普通、dmesg
コマンドを使えば再表示させるこ
とができます。
% dmesg
または
% tail /var/log/messages
を使う方法もあります。
ドライブが認識されない時には何かがおかしいはずです。電源が入っているか、 ケーブルが正しく接続されているかを確認しましょう。アドレス設定用のジャ ンパスイッチがついているドライブでは、ハードウェアアドレスなどが正しく 設定されているかを確かめましょう(例: ドライブが 1 つしかなければドライ ブ 0 を設定)。 ATAPI CD-ROM を 1 台だけインターフェイスに接続している 時には "single" または "master" にして "slave" になっていないことを確 認しましょう。DOS で正しく動くことを確認できたら、それらのハードウェア の設定はうまくいっていると考えてよいでしょう。
多くのドライバは自動検出機能を持っていますが、これを持って いないドライバもありますし、自動認識機能は必ずしも信頼できるとは限りま せん。このような場合には、カーネルドライバの種類に合わせたカーネルコマ ンドラインを指定してください。I/O アドレス等のパラメータの値が確かでな ければ、異なる値をいくつか試してみてもよいでしょう。LILO を使うと起動 時に手動でパラメータを入力するようにできます(通常はそうなっています)。
動かない時に考慮すべきもう一つの可能性は、ドライブの種類とは異なる種類 のドライバを組み込んでしまったかもしれないということです。 説明書に IDE と記載してあるにも関わらず、実際には ATAPI ではなく メーカー独自のインターフェイスを持ったドライブである場合があります。
別の可能性としては、そのドライブ(またはインターフェイスカード)は DOS のドライバによって初期化しなければならない「互換」タイプのドライブかも しれません。この場合には DOS を起動し、メーカーが提供している DOS 用の デバイスドライバを読み込んだあと、Control-Alt-Delete でリスタートして、 Linux を起動します。
また、使っているドライブがここに載っていないものの場合、Linux にはその ドライバが用意されていないのかもしれません。この文書の最後に参考文献の リストを挙げておきますので、参考に見てください。
CD-ROM の読み取りをしてみましょう。次に示すコマンドを打つとドライブ の動作ランプが(あれば)点灯し、この場合には何もエラーが起こっていないは ずです。if に指定するデバイスファイルは CD-ROM ドライブを示す適切なも のを用いてください。ISO-9660 の 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 ディレクトリにあって、 正しい(前述の通りの)メジャー番号とマイナー番号がついているか確かめて ください。デバイスのパーミッションが読み書き可能になっていることも確か めてください。
ハードウェアの問題である可能性も少しあります。可能ならば別の OS でド ライブをテストして、本当にハードウェアの問題かどうか調べてください。
ドライブの読み出しができるのに、ドライブがマウントできない 場合には、以前に説明したように /proc/filesystems を調べて、 ISO9660 ファイルシステムのサポートがカーネルに組み込まれていることを確 かめてください。
CD-ROM をマウントするときには "-t iso9660" と "-r" というオプションを
必ず付けてください。また CD-ROM (音楽用 CD ではありません)が壊れていな
いことも(他のマシンで試すなどして)確かめてください。また普通は
root
権限でマウントしなければなりません。
また、マウントポイントが存在し、かつそれが空のディレクトリであることを 確かめてください。
起動時に CD-ROM を自動的にマウントしようとしているなら、 /etc/fstab に正しく記述されているか確かめましょう。 (訳注: 最近の Slackware には /etc/fstab によらず起動時に CD-ROM を自動でマウントする rc ファイルが附属しています。)
syslog デーモンを起動している場合には、カーネルからの普段見ないエラー
メッセージが記録されていることもあります。"dmesg"
コマンドを
試してください。
% dmesg
SBPCD: sbpcd_open: no disk in drive
システムの設定によっては、エラーが /var/adm の中のファイ ルに記録されている場合もあります。
ここではドライブが CD-ROM ならば動作するのに、音楽用 CD を演奏できないとき のための問題解決法を説明します。
音楽用 CD を演奏するためには、そのためのアプリケーションが必要です。ア プリケーションによっては問題があったり、お使いのドライブと合わないもの もあります。動作しない時は他のアプリケーションを試してみるか、コンパイ ルし直してみましょう。アプリケーションを探すには ftp://metalab.unc.edu/pub/Linux/apps/sound/cdrom/ を探すとよいでしょう。
また、CD-ROM ドライバによっては音楽 CD の演奏機能がないものがあります。 ドライバの README ファイルややソースコードを見て、そうでないかどうかを 確認しましょう。
ドライブに付いているヘッドホン端子から音が出力されているかどうかを確認 してください。音が出力されているならば、問題はサウンドカードがらみでしょ う。ミキサープログラムを使って入力デバイスとボリュームレベルを調整して みてください。また、CD-ROM ドライブとサウンドカードをケーブルで接続し ないとサウンドカードから音が出ないので、それも確認しましょう。サウンド カードがきちんと動作していることも確かめましょう( Sound HOWTO を参照)。
それでも問題が解決できない場合のため、最後の手段をお教えしましょう。
fj.os.linux
や comp.os.linux
, または関連する
ネットニュースのニュースグループで質問する。