k3cの日記: cdrecordの将来
いつもCD-Rへの書き込みにcdrecordを使っているわけだが、ちょっと気になる記事を見かけたのでメモしておく。
Linux 2.6とide-scsiモジュール (japan.linux.com)
ide-scsiにはこれまでずっと不具合があった。使うべきではないし、そもそも存在価値が「まったく」ない。ただ、cdrecordのインターフェイスが不完全だったから、cdrecordは昔からSCSIデバイスをいじろうとしてきただけだ。要するに、cdrecordにまったくふさわしくない愚かなエミュレーションレイヤーにすぎない。
…で、肝心のcdrecordに加えられた変更というのが、バージョン2.00のアナウンスにある:
- Small change for Linux device initialization by request of Linus Torvalds
The purpose of this change is to support a new SCSI transport interface
for ATAPI in Linux that came up with the latest developer Linux kernels
(e.g. Linux-2.5.43). This interface allows to send SCSI commands directly
to ATAPI drives without using ide-scsi and sg, but it has several pitfalls.While Linux allows to use DMA when using ide-scsi and sg if the
sector size is 2048 and the transfer buffer starts page aligned, the new
direct interface never uses DMA (acording to Linus Torvalds). So if you
write audio CDs or data CDs in RAW mode, there is no difference. If you
write data CDs in TAO or DAO mode, using ide-scsi and sg allows much
higher write speed. Note that this may change in future....Notes for use:
- You need to specify something like dev=/dev/hdc
Note that this is unsupported by libscg.- As long as there is no safe way for libscg to find out early that
this new interface is used, libscg may hang a bit on open.
This is caused by the fact that libscg is forced to read
from the open filedscriptor to clean up old Linux sg driver
interfaces. This was never a problem with /dev/sg*, but
when doing the same thing, this causes libscg to read content
from /dev/hd*- There is (currently) no way for cdrecord to scan for ATAPI
devices when using this interface.As long as this is true, you may want to prefer to use
cdrecord dev=ATAPI: -scanbus
and
cdrecord dev=ATAPI:0,0 ...
instead.
というくだり。よーするに、dev=0,0,0とかしていたのが、dev=/dev/hdcとかすればよくなって、ide-scsiモジュールはロード不要になる、ということらしい。でもTAOとかDAOで書き込むと従来より時間がかかってしまう。ふーむ。
cdrecordの将来 More ログイン