ここに書いていることは、Debian GNU/Linux 3.0でATAPI接続のCD-Rを使って CD-Rを焼く設定をした際の覚え書きです。
ATAPI CD-RでCDを焼くにはカーネルのSCSIエミュレーション機能を利用します。
カーネルがSCSIエミュレーションをサポートして構築されているか確認しましょ う。
% grep -i CONFIG_SCSI= /boot/config-xxxx % grep -i CONFIG_CHR_DEV_SG= /boot/config-xxxx # xxxxはカーネルのバージョン
で確認できます。どちらも yかmになっ ている事を確認してください。nになって いたら"SCSI support (CONFIG_SCSI)"と"SCSI generic support (CONFIG_CHR_DEV_SG)"をyか mにしてカーネルを再構築してください。
ATAPI CD-RをSCSIエミュレーションで利用するには、起動時 にカーネルにそのことを教えてあげなければなりません。ブー トローダにGRUBを使っている場合は/boot/grub/menu.lstの kernelの行の最後に,もし2.4系カーネルならhdc=ide-scsi を,2.6系カーネルならhdc=scsiを追加してください。(CD-R が/dev/hdcとして認識されているとする。)
もし、SCSI エミュレーションをモジュール(m)としてカーネルを作っていたら、 /etc/modulesにide-scsiとsgの二行を付け加えてください。
以上で設定は終了です。再起動しましょう。
ATAPI CD-RがきちんとSCSIエミュレーションで動作している確認してください。
% cat /proc/devices | grep -i 21
これで21 sgと出れば成功です。後は xcdroast, gcdmaster, gtoaster, mkisofs, cdrecord等を使って CD-Rを焼きましょう。
まず、SCSI エミュレーション で CD-R を動かしているので Linux は SCSI デバイスとして CD-R を認識しています。ですので、CD-R のデバイ スファイルは /dev/hdc等ではなく、/dev/sr0等となります。しかし、 /dev/cdromというシンボリックリンクが/dev/hdcを指したままですと、ア プリケーションの方は/dev/hdcをCD-R としてアクセスしにいきます。で すので
% sudo ln -s /dev/sr0 /dev/cdrom
等として修正しましょう。
これも前述同様 SCSI として動作しているためです。解決策は、/dev/sg* への読み込み、書き込みのアクセス権を与える事です。
% sudo adduser ユーザ名 グループ名
でユーザをグループに加えて下さい。