📄 cdrom-howto.txt
字号:
第一步: 确定您用您自己编译的核心启动系统 您可以检查核心中的时间戳记,看看是不是有支援 CD-ROM 的版本。 您可以用 uname 命令来检查: % uname -aLinux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown 或显示 /proc/version 档中的内容: % cat /proc/versionLinux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21EST 1999 如果这个时间戳记比您编译还早,那您就是在用旧核心了。 您真的重开机过吗? 如果您 用 LILO,是否忘记重装一次(一般执行/etc/lilo/install)? 用软碟开机 的话,您有做了一片新开机片,并用它开机了吗? 第二步: 确定需要的核心驱动程式有被编译进去 您可藉由观察 /proc/devices 来看编译进了什麽驱动程式: % cat /proc/devicesCharacter devices: 1 mem 2 pty 3 ttyp 4 ttyS 5 cua 7 vcsBlock devices: 3 ide022 ide1 首先看您的 CD-ROM 驱动程式。 CD-ROM 都是区块设备。 在这里我们看到主编号 22 的 idecd 驱动程式存在著。 % cat /proc/filesystems ext2nodev procnodev 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^C124+0 records in124+0 records out 如果成功,那核心就能成功的和机器通讯,您可以跳到下一步。 如果不能的话,问题可能出在设备档。 确定在 /dev 下的设备档的主编号及次编 号如前面写的一样。 也检查一下它是否允许读取及写入权。 也有一点点可能是硬体问题。 可能的话,在 DOS 下试试看,确认是不是这状况 。 第五步: 您能挂上片子吗? 如果您能读取但不能挂上,首先确定一下核心有没有支援 ISO-9660 档案系统。 如前所 述,看 /proc/filesystems 档。 注意一下,请在挂上时用 ``-t iso9660'' 及 ``-r'' 选项。 还有在 CD-ROM 中 放的是资料碟片,不是唱片。 通常要以 root 身份执行挂上命令。 确定挂载点存在,且是个空目录。 如果您想开机时自动挂载,确定在 /etc/fstab 中有正确的一行。 如果您有跑 syslog,那可能您看不见有些核心发出的讯息。 试试 dmesg 命令: % dmesgSBPCD: sbpcd_open: no disk in drive 错误也可能记录在 /var/adm 目录下的档案中,全看您的系统怎麽设的。 消除听音乐时的问题 如果您的机器读 CD-ROM 时没问题,但听唱片就有问题,这里提供些解决之道。 您需要些可放唱片的软体。 有些程式可能和您的机器不相容。 试试其它的或重 新编译它。 一个找软体的好地方在 [40]ftp://metalab.unc.edu/pub/Linux/apps/sound/cdrom/。 有些 CD-ROM 不支援放唱片。 检查文件或原始码,看看是不是这情形。 检查一下声音是不是会从耳机孔出来。 如果可以,那八成和您的音效卡有关。 使用混音程 式设定输入频道及音量。 确定您从 CD-ROM 接了条音源线到音效卡 上。 也确认一下核心的 音效卡驱动程式存在及可用(请看 [41]Sound HOWTO) 要是一切都没用呢? 如果您还有问题,这里有一些最後的建议,您可以试试: * 小心地重读这份 HOWTO 文件 * 读文後列出的参考文件,特别是相关的核心原始码的相关档案。 * 在 comp.os.linux 或其它 USENET 新闻组贴帖子,问问题。 * 送一个问题到 Linux 通信论坛 * 用最新版的 Linux 核心 * 向电脑公司求救 * 找您的 CD-ROM 厂商 * 寄封信给相关驱动程式的作者(在/usr/src/linux/MAINTAINERS有列举) * 寄信给我(作者) * 叫出 emacs,打入Esc-x doctor (:-) 5. 应用 这一节简要地列出在 Linux 下 CD-ROM 的主要应用。 查阅 Linux软体大地 图(Linux Software Map) 看看它们在何处及最新是第几版。 5.1 CD唱片播放程式 有好些程式有能力放CD 唱片,可从耳机洞或音效卡出声。 Workman 一个在 X11 下的图型化播放程式,支援 CD资料库,还有很多其它功能。 WorkBone 一个互动性的文字模式播放程式 xcdplayer 一个 X11 下的简单播放软体 cdplayer 非常简单的命令列播放器 Xmcd 一个 X11/Motif 的播放软体 xmitsumi 另一个给 Mitsumi 机器用的 X11 下播放程式 xplaycd 另一个 X11 的播放器,包含一个混音器及 VU 计程式 cdtool 命令列播放 CD 唱片的工具 以上有些程式可能程式里规定用某个设备档(如 /dev/cdrom)。 也许您可以用参 数指示它用什麽设备档,或您也可在 /dev 下建符号连结来指示。 如果将声音送 到音效卡,您或许会想用混音器来调音量或选择 CD-ROM 输入当录音音源。 5.2 相片光碟 相片光碟利用 ISO-9660 档案系统存放专属格式的影像档。 并非所有 CD-ROM 都 支援读取相片光碟。 Hadmut Danisch 写的 hpcdtoppm 程式可将像片光碟档案转成可转移式点阵图 (ppm,portable pixmap) 格式。 它可经由 [42]ftp://ftp.gwdg.de/pub/linux/hpcdtoppm 取得,或者也可以在 PBM(portable bit map)公用程式(在很多档案库中都都可取得) 里 面找到。 (请 查询 ``pbm'' 或 ``netpbm'') Gerd Knorr( [43]kraxel@cs.tu-berlin.de)写的 photocd 程式可将相片光碟转 成 Targa 或者 Windows 及 OS/2 用的 BMP 档。 这位作者也写了 xpcd,一个可处理相片光碟影像的 X11 软体。 您可以用滑鼠选 择影像, 在小视窗中浏览,或用五种解析度看它。 您也可选定影像的一部份, 只载入它们。 xpcd 可 在 [44]ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc/中找到。 ImageMagick 影像档操作程式也支援像片光碟档案。 它在 [45]ftp://ftp.x.org/contrib/applications/ImageMagick/里。 5.3 Mkisofs Eric Youngdale 的 mkisofs 套件允许您在硬碟上建立 ISO-9660 档案系统。 这 样可以帮助您深入了解光碟,也能在烧光碟前先测试其档案系统。 真正将资料写进CD 烧录机的工具几乎都依厂商不同而有所不同。 它们也要求 写 资料时不能有任何中断,所以像 Linux 这种多工作业系统并不是非常适合这种工 作。 5.4 ISO-9660 公用程式 有些公用程式可以确认 ISO-9660 格式化的碟片是否正确。 您也许会发现在测试 奇怪的 CD 时会有用。 这玩意可在 [46]ftp://ftp.cdrom.com/pub/cdrom/ptf/ 中找到。 作者是 Bill Siegmund 及 Rich Morin。 6. 常见问题与解答6.1 没有 root 身份的人,如何挂上及卸下光碟片 多数 mount 命令支援user选项。 假设您在 /etc/fstab 里加入了这样一行: /dev/sbpcd /mnt/cdrom iso9660 user,noauto,ro 那麽普通使用者就可以像下面这样挂上或卸下这台机器的资料: % mount /mnt/cdrom% umount /mnt/cdrom 挂上程序将会加上一些额外选项以确保系统安全(例如: 程式不准执行,片子上的 设备档 将失效(不予理会)); 如果这些限制过严了,您可以加入额外的选项(如 "exec" 选项可以让上面的程式可执行)。 请看 mount(8) 说明页得知详情。 另一个办法就是抓 usermount软体,它允许非 root 之使用者挂上/卸下可移除设 备,如软碟及 CD-ROM 等,但限制对其它设备的动作 (如硬碟分割区)。 它在主 要的档案库都有。 在 ftp.cdrom.com 里有 mount.c 的原始码, 它允许一般使用者挂上/卸下 CD-ROM。 它必须 setuid 後才能这麽做。 (译注 : setuid 是指,将执行档执行时的权限变成和执行档所有人相同。 普通 执行档执 行时,权限是执行者的权限,这样的话很多程式都不能跑(如: 您不能 修改/etc/passwd, 所以不能变更密码。)。 而如果setuid,该档又是root所有 ,这种执行档就有root权限了。 (像passwd程式就是靠这个改密码的)。 不过 setuid 反过来也可能是系统安全的主要漏 洞。) 6.2 为何我要卸下光碟时,却得到 "device busy" 讯息? 如果有任何程序正在存取这机器,包括它们的现行目录正在它上面,那就不能卸 下。 如果 您实在不晓得那个程序正在使用这片光碟,您可以像下例一样的用 fuser 命令: % umount /mnt/cdromumount: /dev/hdd: device is busy% fuser -v /mnt/cdrom USER PID ACCESS COMMAND/mnt/cdrom tranter 133 ..c.。 bash 在有些系统您可能要以 root 身份执行 fuser 指令才能看到其它人的程序资讯。 6.3 我如何将 CD-ROM 用 NFS 与其它电脑共享? 您需要在/etc/exports档中加入一个项目; 这样别的机器的使用者就可以挂上它 了。 请看 exports(5) 这份说明页。 6.4 我能用 CD-ROM 起动 Linux 吗? 当安装 Linux 时最常用的方法是用软碟开机片,有些 Linux 组件可以直接由 DOS 起动 光碟上的 Linux 核心。 若有正确的 CD-ROM 片子,ROM BIOS 及 ATAPI CD-ROM 机器,从 CD 直接开机是 可能的。 最新版的 mkisofs 也支援制作这种使用 El Torito 标准的开机光碟片 。 (译注: 在 SCSI BIOS 支援的情况下,SCSI CDROM 也是可能开机的) 6.5 如何从 CD 唱片直接抓取数位音轨? Heiko Eissfeldt( [47]heiko@colossus.escape.de )和 Olaf Kindel 写了一个 公用程式可以读取音讯资料,并将它存成 .wav 格式的声音档。 这个程式叫 cdda2wav.tar.gz,可以在 metalab.unc.edu 找到。 还有一个抓取数位音轨的程式是 ccdparanoia,可在 [48]http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia 抓到。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -