在 Linux 下安装 CD-ROM 驱动器包含以下步骤
安装硬件。
配置和构建 Linux 内核。
创建设备文件并设置启动时间参数
启动 Linux 内核。
挂载媒体。
按照制造商的说明安装硬件,或让您的经销商执行安装。细节将因驱动器是内置还是外置以及所使用的接口类型而异。Linux 没有特殊的安装要求。您可能需要在驱动器和/或接口卡上设置跳线以进行正确操作;一些内核驱动程序包含包含此信息的文档文件。
如文件ide-cd中所述,当只有一个 IDE 设备连接到接口时,ATAPI CD-ROM 应跳线为“single”或“master”,而不是“slave”(尽管最近的内核不再强制执行此限制)。
最初从 CD-ROM 安装 Linux 时,您可能会使用作为 Linux 发行版一部分提供的引导和/或根磁盘。如果可能,您应该选择一个带有 CD-ROM 设备类型内核驱动程序的引导磁盘。如果您找不到带有必要 CD-ROM 驱动程序的引导磁盘,您有几个选择
直接从 CD-ROM 启动(如果您的计算机和 Linux CD 支持)
通过网络安装
启动 DOS,并将 Linux 文件安装到您的硬盘上
启动 DOS,并创建一组软盘来安装 Linux
找人为您构建一个带有所需 CD-ROM 驱动程序的引导磁盘
一旦 Linux 初步安装完成,大多数用户都希望编译自己的内核,通常是出于以下原因之一
支持 CD-ROM 驱动器或其他硬件
升级到更新的内核版本
通过最小化内核大小来释放内存资源
显然,在配置内核时,您需要编译对 CD-ROM 驱动器的支持。
如果您有 ATAPI CD-ROM 驱动器,您需要启用增强型 IDE/MFM/RLL 磁盘/cdrom/磁带支持和包含 IDE/ATAPI CDROM 支持。
对于 SCSI CD-ROM 驱动器,启用选项SCSI 支持和SCSI CDROM 支持。还要在提示时启用对您的 SCSI 主机适配器的支持,例如Adaptec AHA152X/2825 支持。
对于专有接口 CD-ROM 驱动器,启用相应的驱动程序。您可以使用前面列出的表格来确定您的型号要使用的驱动程序。
几乎所有 CD-ROM 都使用 ISO-9660 文件系统,因此您还必须启用ISO 9660 CDROM 文件系统支持。
虽然 CD-ROM 操作不需要,但如果您有 Linux 支持的声卡,您可能也希望此时启用和配置内核声音驱动程序。《声音 HOWTO》可以作为此处有用的参考。
然后,您应该按照通常的步骤构建内核并安装它。在创建设备文件并设置下一节中描述的任何启动时间参数之前,不要使用新内核启动。
ISO-9660 文件系统和几乎所有的 CD-ROM 驱动程序都可以构建为可加载的内核模块。这种方案允许在不重启内核的情况下加载和卸载内核驱动程序,从而释放内存。我建议您首先使用编译到内核中的驱动程序来运行您的 CD-ROM 安装。模块的使用方法在模块文档和《内核 HOWTO》中进行了描述。
如果此处列出的驱动器类型不受您的内核支持,您可能需要升级到更新的版本。
您可能需要使用与内核源代码分开分发的驱动程序。这通常涉及修补内核。《内核 HOWTO》再次解释了如何做到这一点。
请注意,您可以使用基于文本的程序“make config”、通过“make menuconfig”调用的基于菜单的内核配置程序以及通过“make xconfig”调用的基于 X11 的图形配置来配置内核。所有三种配置方法都提供在线帮助。
内核使用设备文件来识别要使用的设备驱动程序。如果您正在运行标准的 Linux 发行版,您可能在安装期间创建了必要的设备文件。例如,在 Slackware Linux 下,有一个基于菜单的setup工具,其中包括 CD-ROM 设置,并且大多数系统都有一个/dev/MAKEDEV脚本。如果您不使用这些方法,您可以使用本节中列出的更手动的方法。即使您使用这两种方法中的任何一种,也建议您至少根据本节中的信息验证设备文件。
如果您在 2.4 内核中使用新的 devfs 文件系统,则设备文件由内核动态创建,而不是驻留在磁盘上,并且遵循不同的命名约定。本文档中的示例假设未使用 devfs,如果使用 devfs,则可能需要进行相应的调整。
您可以通过运行为您的驱动器类型指示的 shell 命令来创建设备文件。这应该以用户root身份完成。请注意,一些 Linux 发行版可能使用与此处列出的 CD-ROM 设备名称略有不同的名称。
我建议您还创建一个指向 CD-ROM 设备的符号链接,以便更容易记住。例如,对于辅助接口上的第二个设备的 IDE CD-ROM 驱动器,将使用以下命令创建链接
# ln -s /dev/hdd /dev/cdrom |
如果您想播放音频 CD,您需要设置设备文件(真实文件,而不是指向它的符号链接)的保护,以允许所有用户读取,例如
# chmod 664 /dev/hdd # ls -l /dev/hdd brw-rw-r-- 1 root disk 22, 64 Feb 4 1995 /dev/hdd |
一些 Linux 发行版使用组权限来控制对 CD-ROM 等设备的访问。一个常见的约定是只允许名为 cdrom 的组的成员进行访问。在这种情况下,您应该将适当的用户添加到组中,而不是更改设备文件上的文件权限。
当启动 Linux 时,设备驱动程序尝试确定是否存在适当的设备,通常是通过探测特定的地址。许多驱动程序自动探测多个地址,但由于配置的差异、可能的设备冲突和硬件限制,驱动程序有时需要帮助识别地址和其他参数。大多数驱动程序都支持内核命令行上的选项,以将此信息传递给设备驱动程序。这可以交互式完成,或者更常见的是配置到您的引导加载程序中。例如,使用 LILO,您可以在您的append命令添加到您的/etc/lilo.conf文件中
append = "sbpcd=0x230,SoundBlaster" |
有关更多信息,请参阅 LILO 文档。
在下一节中,我将讨论特定于各个设备驱动程序的问题,包括设备文件、引导参数和不同驱动程序的功能。您可能只需要阅读与您的驱动器类型相关的章节。文档文件通常位于目录/usr/src/linux/Documentation/cdrom.
主要作者 | Eberhard Moenkeberg (emoenke@gwdg.de) |
多会话支持 | 是(但不是所有驱动器) |
多驱动器支持 | 是 |
可加载模块支持 | 是 |
读取音频帧 | 是(仅限 CR-562、CR-563、CD-200) |
自动探测 | 是 |
设备文件 | /dev/sbpcd,主设备号 25 |
配置文件 | sbpcd.h |
内核配置选项 | 松下/Panasonic CDROM 支持 |
文档文件 | sbpcd |
此驱动程序接受以下形式的内核命令行
sbpcd=<io-address>,<interface-type> |
其中第一个参数是设备的基地址(例如 0x230),<interface-type> 是“SoundBlaster”、“LaserMate”或“SPEA”之一。请参阅文件sbpcd.h以获取有关使用哪种接口类型的提示。使用sbpcd=0禁用自动探测,从而禁用驱动程序。
可以使用以下命令创建设备文件
# mknod /dev/sbpcd b 25 0 |
每个控制器最多支持四个驱动器。第一个控制器上的接下来的三个驱动器将使用次设备号 1 到 3。如果您有多个控制器,请创建主设备号为 26、27 和 28 的设备,最多 4 个控制器(总共 16 个 CD-ROM 驱动器;希望对大多数用户来说足够了 :-)。
请参阅文件sbpcd以获取有关此驱动程序的更多信息。
如果您最近购买了 CD-ROM 驱动器,请不要认为如果它连接到 SoundBlaster 卡,就应该使用此内核驱动程序。Creative Labs 销售的大多数 CD-ROM 驱动器现在都是 EIDE/ATAPI 驱动器。
主要作者 | Ken Pizzini (ken@halcyon.com) |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 否 |
设备文件 | /dev/sonycd535,主设备号 24 |
配置文件 | sonycd535.h |
内核配置选项 | Sony CDU535 CDROM 支持 |
文档文件 | sonycd535 |
此驱动程序接受以下形式的内核命令行
sonycd535=<io-address> |
其中 <io-address> 是控制器的基地址(例如 0x320)。或者,您可以在文件sonycd535.h中设置地址并将其编译到内核中。
可以使用以下命令创建设备文件
# mknod /dev/sonycd535 b 24 0 |
一些 Linux 发行版使用/dev/sonycd作为此设备。旧版本的驱动程序使用主设备号 21;请确保您的设备文件是正确的。
此驱动程序以前作为补丁分发,但现在已成为标准内核的一部分。请参阅文件sonycd535以获取有关此驱动程序的更多信息。
主要作者 | Corey Minyard (minyard@-rch.cirr.com) |
多会话支持 | 是 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 是 |
自动探测 | 否 |
设备文件 | /dev/cdu31a,主设备号 15 |
配置文件 | cdu31a.h |
内核配置选项 | Sony CDU31A/CDU33A CDROM 支持 |
文档文件 | cdu31a |
此驱动程序接受以下形式的内核命令行
cdu31a=<io-address>,<interrupt>,PAS |
第一个数字是卡的 I/O 基地址(例如 0x340)。第二个是要使用的中断号(0 表示使用轮询 i/o)。如果驱动器连接到 Pro-Audio Spectrum 16 声卡,则可选的第三个参数应为“PAS”,否则留空。
如果驱动程序作为模块加载,则它使用略有不同的格式。当使用 modprobe 或 insmod 命令加载驱动程序时,参数采用以下形式
cdu31a_port=<io-address> cdu31a_irq=<interrupt> |
基本 io 地址是必需的,而中断号是可选的。
可以使用以下命令创建设备文件
# mknod /dev/cdu31a b 15 0 |
请参阅文件cdu31a以获取有关此驱动程序的更多信息。
主要作者 | Werner Zimmermann (zimmerma@rz.fht-esslingen.de) |
多会话支持 | 是 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 否 |
设备文件 | /dev/aztcd0,主设备号 29 |
配置文件 | aztcd.h |
内核配置选项 | Aztech/Orchid/Okano/Wearnes(非 IDE)CDROM 支持 |
文档文件 | aztcd |
此驱动程序接受以下形式的内核命令行
aztcd=<io-address> |
其中参数是卡的 I/O 基地址(例如 0x340)。
可以使用以下命令创建设备文件
# mknod /dev/aztcd0 b 29 0 |
请注意,此驱动程序仅适用于 CDA268-01A。其他型号,包括 CDA268-03I 和 CDA269-031SE 不是专有的,应使用 IDECD (ATAPI) 内核驱动程序。
请参阅文件aztcd以获取有关此驱动程序的更多信息。
主要作者 | Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de) |
多会话支持 | 否 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 否 |
设备文件 | /dev/gscd0,主设备号 16 |
配置文件 | gscd.h |
内核配置选项 | Goldstar R420 CDROM 支持 |
文档文件 | gscd |
此驱动程序接受以下形式的内核命令行
gscd=<io-address> |
指定卡的 I/O 基地址(例如 0x340)。
可以使用以下命令创建设备文件
# mknod /dev/gscd0 b 16 0 |
请参阅文件gscd以获取有关此驱动程序的更多信息。
主要作者 | Martin (martin@bdsi.com) |
多会话支持 | 否 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 否 |
设备文件 | /dev/mcd,主设备号 23 |
配置文件 | mcd.h |
内核配置选项 | 标准 Mitsumi CDROM 支持 |
文档文件 | mcd |
这是 Mitsumi 驱动程序的旧驱动程序,已经存在一段时间了。您可能想尝试更新的mcdx驱动程序,它有一些新功能,但可能不太稳定。
此驱动程序接受以下形式的内核命令行
mcd=<io-address>,<irq> |
指定卡的 I/O 基地址(例如 0x340)和使用的 IRQ 请求号。
可以使用以下命令创建设备文件
# mknod /dev/mcd b 23 0 |
请参阅文件mcd以获取有关此驱动程序的更多信息。
主要作者 | Heiko Schlittermann |
多会话支持 | 是 |
多驱动器支持 | 是 |
可加载模块支持 | 是 |
读取音频帧 | 否(硬件不支持) |
自动探测 | 否 |
设备文件 | /dev/mcdx0,主设备号 20 |
配置文件 | mcdx.h |
内核配置选项 | 实验性 Mitsumi 支持 |
文档文件 | mcdx |
这是 Mitsumi 驱动程序的更新驱动程序。较旧且可能更稳定的mcd驱动程序仍然可用。
此驱动程序接受以下形式的内核命令行
mcdx=<io-address>,<irq> |
指定卡的 I/O 基地址(例如 0x340)和使用的 IRQ 请求号。
可以使用以下命令创建设备文件
# mknod /dev/mcdx0 b 20 0 |
如果您最近购买了 Mitsumi CD-ROM 驱动器,请不要认为它应该使用此内核驱动程序。新的 Mitsumi 驱动器现在是 EIDE/ATAPI 兼容的,应该使用 idecd 内核驱动程序。
请参阅文件mcdx以获取有关此驱动程序的更多信息。
主要作者 | David A. van Leeuwen (david@tm.tmo.nl) |
多会话支持 | 是 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 是 |
设备文件 | /dev/cm206cd,主设备号 32 |
配置文件 | cm206.h |
内核配置选项 | Philips/LMS CM206 CDROM 支持 |
文档文件 | cm206 |
该驱动程序接受以下形式的内核命令行
cm206=<io-address>,<interrupt> |
其中第一个数字是卡的 I/O 基地址(例如 0x340)。第二个是中断通道。
可以使用以下命令创建设备文件
# mknod /dev/cm206cd b 32 0 |
请参阅文件cm206以获取有关此驱动程序的更多信息。
主要作者 | Leo Spiekman (spiekman@dutette.et.tudelft.nl) |
多会话支持 | 是 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 否 |
设备文件 | /dev/optcd0,主设备号 17 |
配置文件 | optcd.h |
内核配置选项 | 实验性光学存储 ... CDROM 支持 |
文档文件 | optcd |
该驱动程序接受以下形式的内核命令行
optcd=<io-address> |
以指定卡的 I/O 基地址(例如 0x340)。
可以使用以下命令创建设备文件
# mknod /dev/optcd0 b 17 0 |
请参阅文件optcd以获取有关此驱动程序的更多信息。
主要作者 | Vadim V. Model (vadim@rbrf.msk.su) |
多会话支持 | 否 |
多驱动器支持 | 否 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 否 |
设备文件 | /dev/sjcd,主设备号 18 |
配置文件 | sjcd.h |
内核配置选项 | 实验性 Sanyo H94A CDROM 支持 |
文档文件 | sjcd |
该驱动程序接受以下形式的内核命令行
sjcd=<io-address>,<interrupt>,<dma> |
指示要使用的基地址、中断和 DMA 通道(例如 sjcd=0x340,10,5)。
可以使用以下命令创建设备文件
# mknod /dev/sjcd b 18 0 |
请参阅文件sjcd以获取有关此驱动程序的更多信息。
主要作者 | Grant R. Guenther (grant@torque.net) |
多会话支持 | 否 |
多驱动器支持 | 是 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 是 |
设备文件 | /dev/pcd0,主设备号 46 |
配置文件 | bpcd.h |
内核配置选项 | 并行端口 IDE 设备支持 |
文档文件 | paride.txt |
这是用于连接到并行端口的各种类型存储设备的驱动程序。通常,驱动程序会自动检测并行端口设备。该文档描述了在自动检测不起作用时可用于指定设备参数的参数。
可以使用以下命令创建第一个驱动器的设备文件
# mknod /dev/pcd0 b 46 0 |
请参阅文件/usr/src/linux/Documentation/paride.xt以获取有关此驱动程序的更多信息。请注意,这取代了旧内核中存在的 bpcd 驱动程序。
主要作者 | David Giller |
多会话支持 | 是(取决于驱动器) |
多驱动器支持 | 是 |
可加载模块支持 | 是 |
读取音频帧 | 否 |
自动探测 | 是 |
设备文件 | /dev/scd0,主设备号 11 |
配置文件 | cdrom.h |
内核配置选项 | SCSI CDROM 支持 |
文档文件 | scsi.txt |
每个类型的 SCSI 控制器都有特定的内核命令行选项。有关更多信息,请参阅 SCSI HOWTO。
支持多个驱动器(最多为 SCSI 总线上设备最大数量的限制)。创建主设备号为 11,次设备号从零开始的设备文件
# mknod /dev/scd0 b 11 0 # mknod /dev/scd1 b 11 1 |
虽然内核驱动程序本身不支持读取数字音频帧,但某些 SCSI 驱动器具有此功能,并且可以与 cdda2wav 程序(使用通用 SCSI 内核接口)一起使用。
另请参阅本文档前面关于 IDE SCSI 仿真驱动程序的讨论。
主要作者 | Scott Snyder (snyder@fnald0.fnal.gov) |
多会话支持 | 是 |
多驱动器支持 | 是 |
可加载模块支持 | 否 |
读取音频帧 | 是(在受支持的驱动器上) |
自动探测 | 是 |
设备文件 | /dev/hd{a,b,c,d},主设备号 22 |
配置文件 | cdrom.h |
内核配置选项 | 包含对 IDE/ATAPI CDROM 的支持 |
文档文件 | ide-cd |
这是 ATAPI CD-ROM 的驱动程序。驱动程序接受以下形式的内核命令行
hdx=cyls,heads,sects,wpcom,irq or hdx=cdrom |
其中hdx可以是 {hda,hdb,hdc,hdd} 中的任何一个,或者只是 hd,表示序列中的“下一个”驱动器。只需要前三个参数(cyls、heads、sects)。例如hdc=1050,32,64 hdd=cdrom.
让 IDE 驱动程序识别您的 CD-ROM 驱动器可能很棘手,特别是当您有超过 2 个设备或超过一个 IDE 控制器时。通常只需要从 LILO 传递正确的命令行选项即可。《/usr/src/linux/Documentation/cdrom/ide-cd》文件解释了如何做到这一点。请仔细阅读。
最近的 Linux 内核对多个 IDE 设备有更好的支持。如果您在旧内核中遇到问题,升级可能会有所帮助。
一些 IDE 控制器存在硬件问题,内核驱动程序可以解决这些问题。您可能需要向驱动程序传递其他参数才能启用此功能。有关详细信息,请参阅文档。
您现在可以使用新内核重新启动。注意类似以下的消息,表明设备驱动程序已找到 CD-ROM(消息将因驱动器类型而异)
hdd: TOSHIBA CD-ROM XM-7002B, ATAPI CD/DVD-ROM drive |
如果启动消息滚动得太快而无法阅读,您应该可以使用dmesg或tail /var/log/messages.
来检索它们。如果未找到驱动器,则发生了问题。请参阅故障排除部分。
要挂载 CD-ROM,请将光盘插入驱动器,并以mount身份运行命令root(这假设您创建了指向您的设备文件的符号链接,如上所述,并且存在一个空目录/mnt/cdrom)
# mount -t iso9660 -r /dev/cdrom /mnt/cdrom |
现在可以在目录/mnt/cdrom.
下访问 CDmount(8)手册页以了解详细信息。您可能希望使用 mount 命令的其他选项;请参阅
您可以将条目添加到/etc/fstab以在 Linux 启动时自动挂载 CD-ROM 或指定挂载时要使用的参数;请参阅fstab(5)手册页。
请注意,要播放音频 CD,您不应尝试挂载它们。
要卸载 CD-ROM,请使用umount身份运行命令root:
# umount /mnt/cdrom |
只有在当前没有进程访问驱动器(包括将其默认目录设置为已挂载的驱动器)时,才能卸载光盘。然后您可以弹出光盘。大多数驱动器都有弹出按钮;还有一个独立的 eject 程序,允许在软件控制下弹出 CD-ROM。
请注意,您不应在光盘已挂载时弹出它(这可能可以或不可能取决于驱动器类型)。某些 CD-ROM 驱动程序可以在卸载 CD-ROM 时自动弹出 CD-ROM,并在挂载光盘时插入 CD 托盘(您可以在编译内核时或使用软件命令关闭此功能)。
播放音频 CD 后,您可能无法挂载 CD-ROM。您需要在尝试挂载之前发送 CD 音频“停止”命令(使用 CD 播放器程序)。此问题似乎仅在使用 SBPCD 驱动程序时才会出现。
最近的内核支持基于内核的自动挂载程序,该程序提供对可移动媒体(包括 CD-ROM)的透明挂载。您可以在 ftp://ftp.kernel.org/pub/linux/daemons/autofs/ 找到使用它所需的工具。
如果在按照 HOWTO 中的说明操作后仍然遇到问题,以下是一些需要检查的事项。检查按复杂性递增的顺序列出。如果检查失败,请在进入下一阶段之前解决问题。
您可以检查内核上的日期戳,以查看您是否正在运行您编译的带有 CD-ROM 支持的内核。您可以使用uname命令
% uname -a Linux moe 2.4.4 #1 Sat Apr 28 10:30:45 EDT 2001 i686 unknown |
或通过显示文件/proc/version:
% cat /proc/version Linux version 2.4.4 (root@moe) (gcc version 2.95.2 20000220 (Debian GNU/Linux)) #1 Sat Apr 28 10:30:45 EDT 2001 |
来完成此操作。如果日期戳与您编译内核的时间不匹配,则您正在运行旧内核。您记得重新启动了吗?如果您使用 LILO,您是否重新安装了它(通常通过运行/sbin/lilo)?如果是从软盘启动,您是否创建了新的启动软盘并在启动时使用了它?
您可以通过查看/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 设备驱动程序。这些都是块设备,在这种情况下,我们可以看到idecd主设备号为 22 的驱动程序存在。
还要通过查看/proc/filesystems:
% cat /proc/filesystems ext2 nodev proc nodev devpts vfat iso9660 |
您还可以通过文件/proc/ioports:
howto % cat /proc/ioports ... 0230-0233 : sbpcd ... |
来查看驱动程序正在使用的 i/o 端口地址。如果您认为编译到内核中的任何驱动程序未显示,则内核配置或构建出现问题。重新开始安装过程,从内核的配置和构建开始。
确保在内核启动时检测到 CD-ROM 设备。您应该在启动时看到一条消息。如果消息滚动出屏幕,您通常可以使用dmesg命令
% dmesg |
或
% tail /var/log/messages |
来回忆它们。如果未找到您的驱动器,则说明出了问题。确保驱动器已通电并且所有电缆都已连接。如果您的驱动器具有用于寻址的硬件跳线,请检查它们是否设置正确(例如,如果您只有一个驱动器,则为驱动器 0)。当只有一个 IDE 设备连接到接口时,ATAPI CD-ROM 必须跳线为“single”或“master”,而不是“slave”。如果驱动器在 DOS 下工作,那么您可以合理地确信硬件正在工作。
许多内核驱动程序使用自动探测,但有些驱动程序不使用,并且在任何情况下,探测并非总是可靠的。使用为您的内核驱动程序类型列出的内核命令行选项。如果您不确定 i/o 地址或其他参数,您可能需要尝试几个不同的值。LILO 可以(并且通常是)配置为允许您在启动时手动输入参数。
另一种可能性是您为您的 CD-ROM 驱动程序使用了错误的内核驱动程序。一些文档可能会将专有接口称为 IDE,导致一些人错误地认为它们是 ATAPI 驱动器。
另一种可能性是您的驱动器(或接口卡)是“兼容”类型之一,需要由 DOS 驱动程序初始化。尝试启动 DOS 并加载供应商提供的 DOS 设备驱动程序。然后使用软启动 LinuxControl-Alt-Delete.
如果您的驱动器未在此文档中列出,则可能没有适用于 Linux 的驱动程序。您可以查看本文档末尾列出的一些参考文献以获得帮助。
尝试从 CD-ROM 驱动器读取数据。键入以下命令应使驱动器活动指示灯(如果有)亮起,并且不应报告任何错误。使用适合您的驱动器的任何设备文件,并确保已插入 CD-ROM;使用 Control-C 退出。
# dd if=/dev/cdrom of=/dev/null bs=2048 ^C 124+0 records in 124+0 records out |
如果这有效,则内核正在与驱动器通信,您可以继续执行步骤 5。
如果无效,则可能的原因是设备文件。确保/dev目录中的设备文件具有正确的 主设备号和次设备号,如先前为您的驱动器类型列出的那样。检查设备文件上的权限是否允许读取和写入。
一个遥远的可能性是硬件问题。如果可能,尝试在另一个操作系统下测试驱动器,以确定是否可能是这种情况。
如果您可以从驱动器读取数据但无法挂载它,请首先通过读取/proc/filesystems来验证您是否编译了 ISO-9660 文件系统支持,如前所述。
确保您使用“-t iso9660”和“-r”选项挂载驱动器,并且驱动器中插入了已知的良好 ISO-9660 CD-ROM(不是音频 CD)。您通常必须以用户root.
身份挂载驱动器。确保挂载点存在并且是一个空目录。
如果您在启动时自动挂载 CD-ROM,请确保您在/etc/fstab文件中具有正确的条目。
如果您正在运行 syslog 守护程序,则可能存在您看不到的来自内核的错误消息。尝试使用“dmesg”命令
% dmesg SBPCD: sbpcd_open: no disk in drive |
也可能有错误记录到/var/log中的文件中,具体取决于您的系统配置方式。
如果驱动器可以与 CD-ROM 一起使用,但不能用于播放音频 CD,以下是一些可能的解决方案。
您需要应用程序来播放音频 CD。某些应用程序可能已损坏或可能与您的驱动器不兼容。尝试其他应用程序和/或尝试自己重新编译它们。寻找软件的好地方是 ftp://www.ibiblio.org/pub/Linux/apps/sound/cdrom/。
少数 CD-ROM 驱动程序不支持播放音频 CD。检查文档文件或源代码以查看是否是这种情况。
检查音频是否可以通过耳机插孔播放。如果是,则问题可能与您的声卡有关。使用混音器程序设置输入设备和音量级别。确保您已安装从 CD-ROM 驱动器到声卡的音频线。确保内核声卡驱动程序已安装并正常工作(请参阅《声音 HOWTO》)。
如果您仍然有问题,以下是一些最终建议供您尝试
仔细重新阅读此 HOWTO 文档
阅读本文档末尾列出的参考文献,尤其是相关的内核源文件
向comp.os.linux或其他 Usenet 新闻组发布问题
向 Linux 邮件列表发送问题
尝试使用最新的 Linux 内核
联系您的计算机经销商
联系 CD-ROM 制造商
向相关内核驱动程序的维护者发送邮件(查看文件/usr/src/linux/MAINTAINERS)
给我发邮件
启动 emacs 并键入Esc-x doctor :-)