1. 概述 这是 Linux CD-ROM HOWTO. 编撰它的目的是包含一切在 Linux 安装及建置 CDROM 时所 需的知识, 以供大家快速参考. 它将回答常见的问题, 还有指引其它关於唯读光碟机的 应用及技术方面的参考. 1.1. 铭谢 这里的很多资讯都来自 Linux 核心中的原始码及文件, alt.cdrom 这个讨论区的FAQ, 及 Linux 使用者的惠予. 感谢有 SGML Tools 套件, 以至虽然这分文件有多种格式, 但我只要编写一分原始档就 可以了. 1.2. 英文版版本沿革 Version 1.0 公开的第一份版本. Version 1.1 在 1.1.20 版核心增加了 CDU33A 支援; 加入对 Reveal FX 的消息; 读音轨的资讯; 一 些 alpha 测试中的驱动程式; 加入问题与解决一节; 及一些其它不重要的东西. Version 1.2 在 1.1.33 版以後的核心必须将 ISO-9660 档案系统以唯读方式挂上; 确认 SB16 SCSI 已被支援, 但 Aztech 的新机器则未支援; 加入相片光碟及 xpcd; 还有提示 sbpcd 的 自动退片功能. Version 1.3 从 1.1.49 版核心後, sbpcd 的自动退片取消了. 加入 XA 碟片资讯及辨识方法. Version 1.4 现在 HOWTO 已有别的语言版本了; sbpcd 支援了 IBM 及 Longshine 的机器; Aztech 驱动程式有 alpha 测试版了; CDU-33 不再自动侦测, 并支援相片光碟及唱片; SCSI 光 碟机可以接超过二台; 新的 IDE 驱动程式; 提醒要检查 jumper; 可用 IOCTL 叫 sbpc d 要不要自动退片; 列出有支援多重烧录的机型; CDU-33 的灯闪烁问题. Version 1.5 迟到了好久才完成( 我那时很忙 ); 文件置於 GPL 规则之下; 很多新驱动程式的资讯; 更多设置及解决问题方面的资讯; 加入很多 HTML 连结; 其它很多次要改变. Version 1.6 加入退片程式的连结; 档案权限修补的问题; 连结到 Creative Labs 的网站; 参考 AT A/EIDE FAQ 及 ftp 站; 注意到 Creative Labs 及 Mitsumi 的新光碟机改采 IDE 介面 ; 提到 supermount; 支援抓音轨的资料太旧了, 请参考 cdda2wav; 更多制作 CD 的资 讯; EIDE 多片机种的资讯; 修正一些白字. Version 1.7 新核心版本; 多数 README 档搬到 /usr/src/linux/Documentation 去了; 有些驱动程 式已脱离实验阶段; 更多支援机种; 强调现在多数机种是 IDE/ATAPI 介面的; 加入测速 及随插即用(Plug and Play)支援问题; vger 的通信论檀关闭了; 其它次要改变. Version 1.8 安装後光碟机不能用问题; aztcd 现支援两种 CyCDROM 机器; 千万别在 IDE 光碟机身 上用 sbpcd 驱动程式; 开始支援一些 ATAPI 多片装机种; 提到对印表机介面机种的(缺 乏)支援程度; 最新稳定核心换成 2.0; 其它次要改变. Version 1.9 除去一些非常旧, 现在已经过时的问题; 作者的 E-mail 地址换了; 中文版出来了; 修 正一些软体套件的最新位置; 对多媒体的书写下更多资讯; 一些次要的拼字及文法上的 改变. Version 1.10 认明了新的 Aztech 的机种是 ATAPI 的没错; 加入了 CDU31A 可做成模组的选项; 挂载 CD-ROM 时有选项可读取隐藏档; 加上六个月建议使用期; 书本(指Linux multimedia guide) 的新 URL; 次要的拼字及文字的改变. Version 1.11 加入了印表机介面机种的参考资料; 加上bpcd驱动程式的资讯; 中文版有了新网址; 选 择性的CR-56x驱动程式; 可开机光碟的相关资料; 回答关於CD-ROM API的问题; Linux Multimedia Guide现在有法文及日文译本了. Version 1.12 加入波兰文译本的连结; CD-Writing不再只是mini-HOWTO了; 增加了两个关於Joliet 档 案系统的问题. 1.3. 中文版版本沿革 1.8版 最初的中文版本; 试译版. 1.9版 最初的正式中文版本, 用HTML写成. 1.10版 首页由 www.ncu.edu.tw 移到现在的位置 https://linux.ntcic.edu.tw/~yorkwu/linux /howto/cdrom. 1.11版 首次改成Linux HOWTO的SGML版本. 1.12版 第一次加入中文版沿革资讯. 1.4. 最新版本何处寻 这份文件的新版本将定期张贴到 comp.os.linux.answers 网路新闻组. 它们也会上载到 很多包括 ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ 的匿名 ftp 站. 本文的超文件版及其它 Linux HOWTO 也在很多 WWW 站, 包括 https://sunsite.unc.ed u/mdw/mdw.html. 很多散布的 Linux CD-ROM 也包含 HOWTO, 通常放在/usr/doc/目录里 , 你甚至可向一些业者要印刷版. 然而有时 CD-ROM 里的, 在 ftp 站台上的, 或是印刷 的版本已经显得过时了. 如果在本 HOWTO 上标的日期早於六个月前, 那麽在 Internet 上可能已经有新版了. Bruno Cornec ([email protected]) 写的法文译版可在ftp://ftp.ibp.fr/pu b2/linux/french/docs/HOWTO/ 看到. 箕浦逸史 ([email protected]) 翻译的日文版在https://jf.linux.or .jp/JF/JF.html/. 伍永康 ([email protected]) 翻译的中文版(BIG-5编码)可由 https://linux.ntcic .edu.tw/~yorkwu/linux/howto/cdrom/ 取得. Bartosz Maruszewski ([email protected]) 翻的波兰文译版可在 http: //www.jtz.org.pl/Html/CDROM-HOWTO.pl.html 取得. 多数本文件以及其它Linux HOWTO文件也可以在 https://sunsite.unc.edu/pub/Linux/d ocs/HOWTO/translations/ 及 ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/transl ations/找到. 如果你把它翻成其它语言, 请让我知道, 我会为它在这儿做个连结. 1.5. 回馈 这份 HOWTO 文件, 需要各位使用者帮助, 才能越来越好用. 如果您有任何建议, 修正, 或意见, 请告诉作者([email protected]). 我将会在下一版试著加入这些意见. (译注: 对本中文版的意见, 请告诉译者.) 我也很乐意尽我能力回答关於唯读光碟机及 Linux 的一般问题. 但在这之前, 请先耐心 读完这整篇 HOWTO, 然後再给我和你碰上问题相关的所有细节. 请别问我如何在非 Lin ux 的作业系统上使用光碟机. 如果您在唯读光碟上或以硬拷贝形式发行此文件, 请您附送我一份. 请送到我的真实地 址 . 也请考虑一下对 Linux 文件计画作点奉献, 以支持 Linux 的免费文件. 请和 Li nux HOWTO 协调人 Greg Hankings ( [email protected] ) 联络以得到更多资讯. 1.6. 散布时的注意事项 原作版权为 Jeff Tranter (1995-1997) 所有. 中文版版权为伍永康及 Jeff Tranter (1996-1997) 所有. 这份 HOWTO 是免费文件(free documentation); 你可以在合於 FSF ( 自由软体基金会 ) 出版的 GNU GPL(一般公开授权) 之规定下重新散播 及/或 修改它; 您可以自由决定 适用 GPL 2.0 或之後的任何版本. 希望这份文件的发出对您有帮助, 但我们不 提 供 任 何 保 证 , 即使是 商业上 或 合於某特殊用途 的隐含保证亦然. 详情请参见 GNU 一般公开授权书. 要取得 GNU 一般公开授权书(英文版), 您可以寄信到 Free Software Foundation, In c., 675 Mass Ave, Cambridge, MA 02139,USA. 如何在 Linux 下安装及使用 CD-ROM : CD-ROM 技术 2. CD-ROM 技术 有一本 CD-ROM 的操作手册这麽写著: ``CD-ROM is read-only memory, and audio compact disc system is available as package-media of digital data for those purpose. For playing audio CD, please insert Head-phone jack.'' (`` CD-ROM 是唯读记忆体, 音讯光碟系统是以做为读取数位资料之目的而存在. 要是想 听 CD 唱片, 请把耳机插入耳机洞里. '') 别抓狂 ! CD-ROM 的世界没有你那本操作手册讲得那样令人糊涂. CD-ROM 是 Compact Disc Read-Only Memory 的英文缩写, 它是一种以雷射光来读取在 (polycarbonate) 碟片铝层上的, 在电子显微镜下才能见到的小洞, 以储存大量资料的 媒体. CD 唱片也用相同格式. 因为其高储存量, 及低廉的价格, CD-ROM 已成为日益风 行的储存媒体了. 一片 CD-ROM 碟片约可储存 650MB 的资料, 相当於 500 张 3.5 □高密度软碟片或二十 五万页的打字资料. 第一代的机型( 单倍速机种 ), 提供了约每秒 150KB 的传输率; 这个现在看来已经过时 了. 硬体制造商早已推出二倍速(300kB/s), 四倍速(600kB/s), 六倍速(6X), 八倍速(8 X) 及更高倍速的产品. 多数的 CD-ROM 机器使用小型电脑系统介面(SCSI), ATAPI 加强型 IDE 介面, 或厂商的 专属介面其中之一. 它们基本上也提供从外部耳机或音源线放 CD 唱片的功能. 有些机 器也允许直接从唱片读取数位格式的声音片段. CD-ROM 通常以 ISO-9660 档案系统( 正式名称叫 High Sierra ) 的格式存在. 这格式 限制档名以 MS-DOS (8+3 字元) 形式存在. Rock Ridge Extensions 使用了 ISO-9660 标准没定义的栏位以支援长档名及额外的 UNIX 形式资讯(如档案所有人, 符号连结等 .) 相片光碟是由柯达(Kodak) 发展出的标准, 用来存放以数位方式记录的相片影像到 CD- ROM 上. 你可以在电脑上利用某些软体看这些图片, 操作它, 或送去列印. 也可以不要 一次做完, 稍後再将新相片录进去, 这就是众所熟知的多段录制(Multi-session)能力. 最近又有 CD 烧录器(CD-R), 且越来越普遍. 它使用不同的介质及特殊的方法记录, 但 做出的光碟片可以用任何 CD-ROM 读取. 在将来, CD-ROM 厂商将提供能增加数倍储存量的技术. 如何在 Linux 下安装及使用 CD-ROM :支援的硬体机种 3. 支援的硬体机种 这一节列出了现在 Linux 所支援的唯读光碟机及介面. 资料来源是来自最新的稳定 Li nux 核心, 在写这篇时是 2.0.31. 也有开发版(development) 的核心(2.1.x), 但并不 被认为够稳. 这份资讯目前仅适用於 Intel 平台上的 Linux. 某些资讯也许对其它处理器架构有参考 价值, 不过我对它们没有第一手的经验. 3.1. ATAPI介面唯读光碟机 ATAPI (ATA 封包介面 )是个控制储存设备的协定. 它是建立在给硬碟使用的 IDE 介面 (ANSI 正式名称为 ATA(AT attachment)介面 )上. ATAPI 常用於硬碟, 光碟, 磁带及 其它设备上. 是目前最畅行的介面, 提供了 SCSI 的大部份功能, 但又不需要昂贵的控 制卡及接线. Linux 核心有一个应该是任何 ATAPI 相容光碟机都能驱动的驱动程式. 有 Aztech, Mi tsumi, NEC, Sony, Creative Labs, 以及精英等厂商生产相容的机种. 如果你最近买了 CD-ROM, 特别是四倍速以上的, 几乎都是 ATAPI 的. 3.2. SCSI介面唯读光碟机 SCSI (小型电脑系统界面)是唯读光碟机的一种流行介面. 它的主要优点是相当快的传输 速率, 可接数台设备, 还有多种电脑平台都支援它. 而缺点则是需要相对较贵的控制卡 及接线. 任何区块大小是 512 bytes 或 2048 bytes 的 SCSI 光碟机在 Linux 下应该都能驱动 ; 而在市场上的大多数机种应该都在这□围内. 你也需要一片 Linux 支援的 SCSI 控制卡; 想要更进一步资讯, 请看 SCSI HOWTO. 注意有些光碟机附送一片修改过的, 和 SCSI 不完全相容的控制卡(例如说, 它无法在後 面再接 SCSI 装置). 这些很可能不能在 Linux 下使用. 3.3. 专属介面唯读光碟机 有些光碟机使用专属介面; 通常此介面由音效卡提供. 也有些和音效卡上的等效的简易 介面卡存在. 这些机器趋向於比 SCSI 的便宜及小型. 缺点是缺乏标准及扩充性. 注意有时候专属介面被错误地当成 IDE 介面, 因为就像 IDE 硬碟般, 它们使用以 PC/ AT 汇流排为基础的简单介面. 有些厂商, 特别像 Creative Labs, 出售很多不同型的光 碟机 , 并在其音效卡上提供专属, SCSI 及 ATAPI 介面, 更增添了这项困惑. 底下列出了已知 Linux 支援的专属介面光碟机. 新增的机器的驱动程式可能在新的发展 核心里或是做成核心修补档. 後者通常可在 ftp://sunsite.unc.edu/pub/Linux/kerne l/patches/cdrom/ 中找到. 也请注意核心中的 README 档中的最新资讯, 这些档案通常 在 /usr/src/linux/Documentation/cdrom □. 专属介面 CD-ROM 机种 厂牌 机型 核心驱动程式 附注 ------ ----- ------------- -------- Panasonic CR-521 sbpcd Note 1 Panasonic CR-522 sbpcd Note 1 Panasonic CR-523 sbpcd Note 1 Panasonic CR-562 sbpcd Note 1 Panasonic CR-563 sbpcd Note 1 Creative Labs CD-200 sbpcd IBM External ISA sbpcd Note 2 Longshine LCS-7260 sbpcd Teac CD-55A sbpcd Sony CDU-31A cdu31a Sony CDU-33A cdu31a Sony CDU-535 sonycd535 Note 3 Sony CDU-531 sonycd535 Aztech CDA268-01A aztcd Note 4 Orchid CDS-3110 aztcd Okano/Wearnes CDD110 aztcd Conrad TXC aztcd CyCDROM CR520ie aztcd CyCDROM CR940ie aztcd GoldStar R420 gscd Note 5 Philips/LMS CM206 cm206 Note 6 Mitsumi CRMC LU005S mcd/mcdx Note 7, 8 Mitsumi FX001 mcd/mcdx Note 7, 8 Optics Storage Dolphin 8000AT optcd Lasermate CR328A optcd Sanyo H94A sjcd various various isp16 Note 9 MicroSolutions Backpack bpcd 注意: 这些机种可能以Creative Labs, Panasonic, Matsushita, 或Kotobuki 之名出售. 这一型基本上和 CR-562 是一样的. 也可能以 Procomm 之名出售. 这个驱动程式仅对 CDA268-01A 有效. 其它型式像 CDA268-03I 及 CDA269-031SE 都不 是专属介面, 应该用 IDECD(ATAPI) 驱动程式. 也可能是 Reveal Multimedia Kit 的一部份 飞利浦 CM205 并不被此驱动程式支援, 在 ftp://sunsite.unc.edu/pub/Linux/kernel /patches/cdrom/lmscd0.4.tar.gz 有它的alpha版驱动程式. 也可能以 Radio Shack 之名出售. 这个有两个驱动程式, mcd 是旧版的, mcdx 是新版, 有更多的功能, 但比较不稳. 这个驱动程式是给接在 ISP16, MAD16 及莫札特音效卡上的光碟机用的. 如果上列的机器没被你的核心支援, 你可能需要换新版本的核心. 如果你的机型不是上列的, 特别是如果是最近买的, 四倍速以上, 它很可能是前面所述 的 ATAPI 光碟机. 一个最常犯的错误就是认为一切接在声霸卡上的光碟机都应该用 SB PCD 驱动程式. Creative Labs 及多数厂商早已不卖专属介面的机种了; 它们遵从标准 的 ATAPI/IDE 介面. 3.4. 印表机介面唯读光碟机 有些厂商出售用平行印表机介面来连接电脑的光碟机. 目前唯一为Linux核心所支援的这 型机种为MicroSolutions Backpack. 另外有几种这型光碟机的核心驱动程式以核心修补档或可载入模组的形式存在. 请查照 https://www.torque.net/linux-pp.html 得知最新消息. 3.5. 选择性的驱动程式 Zoltan Vorosbaranyi写了另一个选择性的Panasonic/Matsushita CR-56x驱动程式. 可 以在ftp://ftp.tarki.hu/pub/linux/pcd/pcd-0.29.tar.gz 找到. 4. 在 Linux 下安装 CD-ROM 包含了以下步骤: 安装硬体 设置及重建 Linux 核心 建立设备档及设定启动参数 重新启动 Linux 核心 挂上媒体(片子) 下几节将会详细列出该有的步骤. 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-RO M 的启动磁片, 你可以: 从网路安装 启动DOS, 将 Linux 档案装在你的硬碟上 启动DOS, 一片一片地制作开机安装片 找个可以帮你做支援你 CD-ROM 的启动磁片的人 在 Linux Installation HOWTO 中对安装 Linux 有更详细的步骤. 如果你是买Linux C D-ROM, 经常也会有一些安装指示 (在 CD 盒的小封面底, 或在 CD 的档案里). Linux 刚安装好时, 多数人基於以下原因, 会重新编译核心: 支援 CD-ROM 或其它硬体 升级至更新的核心版本 缩小核心, 节省记忆体资源. 有关建立核心的详情请见 Kernel HOWTO 我只针对和 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 机种, 回答以下问题'y': 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 将是一个很好的参考. 然後你应该照正常的步骤去编译及安装核心. 在你建造设备档及照下一节设定启动参数 前, 不要急著用新造的核心开机! ISO-9660 档案系统及几乎所有 CD-ROM 驱动程式都可被做成可载入模组. 这样子一些核 心驱动程式就不必重开机即可载入及去除. 我建议你先不要做成模组. 可在(核心中)模 组的文件及 Kernel HOWTO 中找到使用模组的方法. 如果列在这里的机器并没有被你的核心支援, 八成需要更新核心... 你也可能要自己抓核心之外的修补档, 这通常牵涉到修补核心. 当然, Kernel HOWTO 也 解释了如何做. 注意新版的核心有个功能表式的设置程式, 可用 make menuconfig 做, 或是 X11 式的 设置程式(用 make xconfig). 三种方法都提供线上求助. (译注: 1.3.xx 版以上才有 menuconfig; xconfig 好像较早就有) 4.3. 建立设备档及设定起动时参数 核心使用特别的档案来辨识该用那个驱动程式. 如果你用的是一个发行的 Linux 套件, 安装後你也许已经有必需的设备档了. 例如说, 在 Slackware Linux 下, 有个选单型 安装程式, 它包含了 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-rw- 1 root disk 22, 64 Feb 4 1995 /dev/hdd 起动 Linux 时, 驱动程式要确定该设备是否存在, 这通常是靠自动侦测. 多数驱动程式 会侦测好几个位址, 但因配备不同. 可能的设备冲突. 及硬体限制, 有时需要手动给予 这些资讯. 多数驱动程式支援从核心的命令列取得这些资讯. 这可以手动输入, 或加在 你的开机载入程式里. 例如说, 你用 LILO 当开机载入程式的话, 你可以在 /etc/lilo .conf 用 append 命令: append = "sbpcd=0x230,SoundBlaster" 请看 LILO 的文件获得更多资讯. 下一节我讨论每一种驱动程式, 它的设备档, 启动参数, 及它们的具备的能力. 你也许 只想看和你的机器有关的部份. 4.3.1. Sbpcd 驱动程式 作者 : Eberhard Moenkeberg ([email protected]) 支援多次烧录碟片?: 是 (但并非所有机种皆可) 支援多台机器?: 是 可做成可载入模组?: 可 可读取数位音轨?: 可 (只有CR-562, CR-563及CD-200) 能自动侦测?: 能 设备档: /dev/sbpcd, 主编号25 设定档: sbpcd.h 核心设定的问题: Matsushita/Panasonic CDROM support? 请另外阅读: ide-cd sbpcd=
1. 概述 这是 Linux CD-ROM HOWTO. 编撰它的目的是包含一切在 Linu