Next Previous Contents

4. 安装

在 Linux 下安装 CD-ROM 包含了以下步骤:

  1. 安装硬体
  2. 设置及重建 Linux 核心
  3. 建立设备档及设定启动参数
  4. 重新启动 Linux 核心
  5. 挂上媒体(片子)

下几节将会详细列出该有的步骤。

4.1 安 装 硬 体

按照厂商的说明书指示去安装硬体,或请厂商帮你装。 详细情形会因你使用的介面及内接或外接而有所不同。 对 Linux 来说, 并没有特别的安装要求。 您也许要设定机器或介面卡上的跳线(jumper)以使之正常工作; 有些核心驱动程式有 README 档教您如何做。

就如同档案ide-cd中所描述的,ATAPI CD-ROM 在做排线上唯一的一台机器时, 应调成 'single' 或 'master',不要调 'slave'。 (虽然最新的核心已经不那麽要求如此做了。)

4.2 设定及建立核心

当开始从 CD-ROM 安装 Linux 时您应该早就有一片 boot 或者 boot兼root 磁片。 可能的话,您可以选有支援您的 CD-ROM 的 boot 磁片。 如果找不到包含您需要的 CD-ROM 驱动程式 的开机片,您可以:

  1. 从光碟直接开机(如果您的机器和 Linux CD 支援的话)
  2. 从网路安装
  3. 启动DOS,将 Linux 档案复制到您的硬碟上
  4. 启动DOS,一片一片地制作开机安装片
  5. 找个可以帮您做支援您 CD-ROM 的启动磁片的人

Linux Installation HOWTO (中文版翻译中) 中对安装 Linux 有更详细的步骤。 如果您是买Linux CD-ROM,经常也会有一些安装指示 (在 CD 盒的小封面底,或在 CD 的档案里)。

Linux 刚安装好时,多数人基於以下理由,会重新编译核心:

有关建立核心的详情请见 Linux Kernel HOWTO (中文版在 http://www.linux.org.tw/CLDP/Kernel-HOWTO.html) 以下我只提到和 CD-ROM 有关的部份。

很明显的,您在 make config 时,需要加入对您的 CD-ROM 的支援。

如果您有 ATAPI 的机种,您对下面问题应回答yes

Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]

对 SCSI 机种,则要打开以下选项:

SCSI support (CONFIG_SCSI) [Y/n/m/?]
SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]

当然也要加入对您用的SCSI卡的支援,如这行提示:

Adaptec AHA152X support (CONFIG_SCSI_AHA152X) [Y/n/m/?]

对专属介面 CD-ROM,使用相对应的驱动程式。 您可以用上一章列的表得知您用的光碟机该用那种驱动程式。

基本上所有 CD-ROM 碟片都用 ISO-9660 档案系统,所以您也必须加入它:

ISO9660 cdrom filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]

虽说对 CD-ROM 运作不是必要的,如果您有 Linux 支援的音效卡, 您也许会想在核心起动它,以便将来使用。 Sound HOWTO (中文版在 http://www.linux.org.tw/CLDP/Sound-HOWTO.html) 将是一个很好的参考。

然後您应该照正常的步骤去编译及安装核心。 在您建造设备档及照下一节设定启动参数前, 不要急著用新造的核心开机!

ISO-9660 档案系统及几乎所有 CD-ROM 驱动程式都可被做成可载入模组。 这样子一些核心驱动程式就不必重开机即可载入及去除。 建议您先不要做成模组。 可在(核心中)模组的文件及 Kernel HOWTO 中找到使用模组的方法。

如果列在这里的机器并没有被您的核心支援,那麽您八成需要更新核心....

您也可能要自己抓核心之外的修补档,这通常牵涉到修补核心。 一样, Kernel HOWTO 也解释了如何做。

注意新版的核心有个功能表式的核心设置(configuration)程式, 可用 make menuconfig 叫出,或是 X11 式的设 置程式(用 make xconfig 叫出)。 三种方法都提供线上求助。

4.3 建立设备档及设定起动时参数

核心使用设备档来辨识该用那个驱动程式。 如果您用的是一个发行的 Linux 套件, 安装後您也许已经有必需的设备档了。 例如说,在 Slackware Linux 下,有个选单型安 装程式setup,它包含了 CD-ROM 安装。 多数系统也有 /dev/MAKEDEV 这个 指令稿(script)。 如果您不用这些方法,您可用像以下的手动的方法做。 即使您用了我们提到的方法, 仍然建议您再确认一下这些设备档,以确保它们的正确性。

您可以用指出您机器型式的 shell 命令建立设备档。 这应该可用 root这个身份完成。 注意有些 Linux 安装套件用的名称可能不太一样。

另外也建议您建立一个符号连结,这会好记一点。 例如说,对一台 IDE 介面的机器来说 ,可以如下般建立:

% ln -s /dev/hdd /dev/cdrom

如果您想放唱片,您就要设定档案保护权限(不是符号连结档,是真正的设备档!), 使其它人也可读取。

% chmod 666 /dev/hdd
% ls -l /dev/hdd
brw-rw-r--   1 root     disk      22, 64 Feb  4  1995 /dev/hdd

起动 Linux 时,驱动程式要确定该设备是否存在,这通常是靠自动侦测。 多数驱动程式 会侦测好几个位址,但因配备不同。 可能的设备冲突。 及硬体限制,有时需要手动给予这 些资讯。 多数驱动程式支援从核心的命令列取得这些资讯。 这可以手动输入,或加在您的 开机载入程式里。 例如说,您用 LILO 当开机载入程式的话,您可以在 /etc/lilo.conf 用 append 命令:

append = "sbpcd=0x230,SoundBlaster"

请看 LILO 的文件获得更多资讯。

下一节我讨论每一种驱动程式,它的设备档,启动参数,及它们的具备的能力。 您也许 只想看和您的机器有关的部份。 这些文件通常会放在 /usr/src/linux/Documentation/cdrom 目录下。

Sbpcd 驱动程式

                  作者 : Eberhard Moenkeberg (emoenke@gwdg.de)
      支援多次烧录碟片?: 是 (但并非所有机种皆可)
          支援多台机器?: 是
      可做成可载入模组?: 可
        可读取数位音轨?: 可 (只有CR-562,CR-563及CD-200)
            能自动侦测?: 能
                 设备档: /dev/sbpcd,主编号25
                 设定档: sbpcd.h
         核心设定的问题: Matsushita/Panasonic CDROM support?
             请另外阅读: sbpcd

这个驱动程式支援以下型式的核心命令列:

sbpcd=<io-address>,<interface-type>

第一个参数是 I/O 基底位址(如0x230)。 interface-type 可以是 ``SoundBlaster'' ,``LaserMate'' 或 ``SPEA'' ,请看 sbpcd.h 中的提示. 要关闭 此驱动程式,用 sbpcd=0。

可照下面建立设备档:

% mknod /dev/sbpcd b 25 0

一片卡最多可以装到四台,後三台的设备次编号(minor device number)分别由一到三。 如果您的界面卡更多,可建立主编号 26,27,28。 最多可有 4 片卡。 (也就是 16 台 CD-ROM 可用,对一般使用者应该够了 :-)。

请看 sbpcd 档案以获得更多关於此驱动程式的资讯。

如果您最近才买 CD-ROM,不要假设接声霸卡的就应该用这驱动程式。 现在 Creative Labs 卖的几乎都是 EIDE/ATAPI 的机种了。

Sonycdu535 驱动程式

                  作者 : Ken Pizzini (ken@halcyon.com)
      支援多次烧录碟片?: 否
          支援多台机器?: 否
      可做成可载入模组?: 是
        可读取数位音轨?: 不可
            能自动侦测?: 不能
                 设备档: /dev/sonycd535,主编号 24
                 设定档: sonycd535.h
         核心设定的问题: Sony CDU535 CDROM support?
             请另外阅读: sonycd535

这个驱动程式的命令列是这样的:

sonycd535=<io-address>

<io-address> 是基底位址(如 0x320)。 不然您也可以写在 sonycd535.h 里编译进去。

设备档这样建立:

% mknod /dev/sonycd535 b 24 0

有些 Linux 套件用 /dev/sonycd 这个档。 旧版核心给它主编号 21,确定一下您的设备 档是正确的。

这个驱动程式原本只是修补,不过现在已是标准核心的一部份了。 请参考 sonycd535 档案取得进一步资讯。

Cdu31a 驱动程式

                  作者 : Corey Minyard (minyard@-rch.cirr.com)
      支援多次烧录碟片?: 是
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 可
            能自动侦测?: 不能
                 设备档: /dev/cdu31a,主编号 15
                 设定档: cdu31a.h
         核心设定的问题: Sony CDU31A/CDU33A CDROM support?
             请另外阅读: cdu31a

这个驱动程式的命令列是这样的:

cdu31a=<io-address>,<interrupt>,PAS

第一个参数是 I/O 基底位址(如 0x340)。 第二个是中断号码(0 代表不用中断,用轮 询),第三个参数只有在连接 Pro Audio Spectrum 16 音效卡时要加,固定是PAS, 其它音效卡就不用了。

如果是作成模组,命令列格式则有些不一样。 用 modprobe 或 insmod 命令时,是以以下 形式载入:

cdu31a_port=<io-address> cdu31a_irq=<interrupt>

io-address 是必要的,而 interrupt 则可有可无。

设备档这样建立:

% mknod /dev/cdu31a b 15 0

详细资讯请参见 cdu31a 档案。

这个驱动程式也有个资讯网站台,可在 http://www.infinet.com/~zureal/cdu31a.html 找到。 作者是 Jeffrey Oxenreider ( zureal@infinet.com),包含了 许多此驱动程式的常见问题。

Aztcd 驱动程式

                  作者 : Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
      支援多次烧录碟片?: 是
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 不能
                 设备档: /dev/aztcd0,主编号 29
                 设定档: aztcd.h
         核心设定的问题: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support?
             请另外阅读: aztcd

核心命令列像这样:

aztcd=<io-address>

唯一的参数是 I/O 基底位址(如 0x340)

设备档如下建立:

% mknod /dev/aztcd0 b 29 0

注意这个驱动程式仅供 CDA268-01A 用。 其他机型如 CDA268-03I 及 CDA269-031SE 等不是专属介面,应该用 IDECD (ATAPI) 驱动程式。

详细资讯请参考 aztcd 档案

Gscd 驱动程式

                  作者 : Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)
      支援多次烧录碟片?: 否
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 不能
                 设备档: /dev/gscd0,主编号 16
                 设定档: gscd.h
         核心设定的问题: Goldstar R420 CDROM support?
             请另外阅读: gscd

核心命令列如下:

gscd=<io-address>

它用 I/O 基底位址作为其参数。(如0x340)

设备档可照下例建:

% mknod /dev/gscd0 b 16 0

详细资讯请参考 gscd 档案及其网站 http://linux.rz.fh-hannover.de/~raupach 以取得更多资讯。

Mcd 驱动程式

                  作者 : Martin  (martin@bdsi.com)
      支援多次烧录碟片?: 否
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 不能
                 设备档: /dev/mcd,主编号 23
                 设定档: mcd.h
         核心设定的问题: Standard Mitsumi CDROM support?
             请另外阅读: mcd

这是旧版的 Mitsumi 机器驱动程式,出来很久了。 也许您想用新的 mcdx 驱动程式, 它提供更多功能,但也许没这麽稳。

允许的核心命令列如下:

mcd=<io-address>,<irq>

参数分别是介面卡的 I/O 基底位址(如 0x340)及 IRQ 要求号码。

设备档如下建立:

% mknod /dev/mcd b 23 0

详情请参阅 mcd 档案

Mcdx 驱动程式

                  作者 : Heiko Schlittermann
      支援多次烧录碟片?: 是
          支援多台机器?: 是
      可做成可载入模组?: 可
        可读取数位音轨?: 不可(硬体不支援)
            能自动侦测?: 不能
                 设备档: /dev/mcdx0,主编号 20
                 设定档: mcdx.h
         核心设定的问题: Experimental Mitsumi support?
             请另外阅读: mcdx

这是新的实验性 Mitsumi 驱动程式。 旧的 mcd 可能仍然比较稳,且仍然存在。

可接受的核心命令列:

mcdx=<io-address>,<irq>

参数分别是介面卡 I/O 基底位址(如 0x340)及 IRQ 要求号码。

设备档照下面方法建:

% mknod /dev/mcdx0 b 20 0

如果您最近买 Mitsumi 机器,不要假设它应该用这驱动程式; 新的 Mitsumi 机种和 EIDE/ATAPI 相容 ,应该用 idecd 驱动程式。

详细资讯见 mcdx 档

Cm206 驱动程式

作者 : David A. van Leeuwen (david@tm.tno.) 支援多次烧录碟片?: 是 支援多台机器?: 否 可做成可载入模组?: 可 可读取数位音轨?: 不可 能自动侦测?: 能 设备档: /dev/cm206cd,主编号 32 设定档: cm206.h 核心设定的问题: Philips/LMS CM206 CDROM support? 请另外阅读: cm206

核心命令列像下面:

cm206=<io-address>,<interrupt>

第一个是基底位址(如 0x340),第二个是中断号码。

照下面方法造设备档:

% mknod /dev/cm206cd b 32 0

更详细的资讯请见 cm206 档

Optcd 驱动程式

                  作者 : Leo Spiekman (spiekman@dutette.et.tudelft.nl)
      支援多次烧录碟片?: 是
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 不能
                 设备档: /dev/optcd0,主编号 17
                 设定档: optcd.h
         核心设定的问题: Experimental Optics Storage ... CDROM support?
             请另外阅读: optcd

它接受下面的核心命令列:

optcd=<io-address>

参数是介面卡 I/O 基底位址。

设备档建立法:

% mknod /dev/optcd0 b 17 0

详细资讯见 optcd 档。

Sjcd 驱动程式

                  作者 : Vadim V. Model (vadim@rbrf.msk.su)
      支援多次烧录碟片?: 否
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 不能
                 设备档: /dev/sjcd,主编号 18
                 设定档: sjcd.h
         核心设定的问题: Experimental Sanyo H94A CDROM support?
             请另外阅读: sjcd

核心命令列像下面这行:

sjcd=<io-address>,<interrupt>,<dma>

指出基底位址,中断,及DMA直接记忆体存取通道号码。 (如 sjcd=0x340,10,5)

设备档以下面方法做:

% mknod /dev/sjcd b 18 0

详情见 sjcd 档案

Paride 驱动程式

                  作者 : Grant R. Guenther (grant@torque.net)
      支援多次烧录碟片?: 否
          支援多台机器?: 否
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 能
                 设备档: /dev/pcd0,主编号 46
                 设定档: bpcd.h
         核心设定的问题: Parallel port IDE device support?
             请另外阅读: paride.txt

这是许多种用印表机介面连接的储存设备使用的驱动程式。 通常这个驱动程式会自动侦测印表机介面上的设备。 如果自动侦测无法抓到的话, 驱动程式文件中有描述如何设定设备的参数。

设备档的建造法:

# mknod /dev/pcd0 b 46 0

请看 /usr/src/linux/Documentation/paride.txt 以取得本驱动程式的更深入资讯。 注意本驱动程式取代了旧版核心中的 bpcd 驱动程式。

SCSI CD-ROM 驱动程式

                  作者 : David Giller
      支援多次烧录碟片?: 是 (和机器有关)
          支援多台机器?: 是
      可做成可载入模组?: 可
        可读取数位音轨?: 不可
            能自动侦测?: 能
                 设备档: /dev/scd0,主编号 11
                 设定档: cdrom.h
         核心设定的问题: SCSI CDROM support?
             请另外阅读: 无

对每一种不同的 SCSI 卡而言,用的命令列参数不一样,请参考 SCSI HOWTO

可以接多台机器(至多接到 SCSI bus 能接的上限)。 设备档主编号是 11,次编号由 0 起 算:

% mknod /dev/scd0 b 11 0
% mknod /dev/scd1 b 11 1

(译注: 在核心里叫做 /dev/sr0,/dev/sr1,等,但其实它们就是/dev/scdX)

此驱动程式本身不支援读取数位音轨功能,然而有些 SCSI CD-ROM 有这能力,可用 cdda2wav 程式达成(它使用通用 SCSI 核心介面)。

也请参考之前讨论的IDE 模拟 SCSI驱动程式部份。

IDECD 驱动程式

                  作者 : Scott Snyder (snyder@fnald0.fnal.gov)
      支援多次烧录碟片?: 是
          支援多台机器?: 是
      可做成可载入模组?: 不可
        可读取数位音轨?: 可 (在硬体支援的机种上)
            能自动侦测?: 能
                 设备档: /dev/hd{a,b,c,d},主编号 22
                 设定档: cdrom.h
         核心设定的问题: Include support for IDE/ATAPI CDROMs?
             请另外阅读: ide-cd

这是 ATAPI CD-ROM 驱动程式。 它支援下面的命令列格式:

hdx=cyls,heads,sects,wpcom,irq
  或
hdx=cdrom

这里的 hdx 可以是 {hda,hdb,hdc,hdd},或只有 hd,表示下一台机器。 只有前三个参数 是必要的(cyls,heads,sects),例如说,hdc=1050,32,64 hdd=cdrom

要让 IDE 驱动程式认识您的 CD-ROM 可能有点麻烦,特别是您有超过二台设备或超过一 个 IDE 接头。 通常这需要由 LILO 送出正确的命令列参数。 /usr/src/linux/Documentation/ide-cd这档案有详细介绍,请仔细看。

最近的核心对多台 IDE 设备支援的更好了。 所以如果在旧核心上有问题,升级也许能解 决。

有些 IDE 介面硬体有问题,但核心可以处理。 这种情形您要送参数给核心以启动此功能。 细节请见核心内文件。

4.4 起动 Linux 核心

现在您可以用新核心启动了。 请注意看一下和以下的很像的讯息 ,它指出 CD-ROM 驱动程 式有没有发现您的 CD-ROM (讯息会因您用的 CD-ROM 种类不同而有变化)

hdd: NEC CD-ROM DRIVE:282,ATAPI CDROM drive

如果讯息卷动得太快了,应该也可以用 dmesgtail /var/adm/messages 来查看。

如果没有找到该机器,那就代表有问题出现了,请看``问题与解决''一节。

4.5 挂上,卸下,及退出光碟片

若想挂上 CD-ROM,把光碟片放进去,然後以 root 身份执行 mount 命令。 (这里假设您已经如我们所建议的,做了符号连结,并且也有空的 /mnt/cdrom 目录)

% mount -t iso9660 -r /dev/cdrom /mnt/cdrom

现在您可以到 /mnt/cdrom 下去存取 CD 上的东西了。

您也许还想用mount 命令的其它参数挂载 CD-ROM。 欲知详情,见 mount(8) 说明页。

您可以在 /etc/fstab 加进一行,使 Linux 开机时就自动挂上 CD-ROM,或给予一些挂载 时的参数。 请看 fstab(5) 说明页。

注意,若想要听 CD 唱片,那就不要挂上它。

要卸下 CD-ROM,以 root 身份执行 umount 命令。

% umount /mnt/cdrom

只有在没程序存取 CD-ROM 时(包括没人目前目录在 CD-ROM 时) 才可以卸下该片子。 卸下 後就可以退片了。 大多数机器都有退片钮,不过也有一个软体退片程式 eject 可以靠软体控制退出片子。

注意不要在碟片还在挂载中时退出片子 (这种状况有些 CD-ROM 可能发生,有些不会) 有些 CD-ROM 驱动程式可以在卸下时自动退片,而挂上时自动进片。 (您可以重 新编译核心或用软体命令关闭这功能)

也有可能在放了 CD 唱片後,就无法挂上 CD-ROM 片子了。 这时您要用 CD 播放程式送出 ``停止'' 命令後再尝试挂上。 这问题只在 SBPCD 驱动程式出现过。

最近的核心支援了以核心为基础,能提供对可抽换式媒体 (包括 CD-ROM) 透明化挂载能力的 automounter。 您可在 ftp://ftp.kernel.org/pub/linux/daemons/autofs/ 找到使用它所需要的工具。

4.6 问题与解决

如果您按照本 HOWTO 的指示去做却还有问题,有一些地方可以先确认一下。 这里由简单 到复杂一条条列出来。 如果问题刚好出现在某步骤,先解决这问题再进行下一步。

第一步: 确定您用您自己编译的核心启动系统

您可以检查核心中的时间戳记,看看是不是有支援 CD-ROM 的版本。 您可以用 uname 命令来检查:

% uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown

或显示 /proc/version 档中的内容:

% cat /proc/version
Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21
EST 1999

如果这个时间戳记比您编译还早,那您就是在用旧核心了。 您真的重开机过吗? 如果您 用 LILO,是否忘记重装一次(一般执行/etc/lilo/install)? 用软碟开机的话,您有做了一片新开机片,并用它开机了吗?

第二步: 确定需要的核心驱动程式有被编译进去

您可藉由观察 /proc/devices 来看编译进了什麽驱动程式:

% cat /proc/devices
Character devices:
 1 mem
 2 pty
 3 ttyp
 4 ttyS
 5 cua
 7 vcs

Block devices:
 3 ide0
22 ide1

首先看您的 CD-ROM 驱动程式。 CD-ROM 都是区块设备。 在这里我们看到主编号 22 的 idecd 驱动程式存在著。

% cat /proc/filesystems
        ext2
nodev   proc
nodev   devpts
        vfat
        iso9660

您也可以藉由看 /proc/ioports 档来看使用了那些 I/O port:

howto % cat /proc/ioports
 ...
0230-0233 : sbpcd
 ...

如果有东西您记得有编译但却没显示,那麽就是您设置核心时出了问题。 从再设置及重建 核心开始,再重复安装核心的步骤。

第三步: 起动时,核心有侦测到您的机器吗?

当核心起动时,确定您的 CD-ROM 被侦测到了。 应该在开机讯息里可以看到。 如果讯息卷 动太快,看不到,您可以用 dmesg 命令再显示一遍:

% dmesg

或者

% tail /var/adm/messages

如果开机没找到,那一定某处有问题。 确定它开电源了,并且连线也都接对了。 如果您 的机器有位址的跳线(如 SCSI ID 或 562B 的 ID),确定它设在正确位置上(例如,若是 只有一台则设 "drive 0") ATAPI CD-ROM 若是该 IDE 排线上唯一一台,则必须设 "single" 或 "master",不要设 "slave"。 如果在 DOS 下很正常,那您就可以相信硬体 是正常的了。

有些驱动程式用自动侦测,有些不用,而且自动侦测也不是完全可信的。 使用您的驱动 程式提供的核心命令列选项。 如果您不是很确定 I/O 位址或其它参数的话,您可能要试 好几遍不同的 I/O位址或其它参数。 LILO 可以被设成允许您起动时手动输入参数。

另一个可能就是您用错驱动程式了。 有些文件将专属介面写成 IDE,使人们误以为它是 ATAPI 的机种。

还有一个可能是您的机器(或介面卡)是那种需要 DOS 驱动程式来驱动它的所谓 ``相 容型''。 这样的话,您要先用 DOS 开机,载入这个驱动程式,再按 Control-Alt-Del 重起动 Linux。

如果本文件中没列出您的机器,那可能在 Linux 下还没有驱动程式。 您可以看一下文後 的参考资料表,试著求一点帮助。

第四步: 您能从机器上读出资料吗?

试著从 CD-ROM 读资料。 打入以下命令後,应该可以看到 CD-ROM 的灯亮起来(如果有灯 的话),而且也不会回报错误。 照您的驱动程式的设备档,并确定放了一片 CD-ROM 片子; 按下 Control-C 离开。

dd if=/dev/cdrom of=/dev/null bs=2048
^C
124+0 records in
124+0 records out

如果成功,那核心就能成功的和机器通讯,您可以跳到下一步。

如果不能的话,问题可能出在设备档。 确定在 /dev 下的设备档的主编号及次编号如前面写的一样。 也检查一下它是否允许读取及写入权。

也有一点点可能是硬体问题。 可能的话,在 DOS 下试试看,确认是不是这状况。

第五步: 您能挂上片子吗?

如果您能读取但不能挂上,首先确定一下核心有没有支援 ISO-9660 档案系统。 如前所 述,看 /proc/filesystems 档。

注意一下,请在挂上时用 ``-t iso9660'' 及 ``-r'' 选项。 还有在 CD-ROM 中放的是资料碟片,不是唱片。 通常要以 root 身份执行挂上命令。

确定挂载点存在,且是个空目录。

如果您想开机时自动挂载,确定在 /etc/fstab 中有正确的一行。

如果您有跑 syslog,那可能您看不见有些核心发出的讯息。 试试 dmesg 命令:

% dmesg
SBPCD: sbpcd_open: no disk in drive

错误也可能记录在 /var/adm 目录下的档案中,全看您的系统怎麽设的。

消除听音乐时的问题

如果您的机器读 CD-ROM 时没问题,但听唱片就有问题,这里提供些解决之道。

您需要些可放唱片的软体。 有些程式可能和您的机器不相容。 试试其它的或重新编译它。 一个找软体的好地方在 ftp://metalab.unc.edu/pub/Linux/apps/sound/cdrom/

有些 CD-ROM 不支援放唱片。 检查文件或原始码,看看是不是这情形。

检查一下声音是不是会从耳机孔出来。 如果可以,那八成和您的音效卡有关。 使用混音程 式设定输入频道及音量。 确定您从 CD-ROM 接了条音源线到音效卡上。 也确认一下核心的 音效卡驱动程式存在及可用(请看 Sound HOWTO)

要是一切都没用呢?

如果您还有问题,这里有一些最後的建议,您可以试试:


Next Previous Contents