Next Previous Contents

2. 設定你的 Linux 系統來燒錄光碟

如果你成功設定你的硬體和你 Linux 系統的其餘部份, 命令 cdrecord - scanbus 會給你看到一個可寫入裝置的列表。 這個 章節的目的是要在設定你的 Linux 系統時導引你,因此最後你會看到 如下的訊息:

shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 J顤g Schilling
scsibus0:
          0) 'Quantum ' 'XP34300         ' 'F76D' Disk
          1) 'SEAGATE ' 'ST11200N        ' '8334' Disk
          2) *
          3) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
          4) 'WANGTEK ' '5150ES SCSI-36  ' 'ESB6' Removable Tape
          5) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
          6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
          7) *
scsibus1:
        100) 'Quantum ' 'XP31070W        ' 'L912' Disk
        101) *
        102) *
        103) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
        104) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
        105) *
        106) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
        107) *
Listing 1: Detecting devices on your SCSI-bus

這個例子是由 J顤g Schilling 偍供的,你現在會看到一共有四個可燒 錄器。雖然你現在是不能分別那一個光碟機是否為一個可寫入光碟 機,不過你可以在產品的識別號中看出它是一個唯讀、可寫或是可 重寫光碟機。

2.1 設定 Linux 核心

一個 Linux 核心可以包含很多驅動程式和功能。你可以將那些驅動程式 編譯進核心影像中或者你可以將它們編譯成模組,然後待有需要的時候 才將它們載入核心中。而建議的方法是將必不可少的驅動程式編譯進核 心。舉例,如果你有一個 IDE 的 Harddisk,那你一定將IDE Harddisk 的驅動程式編譯進核心中 ( 不要編譯成模組 )。

現存有三類的光碟燒錄器:SCSI,IDE/ATAPI 和外置平行埠。表格四展示出 怎樣設定 Linux 的核心來支援這幾種光碟燒錄器。表格的第一列是設定選單 ,你可以在這樣找到有關的設定。表格的第二列是功能說明。表格的第三列是 模組名稱。

Y 代表是和意味著你應該把這個怪獸放入核心。M 代表模組和意味著你應該把它 編譯成模組。 Y/M 代表你可以在兩者之間任擇其一。空的設定就千萬不要改動, 不改動它可以令你能成功編譯核心的機會增加。

要檢查那些驅動程式在你的核心中 ( 不論是靜態或動態載入的 ),你可以看這個 檔案 /dev/devices 。要檢查那些模組已載入,你可以用 'lsmod'。要檢查有那些 模 可以 載入的話,鍵入'modprobe -l'。如果你需要的模組不在你的 系統的話,你就要重新編譯核心及安裝它。你可以參考 Kernel-HOWTO 來幫助你重 新編譯核心。有關怎樣處理核心模組的最新資訊,可以參考 Module-HOWTO。

Sect.  Description                 Module   SCSI  IDE   PP
------------------------------------------------------------
BLOCK  Enhanced IDE/MFM/RLL...                     Y      
BLOCK  IDE/ATAPI CDROM             ide-cd        M/N/Y     
BLOCK  SCSI hostadaptor emulation  ide-scsi        M      
BLOCK  Loopback device             loop       M    M     M

PARIDE Parallel port IDE device    paride               Y/M
PARIDE Parallel port ATAPI CD-ROMs                       M
PARIDE Parallel port generic ATAPI                       M
PARIDE (select a low-level driver)                       Y

SCSI   SCSI support                scsi_mod  Y/M  Y/M    
SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M     
SCSI     Enable vendor-specific               Y    Y      
SCSI   SCSI generic support        sg        Y/M  Y/M     
SCSI   (select a low-level driver)            Y

FS     ISO 9660 CDROM filesystem   iso9660    Y    Y     Y
FS     Microsoft Joliet cdrom...   joliet     M    M     M
Table 4:

如困你成功建立或找到所需的模組之後,你可將它們的名稱加入 /etc/modules或 由自動工具來載入它們 (kmod,kerneld)。如果你不肯定的話,請參考 Linux 套件 中的說明檔。

"SCSI hostadaptor emulation" 這個功能在之前的版本是叫做 "SCSI emulation" ( 大概是 2.0.36 )。如困你打開這個選項,你就要將IDE/ATAPI 光碟的驅動程式 編譯成模組。要不然你就要將它取消和使用 SCSI 的光碟驅動程式。因為 2.2 系列 的核心已不能同時使用 IDE 和 SCSI 的驅動程式在同一個硬體上 ( 如困你是使用 2.0.36 核心的話,請看以下的說明 )。

Loopback device 是一個選擇性的功能,它能幫你在燒錄影像之前測試一下你的 影像檔。

如果你要讀取光碟,那你就需要 ISO 9660 檔案系統的支援。這個驅動程式已自 動包含RockRidge 延伸。如果你需要MS Joliet 光碟延伸,你便需要編譯它為模 組然後載入它。

在任何的情況下你都需要一個低階的驅動程式。低階是指那個驅動程式會直接與硬 體溝通。至於 SCSI 和平行埠,有很多低階的驅動程式可用,請看以下的說明。

給 2.2 系統的特別提示

在核心版本 2.2.1 中,不要同時打開CONFIG_SCSI_MULTI_LUN 和ide-scsi support 這兩個選項,因為 ide-scsi 有蟲而至不能這樣做。無論如何,都建議大家都把核心 升級為 2.2.5 。

一些用戶報告說已編譯好的 cdrecord 和 2.2 核心有衝突。這是 Linux 核心的 問題。解決的方法如下:

給 2.0 系列的特別提示

在核心 2.0.31 以前是有很多蟲引至不能讀取光碟中最後一個檔案。請升級到核 心 2.0.36。

對於 2.0.36 或以上的版本,你可以選擇那種驅動程式(IDE or SCSI) 在那個 ATAPI-device上使用。更精確地說,你可以加入"SCSI emulation" 這個功能到 你的核心中和你可以在核心命令列中給特定的 device 啟動模擬 ( 在系統啟動 前或啟動中 )。舉例,如果你的光碟燒錄器有這個 devicefile /dev/hdb,這樣 加入以下的句子 hdb=ide-scsi

image=/boot/zImage-2.0.36
  label=Linux
  read-only
  append="hdb=ide-scsi"
Listing 2: Example configuration for lilo (/etc/lilo.conf)

linux "Linux 2.0.36" {
        image=/boot/zImage-2.0.36
        cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Listing 3: Example configuration for chos (/etc/chos.conf)

2.2 硬體和 devicefiles

在你安裝所有必需的驅動程式以後, 重新這個新核心。它應該有你在往後部份所需 要的所有功能。

[ 如果你是 devfs 的使用者,你就不需要理會以下手動設定 device files 的步 驟,因為 devfs 會為你辦理一切的事情。]

進入 /dev 目錄然後檢查一下你有沒有 loopback devices。 雖然這不是太大問題如果你沒有這些 devices,但是有了它們就會方便一些 (請看 3.5 )‧ 如果你有它們的話你會看到 ls 指令顯示loop0-loop7

shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
Listing: devicefiles for loopback

如果你沒有這些 device-files 的話,你可以用/dev/MAKEDEV-script 來建立它們:

shell> cd /dev/
shell> modprobe loop
shell> ./MAKEDEV loop
Listing: commands to create loopback devices

如果你有loop 模組編譯進核心,最後的指令你才可以成功執行。你在這 裏看到有關怎樣處理 loop-devicefiles 的方法你同樣可以應用在其他 devicefiles 中(sg*, pg*, hd*, ...) 不過在以後的章節就不會明確說明。

IDE/ATAPI 光碟燒錄器

ATAPI 代表 "SCSI 的命令在 IDE-bus 上執行"。換句話說,你的IDE/ATAPI 光碟燒錄器會說 SCSI 協定(不過帶有一些限制),那即是它會模擬成好像一個 SCSI光碟燒錄器一樣。

在 Linux 底下只要你運用"SCSI (hostadaptor) emulation" 這個核心功能那你 就可以令你的 IDE 光碟燒錄器出現如同 SCSI-devices 那樣。如果你使 ide-scsi 核心模組活動起來的話,你就會好像擁有一個 SCSI 光碟燒錄器那樣。

SCSI 光碟燒錄器

請確定你的光碟燒錄器能夠被你電腦的基本輸入/輸出系統支援。事情就變得冇意思 如果你擁有硬件而電腦又不能支援它。

如困你想將你的 SCSI-drive 連接至你電腦的平行埠上的話,你需要特別的纜線 和特別的核心驅動程式。看這個網址 http://www.torque.net/parport/parscsi.html 以取得更多的資料。

一般 SCSI devices

/dev/sd* 和 /dev/sr* 這些 devicefiles 是用來存取 SCSI 硬碟和 SCSI 光碟 驅動器不過 SCSI 光碟驅動器的存取只限於 block-oriented 資料傳送。這使 它們那麼快速和適合於資料存儲。不過驅動光碟燒錄器的雷射是一件更加複雜的 事情,而不是block-oriented 資料傳送那麼簡單。要使 sd* 和 sr* devices 保 持乾淨和快速,一種新的裝置 ─ generic SCSI-devices就衍生出來。 因為所有對 SCSI 硬體的操作都可以透過 generic devices 來達成而它們又沒有 特定的目的所以它們就叫做 generic

如果你要找這些 device,你可以到 /dev 的目錄:

shell> cd /dev
shell> ls sg*
sg0  sg1  sg2  sg3  sg4  sg5  sg6  sg7

如果你沒有這些 device-files ,你可以在用下列的 script 來建立它們the /dev/MAKEDEV-script:

shell> cd /dev/
shell> ./MAKEDEV sg

平行埠的光碟燒錄器

真對不起,我沒有這方面的解決方案。 請看 http://www.torque.net/parport/paride.html 或你本區的檔案/usr/src/linux/Documentation/paride.txt.

2.3 取得軟體來燒錄光碟

你可以在這裏找到一系列燒錄光碟的軟件 http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html.The CD building project for UNIX

命令列工具

你需要以下程式包之中任擇其一來產生光碟原型:

ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)

ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)

視你的光碟燒錄器型號而定,你需要以下其中之一個程式來將光碟原型寫入:

ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)

千萬不要相信mkisofs 舊的說明檔,它說你需要 cdwrite 版本 1.5 ,你只需要 cdrecord 就好了。注意:cdrecord 所包括的 mkiosfs 有一些附加的功能‧

Graphical user interfaces (optional)

Front-ends 在 Linux 中真的只是 front-ends。即是你仍然需要安裝命令列工具, 不過你可以用一個較好的介面而已。

X-CD-Roast 是一個在 Linux 下容易燒錄光碟的程式集。它結合了 cdrecordmkisofs 在一個美麗的介面以中。

http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html

BurnIT 是一個 cdrecord, mksiofs and cdda2wav-0.95 的 JAVA front-end ,,這使它成為一個在 Unix 平台下完整的光碟燒錄包裝,你可以在這裏取得:

http://sunsite.auc.dk/BurnIT/


Next Previous Contents