📄 cdrom-howto.txt
字号:
因为 CD-ROM 世代交替太快了,很难列出哪些 CD-ROM 可读取数位音乐资料。 您 最好的赌注是抓最新版的 cdda2wav 或 cdparanoia 套件,并读它的文件。 若想要更进一步的资讯,请上 [49]http://www.tardis.ed.ac.uk/~psyche/pc/cdrom/CDDA.html 这个站台看看 ,还有参阅参考文献中列举的 alt.cdrom FAQ。 6.6 为什麽 find 命令不太正常? 在没有 Rock Ridge Extension 的 ISO-9660 光碟上,您需要在 find 後加上 -noleaf这选项。 请参考 find(1) 说明页。 (在我的经验中几乎所有 Linux CD-ROM 都用 Rock Ridge Extension,这问题的 发生率应 该极低。) 6.7 Linux 是否支援任何 CD-ROM 的烧录设备? X-CD-Roast 套件(Linux 版)是使用 CD 烧录机的图形化前端介面。 此套件可在 metalab.unc.edu 里的 /pub/Linux/utls/disk-management/xcdroast-0.95.tar.gz 找著。 也请参考 Linux CD-Writer HOWTO 文件,在 [50]ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/CD-Writing-HOWTO 或 [51]http://metalab.unc.edu/LDP/HOWTO/CD-Writing-HOWTO.html。 (译注: 本文件的中文版还在翻译中) 6.8 我挂载 CD-ROM 时得到: Read-Only file system 讯息? CD-ROM 是只能读取的媒体。 旧版的核心您能用可读写方法挂上 CD-ROM,尝试写 资料 进去的动作只会被忽略掉。 在 1.1.33 版後,这被修正为 CD-ROM 必须以 唯读方式挂上( 就是说 mount 要有 -r 选项 )。 6.9 我关机时,为什麽托盘自动退出来? sbpcd 驱动程式支援在卸下片子时自动退片的功能。 在旧版核心中这也是预设值 。 如果您下了关机指令,那麽挂上的 CD 就会被卸下,然後就会退片。 这样子在换片时很方便。 如果托盘打开状态下您挂上或读取CD,那麽它也会自动 进片。 我发现有时这功能会造成问题(如 cdplay 及 workbone)。 在 1.1.60 版核心您 可以用软 体决定要不要用这功能。 有个□例程式包含在 sbpcd 的文件里。 (或 者用 [52]eject 程式)。 您也可以经由修改核心原始码sbpcd.h档,改变预设的 行为。 6.10 我有一片无法挂上的``特殊''片子 这片``特殊''片子看来像是 XA 碟片(就像相片光碟或用 CD-R 烧的 ``一次写 入'' (one-offs) 片子)多数 Linux 核心 CD-ROM 驱动程 式并不支援 XA 格式, 虽然您也许能在一些档案库找到一些修补。 sbpcd 驱动程式是支援 XA 的。 如果您用这驱动程式,您可以依以下方法确定片 子是不是 XA 的格式: 修改 sbpcd.c,允许显示"主目录"(TOC)资讯(DBG_TOC)。 然後 做新核心,起动它,则每次挂上时都会显示 TOC(由主控台或记录档)。 看 第一个数字, 如果是 20,那就是 XA 片子,如果是 00,那就是普通片子。 如 果 TOC 显示不同的轨, 那也是 XA 片子的信号。 (感谢 Eberhard Moenkeberg 提供以上资讯) 其它的无法读取 CD 可能原因: 1. 它不是用 ISO-9660 档案系统(如 : 有的用 SunOS 或 HFS) 2. 它是 CD 唱片 3. CD 有损坏或毁伤 4. 您把光碟片放反了 :-) 6.11 多片装 CD-ROM 在 Linux 下能用吗 ? 好几位使用者已报告 SCSI CD-ROM 多片机种运作顺利。 您也许要打开`` Probe all LUNs on each SCSI device'' 的核心选项。 (如果您的 SCSI CD 驱动程式 已知它是多片式 CD-ROM,这步就可以省了。 详见 /usr/src/linux/drivers/scsi.c) 至少有一位使用者发现他也要加大驱动程式中的 SCSI 超时等待值(timeout value)。 这情况的症状是在第一次挂上 CD-ROM 时出现像 "wrong fs type ,bad option,bad superblock on /dev/sr5,or too many mounted file systems" 这样的讯息,而第二次马上就成功。 要这麽作的话,修改 /usr/src/linux/drivers/scsi/sr_ioctl.c 的开头处 IOCTL_TIMEOUT 值,并重 新编译核心。 据传在 NEC Multispin 4Xc 上把预设值由 3000 改成 10000 就能 工作得很好。 为了让所有的片槽都能存取,可能需要建立额外的区块设备档。 对每一个逻辑设 备(LUN)都要有一个设备档,所以一个七片换片机需要 /dev/sr0 到 /dev/sr6(如 果您还有别的 SCSI CDROM, 那还要更多)。 要建立区块设备档,以 root 身份 执行 mknod /dev/sr? b 11 ?,其中把 ? 以设备号码取代。 Nakamichi MBR-7 的七片装,NEC Multispin 4Xc 及先锋牌的 12 片装已确定能 用。 EIDE/ATAPI 的多片机种也能使用。 核心已对一些机器提供了 CDROM_SELECT_DISC 这个 ioctl 的支援。 IDECD 驱动程式的文件档包含了一个 原始码可做写换片的程式之参考。 或者您也可以找像早先提到最新版的 eject 程式。 6.12 我收到 ``/cdrom: Permission denied'' 错误 有些 CD 有档案权限,仅允许 root 读取它。 这是 CD-ROM 业者犯的错误, 而 且真的造成不方便。 更常见发生的是有些档案或目录被设成并非任何人可读。 有人已经对核心做了修补,解决这样的问题。 也请参考本篇後面提到的隐藏档的相关问题。 6.13 我如何读懂 IDE CD 的核心错误讯息? 核心送给我的 IDE CD-ROM 驱动程式讯息像: "hdxx: code: xx key: x asc: xx ascq: x",这是什麽意思? 这是 IDE CD-ROM 的状态/错误报告。 预设状况下,IDECD 印出最原始的资讯, 而不浪费 核心空间给错误讯息。 您可以改变它,让它显示真正的错误讯息。 修 改 /usr/src/linux/drivers/block/ide-cd.c ,将 VERBOSE_IDE_CD_ERRORS 改 成 1,并重编译核心。 6.14 我如何测试我的 CD-ROM 是几倍速的呢? 有一个办法。 底下测试它要花多久时间来读取 1500K 的资料: % time -p dd if=/dev/cdrom of=/dev/null bs=1k count=15001500+0 records in1500+0 records outreal 5.24user 0.03sys 5.07 正常的单倍速 CD-ROM 每秒传输率为 150KB,所以约要 10 秒钟。 二倍速约要 5 秒钟,四倍速的约 2.5 秒钟等等... 上面里 "real" 时间也许是最好的值 -- 在上面情形指出它是二倍速机器。 您可 以增加资料量得出更准确的值。 (如果您担心受快取影响的话。)您也许应该多测 几次,求平均值。 我也写了小的 C 程式可以测定并回报 CD-ROM 的资料传输率; 如果您要的话我可 以给您。 6.15 装好 Linux 後,我的 CD-ROM 不能用了 最常见的症状是先用 Linux 安装时,Linux 承认您的 CD-ROM。 但装完後,从软 碟或硬碟 开机却又不能用它了。 最大的可能就是多数 Linux 套件中,装在硬碟的核心不一定就是和安装片用的一 样。 您 选了支援您设备的安装片,它却给您在硬碟上装一个没有支援 CD-ROM 的 "通用版"核心。 您可以照第四章所说的 "问题与解决" 去做。 (从检查 /proc/devices 开始) 解法是重编译核心,确定您需要的 CD-ROM 驱动程式及其它需要的部份(如 SCSI 卡, ISO-9660 档案系统)都编进去了。 如果您不知道怎麽做,看 [53]Kernel HOWTO 如果您安装时用了命令列参数(如"hdc=cdrom")您要把它加进开机载入程式 的设 定档中(通常是 /etc/lilo.conf) 6.16 在 CD 上有隐藏档,我没办法读... 有些 CD 的一些档案有设定隐藏位元。 这些档案正常状态是看不到的。 不过如 果您挂上时 用了 "unhide" 选项,那麽应该就可以读取了。(这个选项似乎没有 文件记载过) 6.17 哪儿找得到CD-ROM API的文件资料? 如果您想写自己的应用程式,诸如CD唱片播放程式等,您必须懂得Linux提供的 应用程式介面(application programming interface,API) 原本CD-ROM核心驱动程式都是用自定的ioctl以支援这类机器的功能。 像 /usr/include/linux/sbpcd.h 这样的标头档就描述了这些。 由於很多驱动程式 都是由别的驱动程式发展而来,介面虽不完全相同,但类似之处颇多。 近来,由 David van Leeuwen( [54]david@tm.tno.nl) 发起,建立一组标准化 的CD-ROM 共通 API,将共通程式码放一起, 确保所有驱动程式都同样的运作。 。 这文件在 /usr/src/linux/Documentation/cdrom/cdrom-standard.tex。 已 有几个核心驱动程式支援它了。 到了 2.0 版核心,所有 CD-ROM 驱动程式都合 乎这组 API。 我的书,Linux Multimedia Guide,也深入提到了如何写 CD-ROM 程式, 特别是 放音方面的。 请看"参考文献"那节。 6.18 为什麽我不能看到Windows CD-ROM的长档名? 如果您有一片 CD-ROM,上面有 Windows 可看到,但 Linux 看不到的长档名, 那麽这片光碟可能是使用 Microsoft 专属的 Joliet 档案系统格式。 请看下一 个问题。 6.19 Linux支援Microsoft的Joliet档案系统吗? Microsoft 制定了一种叫 Joliet 的ISO CD-ROM档案系统延伸格式。 它允许使用 16-bit UNICODE 编码的长档名。 从 2.0.34 版核心起,Linux 核心已支援 Microsoft Joliet 档案系统格式。 您 必须在核心中启用它。 如果您要用您使用的语言(native language)正确地显示在 Joliet CD-ROM 上的 档名, 您也需要在核心中支援相应的 NLS ISO8859 字元集。 (译注: 中文的 cp950 还没放进核心中; 请到 [55]http://www.cis.nctu.edu.tw/~is84086/Project/kernel_cp950/ 去抓取修 补档) 6.20 Linux 支援 "加强" 的 CD 吗? 有些音乐片增加了一些资料"强化"。 一般说来您可发现这些 CD 有普通唱片的音 轨, 以及可用 ISO-9660 档案系统挂上的资料轨。 我试了一片"加强版" CD,上面有 Microsoft Windows 及 Apple Macintosh 的应 用程式(当然它们无法在 Linux 上执行,虽然我用了 WINE Windows 模拟器获得 部份的成功)。 上面有些 GIF 影像,可用标准的看图程式像 xv 来看; 或者一些 可用 xanim 播放的 Apple QuickTime 格式影片。 它是多次录制过的,有些很旧 的 CD-ROM 无法读取。 在片子里有个 readme.txt档内有一 Enhanced CD FAQ。 6.21 Linux 有没有支援 DVD-ROM? SCSI 或 ATAPI 相容的 DVD-ROM 应该可以在 Linux 上读取 ISO-9660 格式的片 子。 也就是说它可以当做(可能是更大容量的) CD-ROM 来用。 很多 DVD-ROM 片子使用 UDF 档案系统,在本文撰写时还在发展阶段。 可以在 [56]http://trylinux.com/projects/udf/ 取得核心修补。 然而,我还没听说用软体或配合 DVD 硬体解码器来播放 MPEG-2 格式 DVD 影片 的支援。 显然这个编码格式文件只能花大钱并签下不公开合约(NDA)才能取得。 另外一个因素是 MPEG 解码常需要专属的解码硬体,而厂商不愿提供程式驱动资 讯。 以上因素可能对在 Linux 下任何可自由传播的 DVD 视讯软体构成障碍。 6.22 那 Linux 支援 CD-RW 吗? SCSI 及 ATAPI 相容的 CD-RW 机器在 Linux 下应可以存取 ISO-9660 格式的片 子, 包括写入资料。 很多 CD-RW 片使用 UDF 档案系统,在本文撰写时还在发展中,可以在 [57]http://trylinux.com/projects/udf/ 取得核心修补。 7. 参考文献 首先是我已提过的核心文件档。 一般安装在 /usr/src/linux/Documentation/cdrom 里。 它可算是有用资讯的宝山。 底下的 USENET FAQ 定期在 [58]news.answers 发出,并存放在如 [59]ftp://rtfm.mit.edu/的网际网路档案库中。 * alt.cd-rom FAQ * comp.periphs.scsi FAQ * Enhanced IDE/Fast-ATA/ATA-2 FAQ 一些其它 Linux HOWTO 也提供和 CD-ROM 相关的有用资讯: * [60]SCSI HOWTO * [61]Hardware Compatibility HOWTO (译注: 中文版在 [62]http://www.linux.org.tw/CLDP/Hardware-HOWTO.html) * [63]Sound HOWTO (译注: 中文版在 [64]http://www.linux.org.tw/CLDP/Sound-HOWTO.html) * [65]Kernel HOWTO (译注: 中文版在 [66]http://www.linux.org.tw/CLDP/Kernel-HOWTO.html) * [67]Distribution HOWTO (中文版翻译中) * [68]CD Writing HOWTO (中文版翻译中) 至少有好几家公司卖在 CD-ROM 上的 Linux 安装套件; 多数在 Distribution HOWTO 里都有记载。 以下是和 CD-ROM 有关的 USENET 网路新闻组: * [69]comp.publish.cdrom.hardware * [70]comp.publish.cdrom.multimedia * [71]comp.publish.cdrom.software * [72]comp.sys.ibm.pc.hardware.cd-rom * [73]alt.cd-rom * [74]alt.cd-rom.reviews comp.os.linux网路新闻组也是 Linux 相关资讯的好来源。 在 [75]ftp://ftp.cdrom.com/pub/cdrom/里有一大堆的 CD-ROM 资讯及软体。 在 [76]ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/enhance d-IDE/ 以及 [77]http://www.seagate.com/techsuppt/faq/faqlist.html 中可 找到 IDE 及 ATA 设备的 FAQ 文件。 制定 IDE 协定的 Western Digital 公司,在其 FTP 站也有关於 IDE 协定的文 件,在: [78]ftp://fission.dt.wdc.com/pub/standards/atapi。 有一个关於多媒体的首页可在 [79]http://viswiz.gmd.de/MultimediaInfo/ 中 找到。 Creative Labs 的首页在 [80]http://www.creaf.com/。 Linux软体大地图(LSM)是标定 Linux 软体的无价参考资料。 LSM 在很多 FTP 档 案库, 包括 [81]ftp://metalab.unc.edu/pub/Linux/docs/LSM/(之前的 sunsite)中都有。 也有些网站维护 Linux 应用程式的资料库, [82]http://www.freshmeat.net 是其中之一。 Linux 通信论坛有几个不同主题的讨论"频道"。 若想知道如何参加,寄一封 内 容为"help" 的信到 [83]majordomo@vger.rutgers.edu。 Linux 文件计画(LDP)制作了好几本 Linux 的书,包括 Linux Installation and Getting Started。 这些可从主要的 Linux FTP 档案库免费取得,或是花钱 买硬拷贝型式的文件。 最後呢,虽然有些老王卖瓜之嫌,不过还是容我在此打打小广告: 如果您想学学 更多关於在 Linux 下的多媒体 (特别是关於 CD-ROM 及音效卡应用及程式设计 的),到书店找找我编著的 Linux Multimedia Guide,ISBN 1-56592-219-0,由 O'Reilly and Associates 公司出版。 除了原始的英文版外, 法文版和日文版 也正付印中。 若在北美洲,请电 800-998-9938。 或是光顾以下站台: [84]http://www.ora.com/catalog/multilinux/noframes.html 或本人的网址 [85]http://www.pobox.com/~trant
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -