LinuxでCDを焼くには、cdrecordコマンドを使うのが普通である。このコマンドでは、CDライターのデバイスは、
のように指定する。ただし、これはSCSIの指定である。
ところが、つい最近になって、Linux kernel2.6以降では"dev=/dev/hdc"のようにスペシャルファイル名をそのまま使えるということを知った!
Linux2.4までは、ATAPIのCDライターはSCSIエミュレーションを行うide-scsiモジュールを使って、SCSIデバイスとして使うのが常識であった。そんな中で、
Kernel TrafficにStatus Of IDE-SCSI Maintainanceという記事を見つけた。その後しばらくして、japan.linux.comにLinux 2.6とide-scsiという日本語の記事が出た。この時点では私はATAPIのDVDライターを持っており、kernel2.6に以降するとDVDライターが使えなくなるのではないかとの危惧を抱かせた。
ところが、よく読むと、CDを焼くのにide-scsiはもはやあまり必要ないという。ではどうすればいいのかを調べてみると、
あるいは、
のように指定する方法があることがわかった。そこで、以降ide-scsiモジュールの使用をやめて、この方法でDVDを焼くことにしたのである。
ide-scsiを使わずにCD/DVDを焼くのは、kernel2.4系でもできるのだが、DMAが無効になっているので非常に遅い。CD-RWはSCSIのを持っていたので、ATAPIのドライブはDVDを焼くのにしか使っていなかったのだが、等速よりも遅い速度でしか焼けない。だが、kernel2.6に移行すると速度はドライブの性能いっぱい出るようになった。
つまり、結論としては、LinuxでCD/DVDを焼くにはkernel2,4ではide-scsiを使ってSCSIデバイスとして扱い、kernel-2.6ではide-scsiを使わないというのが正しい方法ということになる。
しかし、dev=の引数にスペシャルファイルそのものを指定できるとは知らなかった……というのが今回の顛末である。
それにしても、Linuxと、cdrtoolsの作者のJoerg Schillingの意見の相違が気になる。どちらが正しいのだろうか……。