FreeBSD QandA ジャンル別一覧: CD-ROM、CD-R、DVD
[管理番号 315] (最終更新 2003/05/17 21:39:26)
Q. インストールは CD-ROM から出来たのですが、インストール後どのように
CD-ROM を使えばいいのか分かりません。
A. 通常、CD-ROM は以下のコマンドを root 権限で実行することで、マウント
して読み出すことが出来ます。
mount -t cd9660 /dev/xxx yyy
# xxx はデバイス名: 例えば ATAPI CD-ROM なら acd0c
# yyy はマウントポイント: 例えば /cdrom や /mnt
/etc/fstab に以下のような記述がある場合には、mount /cdrom でマウン
トすることも可能です。
# Device Mountpoint FStype Options Dump Pass#
/dev/acd0c /cdrom cd9660 ro,noauto 0 0
CD-ROM からインストールした場合には自動的にこの記述が追加され、マウ
ントポイント(ディレクトリ)である /cdrom も作成されるようです。
マウントしたあとは、通常のファイルシステムと同様に参照することが可
能です( ls /cdrom してみてください)。
関連: [管理番号 666] CD-ROM や MO のマウントをする際、いちいち root
になるのが面倒なのですが。
なお Note PC 等で、PC Card 経由で接続された CD-ROM ドライブがうまく
動作しない場合、[管理番号 1408] [管理番号 2132] 等を参照してみてく
ださい。
[管理番号 571] (最終更新 2002/04/11 03:59:26)
Q. FreeBSD で CD-R を焼くことはできますか?
A. お使いの CD-R のインターフェースによって、方法が異なります。
1. ATAPI CD-R
FreeBSD 4.0-RELEASE 以降に含まれている burncd(8) を使います。
ただし、FreeBSD 4.4-RELEASE と MATSHITA CD-RW CW-7585 等の組み合わせ
ではうまく動かず、ATAPICAM パッチを当てて cdrecord のアルファ版
(cdrecord-1.11a13 等) を使うと動作したという情報が以下にあります。
<URL:http://takeno.iee.niit.ac.jp/~shige/FreeBSD/FreeBSD.html>
2. SCSI CD-R
Cdrecord (sysutils/cdrtools) というプログラムがあります。
Cdrecord では、Sony 製や YAMAHA 製などの国内で流通している
メジャーなドライブが使えます。使用可能なドライブの情報などは、
<URL:http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>
から得られます。
この他に cdrdao (audio/cdrdao) というプログラムもあるようです。
なお、FreeBSD 3.*-RELEASE 以前に含まれている worm ドライバで
使えるドライブは、
Phillips CDD 522
PLASMON RF4100
HP 4020i
の3種類です。ただし、上記ドライブを国内で入手するのは非常に困難です。
また、自作の CD-ROM を作成するためには、CD-ROM のファイルシステムを
作成する mkisofs (sysutils/mkisofs) などが必要です。
[管理番号 583] (最終更新 1999/11/03 04:52:35)
Q. FreeBSD で CD-ROM チェンジャ (多連装 CD-ROM ドライブ) は使えますか?
A. 使えます。
SCSI CD-ROM チェンジャの場合
ほぼ無条件に使えますが、SCSI カードなどの設定が必要な場合があります。
うまくいかないときは [管理番号 822] を参照してください。
ATAPI CD-ROM チェンジャの場合
FreeBSD のバージョンによりサポート状況は異りますが、1999年8月現在、
ほぼ問題なく使用できるようになっています。
wcd acd
2.2.7-RELEASE 以前 NG --
2.2.8-RELEASE NG OK ; 3.0-current で acd が追加され、
3.0-RELEASE OK OK ; それから 2.2.8-R へ MFC
3.1-RELEASE 以降 -- OK ; wcd は削除されて acd が標準へ
4.0-current OK -- ; acd がリネームされて wcd へ
2.2.8-RELEASE では標準の CD-ROM ドライバは wcd なので、acd を有効に
する必要があります。カーネルコンフィグレーションから
device wcd0 #IDE CD-ROM
をコメントアウトして、代わりに
device acd0 #IDE CD-ROM & CD-R/RW
を追加します。wcd と acd は排他的で両立できません。
なお、デバイスファイルを作成するのを忘れないようにしてください。
[管理番号 704] (最終更新 2001/10/14 11:51:13)
Q. 自分で作った FreeBSD の CD-ROM を周りの人に配ってもいいのでしょうか。
A. FreeBSD は基本的に BSD Style Copyright なので、作った CD-ROM を
配布しようが販売しようが自由です。しかし、FreeBSD の配布物の中には
一部 GNU の GPL (GNU GPL に関しては [管理番号 715] を参照して下さい)
で保護されたものが含まれているので、ソースの入手に関してなんらかの
措置をする必要があります。もし、ソースを一緒に配布する措置を取る
場合には CD-ROM に src/scontrib.* 、src/sgnu.* を含めます。
packages ディレクトリ以下のファイルのいくつかは、著作権者との関係で
再配布などが規制されているものがあります。(例えば GNU GPL により
保護されているものなら、ソースと共に配布するなどの措置を取る必要が
あります) これらは、ports ディレクトリの ports.tgz を展開した中に
ある ports/LEGAL ファイルに詳細が書かれているので、そちらを参照して
下さい。(ただし GNU GPL で保護されたものは ports/LEGAL に書かれてい
ません)
以上の注意点を護った上で、CD-ROM を作成・配布して下さい。
FreeBSD の CD-ROM の作成に関しては [管理番号 708] を参照して下さい。
[管理番号 720] (最終更新 1999/11/03 04:54:31)
Q. SCSI 接続の CDROM チェンジャを SCSI アダプタに繋いで使っていますが、
CDROM チェンジャの最初の CD しか認識しません。
A. マシン起動時に SCSI BIOS の設定を起動して LUN=0 以外を SCAN する設
定にして下さい。DC-390 シリーズなら、`Set Adapter Options' メニューの
中の `Scan all LUN for devices' の項目を `Disable (default)' から
`Enable' に変更して下さい。Adaptec の SCSI カードならば、`SCSISelect'
を起動して `Advanced Configuration Settings' または `SCSI Device
Configuration' にある `Multiple LUN Support' を `Disabled' から
`Enabled' に変更してください。
(関連 QandA [管理番号 583]、[管理番号 819])
[管理番号 822] (最終更新 2002/08/24 06:22:40)
Q. 多連装 CD-ROM ドライブなのに一つのドライブしか認識してくれません。
A. その CD-ROM ドライブは SCSI タイプですか? そうでないなら (ATAPI なら)、
まず [管理番号 583] を参照してください。
1. CD-ROM ドライブが SCSI タイプの場合、SCSI カードが多連装 CD-ROM ドライブ
を認識しているか確認してください。例えば 5連装なら、マシンのブート時
(FreeBSD のブート時ではありません) に SCSI カードの BIOS が
ID-LUN: 4-0 : ... 型番 ...
:
ID-LUN: 4-4 : ... 型番 ...
などと表示するはずです。
デフォルトでは LUN0 しか認識しない SCSI カードの場合は、BIOS の設定を
変更してください。例えば Tekram DC-390 は、DC-390 の BIOS セットアップで、
Set Adapter Options -> Scan All LUN For Devices を Enableに変更
とする必要があります。
2. 次に FreeBSD のブート時に
(amd0:4:0): ...
cd0(amd0:4:0): ...
:
(amd0:4:4): ...
cd4(amd0:4:4): ...
などと、複数の LUN が認識されているかどうか確認してください。
3. 最後にデバイスを作成します。
# cd /dev
# ./MAKEDEV cd0
:
# ./MAKEDEV cd4
ついでにマウントポイントも作成しておきましょう。
# mkdir /cdrom{0,1,2,3,4}
これで
# mount_cd9660 /dev/cd0a /cdrom0
でマウントすることができますが、/etc/fstabに
/dev/cd0c /cdrom0 cd9660 ro,noauto 0 0
:
/dev/cd4c /cdrom4 cd9660 ro,noauto 0 0
を追加しておけば、さらに簡単に
# mount /cdrom0
で OK です。
[管理番号 852] (最終更新 2001/08/12 02:51:18)
Q. FreeBSD では ATA HDD (EIDE) 及び ATAPI デバイスの DMA 転送をサポート
していますか?
A. FreeBSD のバージョンによりサポート状況は異なります。また、以下の記述は
基本的に FreeBSD/i386 (いわゆる PC/AT 互換機) の話です。FreeBSD(98) で
は全く事情が違いますので注意してください。
1. FreeBSD 4.3-RELEASE 以降
まず IDE コントローラが DMA をサポートしていれば、HDD に関しては自動
的に DMA 転送を有効にしようとします。それに対して ATAPI デバイス
(CDROM, ZIP, LS-120 など) は、デフォルトでは DMA は無効にされています。
この動作は次の MIB によって制御できます。
hw.ata.ata_dma ‥‥ ATA HDD
hw.ata.atapi_dma ‥‥ ATAPI デバイス
この MIB に対して `1' を設定すれば DMA 転送を有効に、`0' を設定すれば
DMA 転送を無効にすることができます。設定方法は、/boot/loader.conf に
次のような行を追加するか、
hw.ata.ata_dma="0" ‥‥ ATA HDD の DMA 転送を無効化し PIO モードへ
hw.ata.atapi_dma="1" ‥‥ ATAPI デバイスの DMA 転送を有効化
boot loader(8) のプロンプトで set hw.ata.atapi_dma="1" などとします。
詳しくは ata(4) と loader.conf(5) の man page を参照してください。
2. FreeBSD 4.0-RELEASE 以降 4.2-RELEASE まで
デフォルトの動作に関しては 4.3-RELEASE 以降と同じですが、HDD につい
てはブート時に DMA 転送を強制的に無効にすることができません。これは
特定のハードウェアの組み合わせによっては問題となることがあります。
起動後であれば sysctl(8) を使って、次のようにすれば良さそうです。
# sysctl -w hw.atamodes=pio,pio
ATAPI デバイスについては、カーネルオプションを使用することで DMA
転送に対応します。GENERIC カーネルではこのオプションはコメントアウトさ
れていますので、カーネルの再構築が必要です。
options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices
3. FreeBSD 3.x-RELEASE
wd ドライバの flags を指定することにより、DMA 転送が可能になります。
マニュアル wd(4) を御覧下さい。ただし、サポートされている ATA chipset
は Intel PIIX のみのようで、他の chipset で有効かどうかは不明です。
(src/sys/i386/isa/wdreg.h 参照)
controller wdc0 at isa? port "IO_WD1" bio irq 14 flags 0xa0ffa0ff
0x8000 … 32bit 転送
0x4000 … スリープモードによる HDD の一時停止への対応
0x2000 … DMA 転送
0x1000 … LBA モード
0x00ff … 下位 8bit は multi-sector 転送。0xff はドライブの最大数。
下位 16bit が Master、上位 16bit が Slave に対する設定です。
4. FreeBSD 2.2.x ではサポートされていません。
[管理番号 1144] (最終更新 2003/10/16 23:20:14)
Q. 古い CD-ROM ドライブが装着されたマシン (例えば PC9821Ce2,Cs2) に
CD-ROM から FreeBSD をインストールしようとしたところ、ファイルの転送途
中で止まってしまいます。
Alt-F2 (pc98 では GRAPH-F2) でホログラフィックシェル画面を確認すると、
atapi0.1: controller not ready for cmd
というメッセージが表示されている場合があります。
A. wcd ドライバはドライブの busy をきちんと確認していないため、遅い
CD-ROM ドライブで問題が起こることがあるようです。
4.0-RELEASE 以降に入っている ata (acd) ドライバにはこの問題はありません。
なお、PC-98/NEC での報告が多いのですが、IBM Aptiva や Gateway などでも
同様の症状の報告があることから PC-98/NEC 固有ではないようです。
pc98 では 4.6R-Rev01 以降で acd ドライバを使うことで問題が解消される
でしょう。
(参考: <URL:http://takeno.iee.niit.ac.jp/~shige/FreeBSD/CD/CD60D.html>)
また、i386 では 4.0-RELEASE 以降及び pc98 では、5.0R-Rev01 以降は ata
(acd) ドライバが標準になっていますので、この問題は起こらないと思われます。
[管理番号 1320] (最終更新 1999/05/07 00:51:16)
Q. mkisofsでブート可能なイメージを作成しようと、mkisofs-1.11.3
を pkg_add でインストールして、
mkisofs -b boot.flp -o /tmp/output-img.iso /usr/hogehoge
と -b オプションを指定しましたが
call to search_tree_file with an absolute path, stripping
initial path separator. Hope this was intended...
Uh oh, I cant find the boot image!
とエラーで止まってしまします。
A. -b オプションは作成するイメージの /(ルート) からの相対パスで指定します。
例えば FreeBSD のインストールファイルが
/usr/hogehoge/pub/FreeBSD/2.2.8-RELEASE
にあり、CD-ROM のルートを 2.2.8-RELEASE にした場合、
mkisofs -b floppies/boot.flp -r -o /tmp/output-img.iso \
/usr/hogehoge/pub/FreeBSD/2.2.8-RELEASE (実際には一行です)
などとなります。
言い換えれば、作成するイメージの中にブートイメージファイルが存在
しなければいけないのです。
[管理番号 1951] (最終更新 2001/08/12 05:25:05)
Q. ATA66 に繋いだ DVD の転送速度が遅く
> acd0:READ_BIG - ABORTED COMMAND asc=48 ascq=00 error=00
という、メッセージが表示されます。
A. まず、IDE ケーブルが ATA66 対応のケーブルか確認してください。
対応していないケーブルでは、不具合があるとの報告があります。
BX440 + ATA66(Promise) の場合では、ATA66 のチップと DVD との相性も
あるようです。
技術的には /sys/dev/ata/ata-all.c の atapi_interrupt 関数内で、
このメッセージが出ています。
ATAPI コマンドの 28h READ(10) パケットが失敗しているようです。
(FreeBSD では READ_BIG と名前を付けているようです。)
何をするのかというと ATAPI デバイスから
LBA アドレッシングモードでデータを読み込みます。
で、デバイスからか ATA66 チップからかエラーが帰ってくるので
リトライを繰り返すなどで速度低下が起きたのだと思います。
また、 /usr/src/sys/dev/ata/ata-dma.c に
/* the Promise can only do DMA on ATA disks not on ATAPI devices */
(Promise では DMA が行えるのは ATA ディスクのみで ATAPI デバイスでは
DMA を行なえません。)というコメントが記されています。