IDE-SCSIエミュレーション

First Edition 2002.2.2
Last Updated 2003.5.1

I・O DATAのCD-RW、DVD-ROMコンボドライブ CDRWD-AB1210Jを購入しました。これでVineで CDが焼け、DVDが見られます。(喜)
これはATAPIドライブなのですが、Linux用のCD-Writingソフトの多くは、SCSIドライブで動作 することを前提としています。Linuxには、ATAPIドライブをSCSIドライブとして使うことが出来る ide-scsiエミュレーションという方法がありますので、さっそくやってみます。
ide-scsiエミュレーションは、カーネル自身が対応している必要があります。Vine2.Xのカーネルでは、 標準で対応していますので問題ありません。

  1. liloを設定する(対象Ver:全て)(2002.8.13)
  2. modprobeコマンドを実行する(対象Ver:全て)(2002.8.13)
  3. その他の変更(対象Ver:全て)(2003.5.1)

liloを設定する

liloを起動するときに、接続しているATAPIドライブをSCSIドライブとするオプションを追加します。

/etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
append="apm=on lba32 hdc=ide-scsi max_scsi_luns=2"
default=linux

上記の赤い部分を追加します。
hdc=ide-scsiは、ドライブをIDEチャネルにつなげる場所により、 以下のようにオプションの指定は異なります。

プライマリマスターhda
プライマリスレーブhdb
セカンダリマスターhdc
セカンダリスレーブhdd

max_scsi_luns=2は、1つのドライブで複数枚のCD-ROMが挿入できるチェンジャー のようなドライブを使いたいときに指定します。これを論理ドライブというのですが、うちでは、 DVDとのコンボドライブなので、この指定を入れました。2と指定すると2つまでの論理ドライブを検索します。
普通のCD-Rドライブであれば、この指定は入れなくても動くと思います。もし動かなかったら、この指定を 入れると動くようになることがあるようです。

lilo.confに追加をしたら、忘れずにliloコマンドを実行しましょう。ルートになって実行します。
# /sbin/lilo
コマンド実行後、システムを再起動します。

○Vine2.1.5では再起動後にmodprobeコマンドを実行する必要があります。

○Vine2.5、2.6ではliloの設定だけで終わりです。modprobeコマンドを実行するその他の変更も必要なくなったようです。

modprobeコマンドを実行する

この項目はVine2.1.5でのみ必要な作業です。2.5、2.6では必要ありません。
コンピュータを再起動しましょう。再起動したら、以下のコマンドを打ち込んでみます。
# /sbin/modprobe ide-scsi
dmesgで確認します。
# dmesg
scsi : 0 hosts.
ncr53c8xx: at PCI bus 0, device 11, function 0
ncr53c8xx: 53c875 detected with Symbios NVRAM
ncr53c875-0: rev 0x4 on pci bus 0 device 11 function 0 irq 5
ncr53c875-0: Symbios format NVRAM, ID 7, Fast-20, Parity Checking
scsi0 : ncr53c8xx-3.4.1-20000726
scsi : 1 host.
scsi1 : SCSI host adapter emulation for IDE ATAPI devices
scsi : 2 hosts.
  Vendor:           Model: DVD/CDRW RW9120   Rev: 1.30
  Type:   CD-ROM                             ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi1, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 32x/32x writer cd/rw xa/form2 cdda tray
VFS: Disk change detected on device sr(11,0)
scsiデバイスとして、sr0に認識されていることが分かります。
modprobeコマンドを実行するにはルートになる必要があり、これでは一般ユーザーが CDを焼くときなどは不便です。そこで、起動時にmodprobeさせてしまいます。ルートになって 以下のファイルの一番最後に追加します。

/etc/rc.d/rc.local
/sbin/modprobe ide-scsi

その他の変更

後は、ATAPIドライブをSCSIドライブへエミュレーションしたことによる変更をします。Vine2.5、2.6では自動的に 設定されますので、この作業は必要ありません。
/dev/cdromのシンボリックリンクを変更します。既存のリンクを削除し、新しいリンクを作成します。 sr0と認識されたscsiデバイスのデバイス名は/dev/scd0となります。
# rm /dev/cdrom
# ln -s /dev/scd0 /dev/cdrom
以上で変更は終わりです。cdromをマウント、アンマウントするには以下のようにします。
$ mount /mnt/cdrom
$ umount /mnt/cdrom
マウント、アンマウントの詳細は、ドライブをマウントするをご覧ください。


[HOME]
since 2001.4.22