如何在 FreeBSD 上使用 CD 刻錄機?
2024-07-26 00:29:22
供稿:網友
目前只在 Phillips CDD 521/522/2000/2600、HP 4020i 及相容機型上測試過,筆者使用 CD522 還沒有燒壞過任何一片,還可以邊跑 X Window 上網路、看 Netscape。(附注∶筆者使用 FreeBSD 2.2-CURRENT,沒試過 2.1.5R)
你可以看看 /usr/share/example/worm/ 目錄下的說明,內有制造 ISO Image 的方法,以及燒 CD 的 script。
步驟∶
1. add "device worm0" into kernel config file
2. install mkisofs and team from freebsd packages
3. use "makecdfs.sh" to make an ISO image from a directory source, or "dd if=/dev/rcd0c of=/tmp/cd.iso bs=2048" if making image from CDROM
4. use "burncd.sh" shell script to burn CD ISO Image
*新的燒錄軟體*
這個新的 cdrecord 程式號稱支援大多數的 CDR,有興趣的可以試試看。
ftp://freebsd.csie.nctu.edu.tw/pub/jdli/collect/cd-recorder/
---------------------
SUPPORT DRIVE
=============
HP∶HP4020, HP6020
PHILIPS∶CDD522, CDD2000, CDD2600
PLASMON∶RF4100
FreeBSD Version 2.2 or newer
CONFIG DEVICE
=============
1. kernel config
在 kernel config 里加上下面幾行∶
controller ncr0 ; depend on which SCSI card you use
controller scbus0 ; MUST HAVE
device worm0 at scbus? ; MUST HAVE
後重新 compile kernel。
2. device node
到 /dev 下執行 ./MAKEDEV worm0
USAGE
=====
1. 燒 raw image
/usr/share/examples/worm/burncd.sh
這是個用來將 raw image 燒入 CD-R 里的 shell script。使用前需先安裝team 這個 package,如果用的是 Philips CDD2000 or CDD2600,還要修改 35 行,把 HP 4020i 改為 PHILIPS CDD2000。然後直接用∶
burncd.sh [raw image file name]
來燒錄。raw image 的來源可以是用 mkisofs 做出來的,也可以是用 Easy CDPRo、WinOnCD 等軟體制作出來之 image。
2. 制作 ISO9660 / Rock Ridge 之 raw image
/usr/share/examples/worm/makecdfs.sh
使用這個 shell script 來將一個目錄結構轉成 ISO9660 或 Rock Ridge 格式的 raw image。使用前需安裝 mkisofs 這個 package。使用方法為∶
makecdfs.sh [-b] {cd-title} {input-tree} {output-file} {ID}
-b∶加上這個參數可以做出可開機光碟。內定的 boot image 是 floppies/boot.flp (相對於 input-tree) boot.flp 可以直接拿 FreeBSD 的安裝片來用。
cd-title∶這片 CD 的 volume name。
input-tree∶要制作 raw image 的目錄頂點。
output-file∶做出來的 raw image 之檔名。
ID∶這片 CD 是誰做的。
這樣子做出來的光碟片在 DOS 上面還是 8.3 檔名檔式,不能有長檔名。 使用 Rock Ridge 格式,在 UNIX 下面有長檔名,但不支援中文長檔名。 如果不喜歡這樣做出來的光碟每個目錄都有個 TRANS.TBL,把 script 里 mkisofs 的 -T 參數去掉。如果不需要 Rock Ridge 格式,把 -R 參數去掉。
3. On the Fly
by Kaede.bbs@sob.m7.ntu.edu.tw∶
#!/bin/sh
if [ $# -lt 3 ]; then
echo "usage: $0 input-tree /"cd-title/" /"copyright/" [dummy]"
elif [ ! -d $1 ]; then
echo "$0: $1 is not a directory tree."
elif [ "`id -u`" != "0" ]; then
echo "Sorry, this must be done as root."
else
tree=$1; shift
title="$1"; shift
copyright="$1"; shift
echo -n "Place CD in the worm drive now and press return: "
read junk
scsi -f /dev/rworm0.ctl -c "0 0 0 0 0 0" >/dev/null 2>&1
wormcontrol select HP 4020i
wormcontrol prepdisk double $*
wormcontrol track data
# 若需使用 Rock Ridge 再加上 -R 參數
mkisofs -a -d -N -D -V "$title" -P "$copyright" $tree /
| rtprio 5 team -v 1m 5 | rtprio 5 dd of=/dev/rworm0 obs=20k
wormcontrol fixate 1 onp
4. CD Copy
by Dinosaur.bbs@bbs.ee.nthu.edu.tw
#!/bin/sh
if [ "`id -u`" != "0" ]; then
echo "Sorry, this must be done as root."
else
echo -n "Place CD in the worm drive now and press return: "
read junk
scsi -f /dev/rworm0.ctl -c "0 0 0 0 0 0" >/dev/null 2>&1
wormcontrol select PHILIPS CDD2000
wormcontrol prepdisk double $*
wormcontrol track data
rtprio 5 dd if=/dev/wcd0c bs=2048 | rtprio 5 team -v 1m 5 /
| rtprio 5 dd of=/dev/rworm0 obs=20k
wormcontrol fixate 1
fi
經過測試,在 Panasonic CR-584(IDE) 上面完全成功,沒出過飛盤。但是 SONY CDU-415(SCSI) 上面只成功過一片,剩下四片全部失事。不知道為什么,完成推翻 SCSI CD 比較適合 CD Copy 的說法。這種 CD Copy 只能拷貝 mode 1 的 CD-ROM,不過不管 CD9660、Joliet、Rock Ridge 格式均可。
Reported by Enoch.bbs@bbs.math.nthu.edu.tw∶
另外提一下 SCSI cdrom on-the-fly cd-copy
我用 12TS 對烤過 Officx97, Diablx..etc 沒出過什么問題,烤出來的片子使用也很正常,但在對烤結束時有時候會出現 dd: invalid argument 還沒研究是什么原因找個時間再來轉 image 做 md5 ,確認 cd-copy 是否正常再來報告。
5. cd-write
ftp://freebsd.csie.nctu.edu.tw/pub/FreeBSD-current/ports/sysutils/cd-write
圖形介面的 CD 燒錄軟體。除了可以燒資料光碟外,也可以拿來抓 CD 音軌、燒錄 Audio CD。在 FreeBSD 下面似乎不支援 Disk At Once 燒錄。目前有 ports 可以直接安裝。
6. cd-record
ftp://freebsd.csie.nctu.edu.tw/pub/jdli/collect/cd-recorder/cdrecord/ /
cdrecord-1.5a5.tar.gz
支援不少 CD-R,可燒錄 multi-seesion、Audio CD,支援 mode 1、mode 2 CD-ROM XA mode 1、CD-ROM XA mode 2、CDI 等格式 (看來好像可以燒 Video-CD?) 功能看起來很強,不過在 FreeBSD 下面還沒看到比較多的使用心得。在 FreeBSD 下面使用需要先做∶
cd /dev; ln -s rworm0.ctl scgx
的動作 (Report by wte.bbs@bbs.ee.ncu.edu.tw)
Reported by joe@nlhyper.et.ntust.edu.tw∶
Freebsd2.2.5
CDR: YAMAHA 400tx
燒錄軟體: cdrecord1.5
(抓自freebsd.csie.nctu.edu.tw /pub/packages-stable/All/cdrecord-1.5.tgz)
機器硬體配備 p90, 48M ram, IDE光碟, AHA2940U, 兩個SCSI HD
簡單說明:
1. cdrecord可以支援多種CDR(包括YAMAHA CDR這是為何要用這個軟體的原因. :)
2. 不必用到 worm
3. kernel部份只要有SCSI光碟機相關設定就可以.( 如 device cd0 ) 因為我們本來的光碟機是IDE的,所以加上CDR後修改kernel設定加上 scsi cdrom 的 device, 然後重做kernel.
4. pkg_add 之後到 /dev/ 下
ln -s cd0c scgx (cd0c: 請依自己的連接做修正)
(此部份與freebsd.csie.nctu.edu.tw內文件有點出入, 該文件說明是 ln -s rworm0.ctl scgx)
5. cdrecord -scanbus 可以測試看看CDR是否抓到cdrecord 列出相關參數
6. 基本操作
cdrecord -v -dummy speed=4 dev=6,0 cdrom1.iso
-dummy表示測試..除了lazer不起動外, 其它動作會跑一次。speed=2 or speed=4 (就是兩倍或四倍速寫入)
dev=6,0 (請看 CDR 是設成"幾號" ) 建議用dummy先測一下再燒..
ps.1 image file 用 mkisofs 做, mkisofs 有 packages 可以用。
ps.2 個人用四倍速燒woju的freebsd2.2.5 v7完全沒問題.
7. tosha
ftp://freebsd.csie.nctu.edu.tw/pub/FreeBSD-current/ports/audio/tosha
FreeBSD 下面用來抓音軌的程式,目前只適用於 SCSI CD-ROM 上面。