?? cdrom-howto-4.html
字號(hào):
<P>
<BLOCKQUOTE><CODE>
<PRE>
% mknod /dev/scd0 b 11 0
% mknod /dev/scd1 b 11 1
</PRE>
</CODE></BLOCKQUOTE>
<P>(譯注: 在核心里叫做 /dev/sr0, /dev/sr1, 等, 但其實(shí)它們就是/dev/scdX)
<P>此驅(qū)動(dòng)程式本身不支援讀取數(shù)位音軌功能, 然而有些 SCSI CD-ROM 有這能力, 可用
cdda2wav 程式達(dá)成(它使用通用 SCSI 核心介面).
<P>
<H3>IDECD 驅(qū)動(dòng)程式</H3>
<P>
<P>
<PRE>
作者 : Scott Snyder (snyder@fnald0.fnal.gov)
支援多次燒錄碟片?: 是
支援多臺(tái)機(jī)器?: 是
可做成可載入模組?: 不可
可讀取數(shù)位音軌?: 可 (在硬體支援的機(jī)種上)
能自動(dòng)偵測(cè)?: 能
設(shè)備檔: /dev/hd{a,b,c,d}, 主編號(hào) 22
設(shè)定檔: cdrom.h
核心設(shè)定的問題: Include support for IDE/ATAPI CDROMs?
請(qǐng)另外閱讀: ide-cd
</PRE>
<P>這是 ATAPI CD-ROM 驅(qū)動(dòng)程式. 它支援下面的命令列格式:
<P>
<BLOCKQUOTE><CODE>
<PRE>
hdx=cyls,heads,sects,wpcom,irq
或
hdx=cdrom
</PRE>
</CODE></BLOCKQUOTE>
<P>這里的 hdx 可以是 {hda,hdb,hdc,hdd}, 或只有 hd, 表示下一臺(tái)機(jī)器. 只有前三個(gè)參數(shù)
是必要的(cyls,heads,sects), 例如說, <CODE>hdc=1050,32,64 hdd=cdrom</CODE>
<P>要讓 IDE 驅(qū)動(dòng)程式認(rèn)識(shí)你的 CD-ROM 可能有點(diǎn)麻煩, 特別是你有超過二臺(tái)設(shè)備或超過一
個(gè) IDE 接頭. 通常這需要由 LILO 送出正確的命令列參數(shù).
<A HREF="/usr/src/linux/Documentation/ide-cd">/usr/src/linux/Documentation/ide-cd</A>這檔案有詳細(xì)介紹, 請(qǐng)仔細(xì)看.
<P>最近的核心對(duì)多臺(tái) IDE 設(shè)備支援的更好了. 所以如果在舊核心上有問題, 升級(jí)也許能解
決.
<P>有些 IDE 介面硬體有問題, 但核心可以處理. 這種情形你要送參數(shù)給核心以啟動(dòng)此功能.
細(xì)節(jié)請(qǐng)見核心內(nèi)文件.
<P>
<H2><A NAME="ss4.4">4.4 起動(dòng) Linux 核心</A>
</H2>
<P>
<P>現(xiàn)在你可以用新核心啟動(dòng)了. 請(qǐng)注意看一下和以下的很像的訊息 ,它指出 CD-ROM 驅(qū)動(dòng)程
式有沒有發(fā)現(xiàn)你的 CD-ROM( 訊息會(huì)因你用的 CD-ROM 種類不同而有變化)
<P>
<BLOCKQUOTE><CODE>
<PRE>
hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive
</PRE>
</CODE></BLOCKQUOTE>
<P>如果訊息卷動(dòng)得太快了, 應(yīng)該也可以用 dmesg 或 tail /var/adm/messages 來查看.
<P>如果沒有找到該機(jī)器, 那就代表有問題出現(xiàn)了, 請(qǐng)看``問題與解決''一節(jié).
<P>
<H2><A NAME="ss4.5">4.5 掛上, 卸下, 及退出光碟片</A>
</H2>
<P>
<P>若想掛上 CD-ROM, 把光碟片放進(jìn)機(jī)器, 然後以 <CODE>root</CODE> 身份執(zhí)行
<CODE>mount</CODE> 命令.
(這里假設(shè)你已經(jīng)如我們所建議的, 做了符號(hào)連結(jié), 并且也有空的 /mnt/cdrom 目錄)
<P>
<BLOCKQUOTE><CODE>
<PRE>
% mount -t iso9660 -r /dev/cdrom /mnt/cdrom
</PRE>
</CODE></BLOCKQUOTE>
<P>現(xiàn)在你可以到 /mnt/cdrom 下去存取 CD 上的東西了.
<P>你也許還想用其它的參數(shù)掛載 CD-ROM. 欲知詳情, 見 man(8) 說明頁.
<P>你可以在 /etc/fstab 加進(jìn)一行, 使 Linux 開機(jī)時(shí)就自動(dòng)掛上 CD-ROM, 或給予一些掛載
時(shí)的參數(shù). 請(qǐng)看 fstab(5) 說明頁.
<P>注意, 若想要聽 CD 唱片, 那就不要掛上它.
<P>要卸下 CD-ROM, 以 root 身份執(zhí)行 umount 命令.
<P>
<BLOCKQUOTE><CODE>
<PRE>
% umount /mnt/cdrom
</PRE>
</CODE></BLOCKQUOTE>
<P>只有在沒人存取 CD-ROM 時(shí)(包括沒人目前目錄在 CD-ROM 時(shí)) 才可以卸下該片子. 卸下
後就可以退片了. 大多數(shù)機(jī)器都有退片鈕, 不過也有一個(gè)軟體退片程式
<A HREF="ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/eject-1.1.tar.gz">eject</A>
可以靠命令就退出片子.
<P>注意不要在碟片還在掛載中時(shí)退出片子( 這種狀況因 CD-ROM 種類不同而可能或不可能
發(fā)生.). 有些 CD-ROM 驅(qū)動(dòng)程式可以在卸下時(shí)自動(dòng)退片, 而掛上時(shí)自動(dòng)進(jìn)片. (你可以重
新編譯核心或用軟體命令關(guān)閉這功能)
<P>(譯注 : 有些光碟機(jī)掛上時(shí)會(huì)把面板鎖定, 就無法退片了, 當(dāng)然不會(huì)不小心按到退片鈕而
將片子退出)
<P>也有可能在放了 CD 唱片後, 無法掛上 CD-ROM 片子了. 這時(shí)你要用 CD 播放程式送出
``停 止'' 命令後再嘗試掛上. 這問題只在 sbpcd 驅(qū)動(dòng)程式出現(xiàn)過.
<P>Stephen Tweedie (
<A HREF="mailto:sct@dcs.ed.ac.uk">sct@dcs.ed.ac.uk</A>)
寫了一個(gè)叫 Supermount 的程式提供了包括 CD-ROM 的可移動(dòng)媒體的透明化掛載能力.
你可以在
<A HREF="ftp://sunsite.unc.edu/pub/linux/patches/diskdrives/">ftp://sunsite.unc.edu/pub/linux/patches/diskdrives/</A>找到.
<P>
<H2><A NAME="ss4.6">4.6 問題與解決</A>
</H2>
<P>
<P>如果你按照本 HOWTO 的指示去做卻還有問題, 有一些地方可以先確認(rèn)一下. 這里由簡(jiǎn)單
到復(fù)雜一條條列出來. 如果問題剛好出現(xiàn)在某步驟, 先解決這問題再進(jìn)行下一步.
<P>
<H3>第一步: 確定你用你自己編譯的核心啟動(dòng)系統(tǒng)</H3>
<P>
<P>你可以檢查核心中的時(shí)戳, 看看是不是有包含支援 CD-ROM 的版本. 你可以用 uname 這
個(gè)命令來檢查:
<P>
<BLOCKQUOTE><CODE>
<PRE>
% uname -a
Linux fizzbin 2.0.18 Fri Sep 6 10:10:54 EDT 1996 i586
</PRE>
</CODE></BLOCKQUOTE>
<P>或顯示 /proc/version 檔中的內(nèi)容:
<P>
<BLOCKQUOTE><CODE>
<PRE>
% cat /proc/version
Linux version 2.0.18 (root@fizzbin) (gcc version 2.7.2) Fri Sep 6 10:10:54 EDT 1996
</PRE>
</CODE></BLOCKQUOTE>
<P>如果這個(gè)時(shí)間戳記比你編譯還早, 那你就是在用舊核心了. 你真的重開機(jī)過嗎? 如果你
用 LILO, 是否忘記重裝一次(一般執(zhí)行/etc/lilo/install)? 用軟碟開機(jī)的話, 做了一片
新開機(jī)片, 并用它開機(jī)了嗎?
<P>
<H3>第二步: 確定需要的核心驅(qū)動(dòng)程式有被編譯進(jìn)去</H3>
<P>
<P>你可藉由觀察 /proc/devices 來看編譯進(jìn)了什麼驅(qū)動(dòng)程式:
<P>
<BLOCKQUOTE><CODE>
<PRE>
% cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyS
5 cua
7 vcs
Block devices:
3 ide0
22 ide1
</PRE>
</CODE></BLOCKQUOTE>
<P>首先看你的 CD-ROM 驅(qū)動(dòng)程式. CD-ROM 都是區(qū)塊設(shè)備. 在這里我們看到主編號(hào) 22 的
idecd 驅(qū)動(dòng)程式存在著.
<P>
<BLOCKQUOTE><CODE>
<PRE>
% cat /proc/filesystems
ext2
msdos
nodev proc
iso9660
</PRE>
</CODE></BLOCKQUOTE>
<P>你也可以藉由看 /proc/ioports 檔來看使用了那些 I/O port:
<P>
<BLOCKQUOTE><CODE>
<PRE>
howto % cat /proc/ioports
...
0230-0233 : sbpcd
...
</PRE>
</CODE></BLOCKQUOTE>
<P>如果有東西你記得有編譯但卻沒顯示, 那麼就是你設(shè)置核心時(shí)出了問題. 從再設(shè)置及重建
核心開始, 再重復(fù)安裝核心的步驟.
<P>
<H3>第三步: 起動(dòng)時(shí), 核心有偵測(cè)你的機(jī)器嗎?</H3>
<P>
<P>當(dāng)核心起動(dòng)時(shí), 確定你的 CD-ROM 被偵測(cè)到了. 應(yīng)該在開機(jī)訊息里可以看到. 如果訊息卷
動(dòng)太快, 看不到, 你可以用 dmesg 命令來叫回它:
<P>
<BLOCKQUOTE><CODE>
<PRE>
% dmesg
</PRE>
</CODE></BLOCKQUOTE>
<P>或 者
<P>
<BLOCKQUOTE><CODE>
<PRE>
% tail /var/adm/messages
</PRE>
</CODE></BLOCKQUOTE>
<P>如果開機(jī)沒找到, 那一定某處有問題. 確定它開電源了, 并且連線也都接對(duì)了. 如果你
的機(jī)器有位址的跳線(如 SCSI ID 或 562B 的 ID), 確定它設(shè)在正確位置上(例如, 若是
只有一臺(tái)則設(shè) "drive 0") ATAPI CD-ROM 若是該 IDE 排線上唯一一臺(tái), 則必須設(shè)
"single" 或 "master", 不要設(shè) "slave". 如果在 DOS 下很正常, 那你就可以相信硬體
是正常的了.
<P>有些驅(qū)動(dòng)程式用自動(dòng)偵測(cè), 有些不用, 而且自動(dòng)偵測(cè)也不是完全可信的. 使用你的驅(qū)動(dòng)
程式提供的核心命令列選項(xiàng). 如果你不是很確定 I/O 位址或其它參數(shù)的話, 你可能要試
好幾遍. LILO 可以被設(shè)成允許你起動(dòng)時(shí)手動(dòng)輸入?yún)?shù).
<P>另一個(gè)可能就是你用錯(cuò)驅(qū)動(dòng)程式了. 有些文件將專屬介面寫成 IDE, 使人們誤以為它是
ATAPI 的機(jī)種.
<P>還有一個(gè)可能是你的機(jī)器(或介面卡)是那種需要 DOS 驅(qū)動(dòng)程式來驅(qū)動(dòng)它的所謂 ``相
容型''. 這樣的話, 你要先用 DOS 開機(jī), 載入這個(gè)驅(qū)動(dòng)程式, 再按
Control-Alt-Del 重起動(dòng) Linux.
<P>如果本文件中沒列出你的機(jī)器, 那可能在 Linux 下還沒有驅(qū)動(dòng)程式. 你可以看一下文後
的參考資料表, 試著求一點(diǎn)幫助.
<P>
<H3>第四步: 你 能 從 機(jī) 器 上 讀 出 資 料 嗎?</H3>
<P>
<P>試著從 CD-ROM 讀資料. 打入以下命令後, 應(yīng)該可以看到 CD-ROM 的燈亮起來(如果有燈
的話), 而且也不會(huì)回報(bào)錯(cuò)誤. 照你的驅(qū)動(dòng)程式的設(shè)備檔, 并確定放了一片 CD-ROM 片子;
按下 Control-C 離開.
<P>
<BLOCKQUOTE><CODE>
<PRE>
dd if=/dev/cdrom of=/dev/null bs=2048
^C
124+0 records in
124+0 records out
</PRE>
</CODE></BLOCKQUOTE>
<P>如果成功, 那核心就能成功的和機(jī)器通訊, 你可以跳到下一步.
<P>如果不能的話, 問題可能出在設(shè)備檔. 確定在 /dev 下的設(shè)備檔的主編號(hào)及次編號(hào)如前面
寫的一樣. 也檢查一下它是否允許讀取及寫入權(quán).
<P>也有一點(diǎn)點(diǎn)可能是硬體問題. 可能的話, 在 DOS 下試試看, 確認(rèn)是不是這狀況.
<P>
<H3>第五步: 你 能 掛 上 片 子 嗎?</H3>
<P>
<P>如果你能讀取但不能掛上, 首先確定一下核心有沒有支援 ISO-9660 檔案系統(tǒng). 如前所
述, 看 /proc/filesystems 檔.
<P>注意一下, 請(qǐng)?jiān)趻焐蠒r(shí)用 ``-t iso9660'' 及 ``-r''
選項(xiàng). 還有在 CD-ROM 中放的是資料碟片, 不是唱片. 通常要以 root 身份執(zhí)行掛上命令.
<P>確定掛載點(diǎn)存在, 且是個(gè)空目錄.
<P>如果你想開機(jī)時(shí)自動(dòng)掛載, 確定在 /etc/fstab 中有正確的一行.
<P>如果你有跑 syslog, 那可能你看不見有些核心發(fā)出的訊息. 試試 dmesg 命令:
<P>
<BLOCKQUOTE><CODE>
<PRE>
% dmesg
SBPCD: sbpcd_open: no disk in drive
</PRE>
</CODE></BLOCKQUOTE>
<P>錯(cuò)誤也可能記錄在 /var/adm 目錄下的檔案中, 全看你的系統(tǒng)怎麼設(shè)的.
<P>
<H3>消除聽音樂時(shí)的問題</H3>
<P>
<P>如果你的機(jī)器讀 CD-ROM 時(shí)沒問題, 但聽唱片就有問題, 這里提供些解決之道.
<P>你需要些可放唱片的軟體. 有些程式可能和你的機(jī)器不相容. 試試其它的或重新編譯它.
一個(gè)找軟體的好地方在
<A HREF="ftp://sunsite.unc.edu/pub/linux/apps/sound/cds/">ftp://sunsite.unc.edu/pub/linux/apps/sound/cds/</A><P>有些 CD-ROM 不支援放唱片. 檢查 README 檔或原始碼看看是不是這情形.
<P>檢查一下聲音是不是會(huì)從耳機(jī)孔出來. 如果可以, 那八成和你的音效卡有關(guān). 使用混音程
式設(shè)定輸入頻道及音量. 確定你從 CD-ROM 接了條音源線到音效卡上. 也確認(rèn)一下核心的
音效卡驅(qū)動(dòng)程式存在及可用(請(qǐng)看
<A HREF="http://sunsite.unc.edu/mdw/HOWTO/Sound-HOWTO.html">Sound HOWTO</A>).
<P>
<H3>要是一切都沒用呢?</H3>
<P>
<P>如果你還有問題, 這里有一些最後的建議, 你可以試試:
<P>
<UL>
<LI>小心地重讀這份 HOWTO 文件</LI>
<LI>讀文後列出的參考文件, 特別是相關(guān)的核心原始碼的 README 檔.</LI>
<LI>在 comp.os.linux 或其它 USENET 新聞組貼帖子, 問問題.</LI>
<LI>送一個(gè)問題到 Linux 通信論壇</LI>
<LI>用最新版的 Linux 核心</LI>
<LI>向店家求救</LI>
<LI>找你的 CD-ROM 廠商</LI>
<LI>寄封信給相關(guān)驅(qū)動(dòng)程式的作者</LI>
<LI>寄信給我(作者)</LI>
<LI>叫出 emacs, 打入``ESC-x'',``doctor'' (:-)</LI>
</UL>
<P>
<HR>
<A HREF="CDROM-HOWTO-5.html">Next</A>
<A HREF="CDROM-HOWTO-3.html">Previous</A>
<A HREF="CDROM-HOWTO.html#toc4">Contents</A>
</BODY>
</HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -