Linux 版 (精华区)

发信人: clx (楚留香), 信区: Unix
标  题: 如何在LINUX下安装CD-ROM
发信站: 紫 丁 香 (Sat Jun 27 10:46:37 1998), 转信

原作者:Jeff Tranter, jeff_tranter@mitel.com
翻译者:York Wu, yorkwu@csie.ncu.edu.tw
翻译日期和版本:10 June 1996 , v1.8
简体中文版维护:dfbb, fangh@bepc3.ihep.ac.cn
维护日期和版本:25,Dec 1996 , v1.8

第一部份: 目录
        ------------------------------------------------------------

                          如何在LINUX下安装CD-ROM

        ------------------------------------------------------------

     这篇文件描述了在Linux下如何安装,设定及使用光驱(CD-ROM).
     它列出支持的硬件,并回答一些常见的问题.
     这也是为了让新手快速上手并减少Usenet 的繁忙流量.
     (译按:在这应该是庞大的BBS灌水量吧!? ;))

---------------------------------------------------------------------------
[ 简介 ]   [ 光驱的科技 ]   [ 支持的硬件机种 ]   [ 安装 ]
[ 应用 ]   [ 常问问题及解答 ]   [ 参考文献 ]
---------------------------------------------------------------------------

1. 简述
      1.1 铭谢

      1.2 版本沿革

      1.3 本文件新版何处寻

      1.4 回响

      1.5 分布注意事项

2. 光驱的科技
3. 支持的硬件机种
      3.1 SCSI接口光驱

      3.2 专属接口光驱

      3.3 ATAPI接口光驱

      3.4 并口机种

4. 安装
      4.1 硬件安装

      4.2 重设定及建立核心支持

      4.3 建造设备档及设定启动时参数

      4.4 启动Linux核心

      4.5 挂上,卸下,及退出片子

      4.6 问题与解决

5. 应用
      5.1 CD音乐播放

      5.2 遗传文件系统

      5.3 相片光碟

      5.4 Mkisofs

      5.5 ISO-9660 公用程序

6. 常问问题及解答
      6.1   没有root权限的人,如何才能挂上及卸下光碟?

      6.2   为何我要卸下光碟时,却得到"设备正忙碌"讯息?

      6.3   如何用NFS,将光碟机和其它机器共享

      6.4   可以用光碟来启动Linux吗?

      6.5   怎样从光碟唱片上抓取数位音轨?

      6.6   为何find命令没法子工作的很正常?

      6.7   请问Reveal Multimedia Effects
                     kit(译:这是什麽?)的光碟机有被支持吗?
      6.8   Linux是否支持任何CD-ROM烧录设备?

      6.9   "mount: Read-only file system when mounting a CD-ROM?"
                     讯息是怎麽回事?
      6.10  我关机时,为何托盘会退出来?

      6.11  我有一片无法挂上的"特别"光碟片

      6.12  为何我的
                     33光碟机的灯在闪?(译:有用CDU-33的人,可以告诉我这怎麽回事吗?)
      6.13  多片式光碟机在Linux下能用吗?

      6.14  我碰到错误:"/cdrom: Permission denied"了!

      6.15  "Matsushita"这个字怎麽发音?

      6.16  我如何解释IDE CD的核心错误讯息?

      6.17  Linux支持"即插即用"设备吗?

      6.18  我如何测试我的光碟机是几倍速的?Linux支持"即插即用"设备吗?

      6.19  Linux装完後,我的光碟机失去作用了!Linux支持"即插即用"设备吗?

7. 参考文献

     _________________________________________________________________

        第二部份: 第一章
----------------------------------------------------------------------------

1. 简介

   这是Linux CD-ROM HOWTO文件.目的是作为一个包含一切关於在Linux下安装和
   设置光驱所需知识的快速参考.
   回答了常见的问题,并且也指引了其它关於光驱的应用及技术的参考.

1.1 铭谢

   这里的很多信息都来自Linux核心码中的README档,
   alt.cdrom这个讨论区的FAQ,及Linux使用者的给予.
   感谢 Linuxdoc-SGML 套件,这份HOWTO有好几种格式,
   但都是由一个共同原始文件所产生的. (译: 等我有空再学学这玩意好了)


1.2 版本沿革

   Version 1.0

          公开的第一份版本

   Version 1.1

          在1.1.20版核心增加了CDU33A支持; 加入Reveal FX的注意;
          读音轨的信息;
          一些初测试(译注:本人觉得alpha,beta用初测试,复测试翻法应该可以吧
          !?)驱动程序; 加入问题与解决一节; 及一些其它不重要的东东.

   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 驱动程序初测试; CDU-33不再自动侦测,并支持相片光碟及唱片;
          可接超过二台 SCSI光碟机; 新的IDE驱动程序; 提醒要检查jumper;
          可用IOCTL叫sbpcd要不要 自动退片; 列出有支持多重烧录的机型;
          CDU-33的灯闪烁问题

   Version 1.5

          过了好久完成(我那时很忙); 文件置於GPL规则之下;
          很多新驱动程序的信息; 更多设置及解决问题的信息;
          加入很多HTML连结; 其它很多次要改变

   Version 1.6

          加入退片程序的连结; 文件权限修补的问题; 连结到Creative
          Labs的Web站; 参考ATA/EIDE FAQ及ftp站; 注意到Creative
          Labs及Mitsumi的新光碟机改成IDE 接口; 注意supermount;
          支持抓音轨的资料太旧了,请参考cdda2wav; 更多制作 CD的信息;
          EIDE多片机的信息; 修正一些白字.

   Version 1.7

          新核心版本;
          多数README档搬到/usr/src/linux/Documentation去了;有些驱动程序
          已脱离实验阶段; 更多支持机种; 强调现在多数机器是IDE/ATAPI接口;
          加入测速及即插即用支持问题; vger的送信讨论关闭了; 其它次要改变

   Version 1.8

          安装後光碟机不能用问题; aztcd现支持两种CyCDROM机器;
          千万别用sbpcd 在IDE光碟机身上; 一些ATAPI多片机种开始支持;
          注意到(缺乏)对并口机器的支持; 最新稳定核心换成2.0;
          其它次要改变;

1.3 最新版本何处寻

   这份文件的新版本将定期贴到 comp.os.linux.answers网路新闻组.
   它们也会上载到很多包括
   ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/的匿名ftp站.

   本文的超文件版及其它Linux HOWTO也在很多WWW站,包括
   http://sunsite.unc.edu/mdw/mdw.html 很多Linux
   CD-ROM(distribution怎麽翻好?)也包含HOWTO,通常在
   /usr/doc/目录里,你甚至可向一些 业者要纸上版

   Bruno Cornec ( cornec@stna7.stna.dgac.fr) 写了法文翻译,可在
   ftp://ftp.ibp.fr/pub2/linux/french/docs/HOWTO/看到

   Itsushi Minoura(译: 下次再看看汉字怎麽写)
   ( minoura@uni.zool.s.u-tokyo.ac.jp ) 将它翻成日文,请到
   http://yebisu.ics.es.osaka-u.ac.jp/linux/去看

   如果你把它翻成其它语言,请让我知道,我会为它在这儿做个连结

1.4 回馈

   这份HOWTO文件,需要各位使用者帮助,才能越来越好用. 如果您有任何建议,
   修正, 或意见, 请告诉我 我将会在下一版试著加入这些意见.

   我也很乐意尽我能力回答关於光驱及Linux的一般问题. 但在这之前,
   请先耐心读完这整篇HOWTO,然後再给我和这问题相关的所有细节.

   如果您在只读光碟上或以硬拷贝形式发行此文件,请您附送我一件.请送到我的
   真实地址(不是E-mail地址 ;-) )也请考虑一下对Linux文件计画作点奉献,
   以支持 Linux的自由文件(免费文件?) 请和Linux HOWTO协调人Greg Hankings
   ( gregh@sunsite.unc.edu)联络以得到更多信息.

1.5 分布注意事项

   原作版权为Jeff Tranter (1996)所有

   这份HOWTO是免费文件; 你可以在合於FSF(自由软件基金会)出版的GNU GPL
   (一般公开授权)之规定下重新散播及/或修改它; 不论是在第二版的GPL
   或之後的任何版本均随您意.

   这份文件我们希望对您有用,但我们不提供任何保证,即使是商业上或
   合於某特殊用途的隐含保证亦然. 详情请看GNU一般公开授权书.

   要取得GNU一般公开授权书(英文版),您可以寄信到Free Software Foundation,
   Inc. , 675 Mass Ave, Cambridge, MA 02139,USA.

        第三部份: 第二章
----------------------------------------------------------------------------

2. CD-ROM 技术

 有一本CD-ROM的操作手册这麽写著:
" CD-ROM是只读记忆体,音讯光碟系统是以做为读取数位资料之
目的而存在.  想听CD唱片,请把耳机插入洞里"

别急躁! CD-ROM的世界没有你那本操作手册讲得那样令人糊涂.

   CD-ROM是Compact Disc Read-Only Memory的英文缩写,它是一种以雷射光来读取
   在(polycarbonate是什麽?)碟片铝层上的,在电子显微镜下才能见到的小洞,以储
   存 大量资料的媒体. CD唱片也用相同格式. 因为其高储存量,及低价格,
   CD-ROM已成为 日益风行的储存媒体了.

   一片CD-ROM碟片约可储存650MB的资料,相当於500张3.5□高密度软碟片或250,000
   页的打字资料.

   第一代的机型(单倍速机种),提供了约每秒150KB的传输率; 这个现在看来已经
   过时了. 二倍速 (每秒300KB)已极为普遍, 很多使用者现在正把目标指向四倍速
   (每秒600KB)或更快的机种.

   多数的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厂商将提供能增加相当程度储存量的技术.

-----------------------------------------------------------------------------

        第四部份: 第三章
----------------------------------------------------------------------------

3. 支持的硬件机种

   这一节列出了现在Linux所支持的光驱及接口.
   资料来源是来自最新的稳定 Linux核心,现在版本是2.0

   这份信息目前仅适用於Intel平台上的Linux.
   某些信息也许对其它处理器架构有参 考价值,不过我对它们没有第一手的经验.

3.1 SCSI接口光驱

   SCSI(小型电脑系统界面)是光驱的一种流行形式.它的主要优点是相当快的
   传输速率,可接多设备及多种电脑平台都支持它.而缺点则是需要相对较贵的控制
   卡及 接线.

   任何区块大小是512 bytes或2048 bytes的SCSI光碟机在Linux下应该都能用;
   在市场上的机种应该都包括在内.

   你也需要一片Linux有支持的SCSI控制卡;想要更进一步信息,请看 SCSI HOWTO.

   注意有些光碟机包含了一个修改过的,和SCSI不完全相容的控制卡(例如说,
   它无法在後面再接SCSI装置).这些很可能不能在Linux下使用.

3.2 专属接口光驱

   有些光碟机使用专属接口; 通常此接口由音效卡提供. 也有些和音效卡上的等同
   的简易接口卡存在.这些机器趋向於比SCSI的便宜及小型(译:我没觉得比较"小"
   耶!?) 缺点是缺乏标准及扩充性.

   注意有时候专属接口被错误地当成IDE接口,因为就像IDE硬碟般,它们使用以PC/AT
   插槽为基础的简单接口.有些厂商,特别像Creative Labs,出售很多不同型的
   光碟机,并在其音效卡上提供专属,SCSI及ATAPI接口,更增添了这项困惑.

   底下列出了已知Linux有支持的专属接口光碟机.新增的机器的驱动程序可能在新
   的 发展核心里或是做成核心补丁.後者通常可在
   ftp://sunsite.unc.edu/pub/Linux/kernel/patches/cdrom/
   中找到.也请注意核心中的README档,通常在/usr/src/linux/Documentation/cdrom
   □,包含最新信息.

                Proprietary CD-ROM Drives

Vendor          Model           Kernel Driver   Notes
厂牌            机型            核心驱动程序    附注
------          -----           -------------   --------
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
Orchid          CDS-3110        aztcd
Okano/Wearnes   CDD110          aztcd
Conrad          TXC             aztcd
CyCDROM         CR520ie         aztcd
CyCDROM         CR940ie         aztcd
GoldStar        R420            gscd            Note 4
Philips/LMS     CM206           cm206           Note 5
Mitsumi         CRMC LU005S     mcd/mcdx        Note 6, 7
Mitsumi         FX001           mcd/mcdx        Note 6, 7
Optics Storage  Dolphin 8000AT  optcd
Lasermate       CR328A          optcd
Sanyo           H94A            sjcd
various         various         isp16           Note 8

   Notes:
    1.   这些机种可能以Creative,Labs,Panasonic,Matsushita,或Kotobuki之名出售.
    2.   这一型基本上和CR-562是一样的
    3.   也可能以Procomm之名出售
    4.   也可能是Reveal Multimedia Kit的一部份
    5.   飞利浦CM205并不被此驱动程序支持.
    6.   也可能以Radio Shack之名出售
    7.   这个有两个驱动程序,mcd是旧版的,mcdx是新版,发展中的驱动程序,有更多
         的特点,但比较不稳.
    8.   这个驱动程序是给接在ISP16,MAD16及莫札特音效卡上的光碟机用的.

   如果上列的机器没被你的核心支持,你可能需要换新版本的核心

   如果你的机型不是上列的,特别是如果是最近买的,四倍速以上,它可能是下一节
   所述的ATAPI光碟机.一个最常犯的错误就是认为一切接在声霸卡上的光碟机都应
   该用SBPCD驱动程序.Creative Labs及多数厂商早已不卖专属接口的机器了;
   它们遵从标准的ATAPI/IDE接口.

3.3 ATAPI接口光驱

   ATAPI(ATA封包接口)是和SCSI类似,控制储存设备的协定.它是建立在给硬碟使用
   的IDE接口(ANSI正式名称为ATA(AT连接)接口)上.ATAPI常用於硬碟,光碟,磁带及
   其它设备上.是目前最畅行的接口,提供了SCSI的大部份功能,但又不需要昂贵的
   控制卡 及接线.

   Linux核心有一个应该是任何ATAPI相容光碟机都能用的驱动程序.制作和这相容
   的机器厂商有Aztech,Mitsumi,NEC,Sony,Creative Labs,以及精英.
   如果你最近买了 CD-ROM机器,特别是四倍速以上,几乎都是ATAPI的.

3.4 并口光驱

   有些厂商卖接在PC的印表机接头的光碟机.标准的Linux核心并不支持这些机种,
   而且我也不知道有谁在开发这种驱动程序.

 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.   从网路安装
    2.   启动DOS,将Linux文件装在你的硬碟上
    3.   启动DOS,一片一片地制作开机片
    4.   找个可以帮你做支持你CD-ROM的启动磁片的人


   在 Linux Installation HOWTO中对安装Linux有更详细的步骤.
   如果你是买Linux CD-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机种,用yes回答以下问题:

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做,或是
   X-11式的设置程序(用make xconfig). 三种方法都提供线上求助.


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


   核心使用特别的文件来辨识该用那个驱动程序. 如果你用的是一个发行的
   Linux,安装後你也许已经有必需的设备档了. 例如说, 在Slackware Linux下,
   有个选单型安装程序,它包含了CD-ROM安装. 多数系统也有/dev/MAKEDEV这个
   叙述档(script). 如果你不用这些方法,你可用像以下的更加手动的 方法做.
   即使你用了"较自动"的装法,仍然建议你再确认一下, 以确保它们的正确性.




   你可以用指出你机器型式的命令建立设备档. 这应该可用root 这个身份完成.
   注意有些Linux散布(有更好的译名吗?)用的名称可能不太一样.

   另外也建议你建立一个符号连结,这会好记一点.例如说,对一台Panasonic接口的
   机器来说,可以如下般建立:

% ln -s /dev/sbpcd /dev/cdrom

   如果你想放唱片,你就要设定保护(不是符号连结档,是真正的设备档!),
   使其它人也可读写(不是CD-ROM可写,是device file可写!)

% chmod 666 /dev/sbpcd
% ls -l /dev/sbpcd
brw-rw-rw-   1 root     disk      25,   0 Jul 18  1994 /dev/sbpcd


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

append = "sbpcd=0x230,SoundBlaster"


   请看LILO的文件获得更多信息


   下一节我讨论每一种驱动程序,它的设备档,启动参数,及它们的能力.
   你也许只想看和你的机器有关的部份

  Sbpcd Driver


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

sbpcd=,

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

可照下面建立设备档:

% mknod /dev/sbpcd b 25 0

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

请看sbpcd以获得更多信息

如果你最近才买,不要假设接声霸卡的就应该用这驱动程序. 现在Creative
 Labs 卖的多半是EIDE/ATAPI的机种了. 请别在用它驱动IDE CD-ROM不成後
反来怪罪作者. 我把README档中的内容再标注一次:

sbpcd真的,真的不是给任何IDE/ATAPI机器用的!

甚至即使你的是"正牌的"蛆DE接口的声霸卡! 所以,如果你的埠位址是0x1f0,
0x170, 0x1e8, 0x168或类似的, 你最好去看README.ide.

我已经从IDE/ATAPI机器的使用者那收到好几吨的信了! 我已经回得没力了. 所以,如果
你的说明书有提到IDE,primary,secondary,tertiary或quaternary字眼,而且DOS driver
使用比0x230小的位址:

不要让我神经衰弱 - 把你的卡调到0x170及irq 15(这是secondary IDE的设定)
然後用ide-cd当你的驱动程序. 如果你没有第二台硬碟,使用底下所述LILO命令:

   hdb=noprobe hdc=cdrom

然後碰运气了.

好吧! 让你完全搞清楚: 如果你寄关於IDE/ATAPI的机器问题,我的回答就在上面.
我不会再回信了,这样才能防□洪水般的信件,我才能找时间陪陪我十二岁的儿子
打电脑.

  Sonycdu535 Driver

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

 这个驱动程序的命令行是这样的:

sonycd535=

io-address是基底位址(如0x320). 不然你也可以写在sonycd535.h里编译.

设备档这样建立:

% mknod /dev/sonycd535 b 24 0

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

这个驱动程序原本只是修补,不过现在已是标准核心的一部份了. 请参考
sonycd535这文件.

  Cdu31a Driver

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

 这个驱动程序的命令行是这样的:

cdu31a=,,PAS

第一个参数是I/O基底位址(如0x340). 第二个是中断号码(0代表不用中断,用
轮询),第三个参数只有在连接Pro Audio Spectrum 16音效卡时要加,固定是PAS.
(译注:这恐怕是唯一可不占IRQ的驱动程序了,但用轮询对多工非常不利,不建议.)

设备档这样建立:

% mknod /dev/cdu31a b 15 0

请参见cdu31a文件

这个驱动程序也有个Web首页,可在
http://www.infinet.com/~zureal/cdu31a.html找到. 作者是Jeffrey Oxenreider
(zureal@infinet.com),包含了许多
此驱动程序的常见问题.

  Aztcd Driver

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

核心命令行:

aztcd=

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

设备档:

% mknod /dev/aztcd0 b 29 0

请参考aztcd档

  Gscd Driver

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

核心命令行:

gscd=

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

设备档:

% mknod /dev/gscd0 b 16 0

请参考gscd及
http://linux.rz.fh-hannover.de/~raupach以取得更多信息.

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

这是旧版的Mitsumi机器驱动程序,存在很久了.你也许想用新的mcdx驱动程序,
它提供更多功能,但目前仍在实验阶段

核心命令行:

mcd=,

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

设备档:

% mknod /dev/mcd b 23 0

详情参阅mcd

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

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

核心命令行:

mcdx=,

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

设备档

% mknod /dev/mcdx0 b 20 0

如果你最近买Mitsumi机器,不要假设它应该用这驱动程序; 现在Mitsumi
也只做EIDE/ATAPI机种了,应该用idecd驱动程序.

详见mcdx档

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

核心命令列:

cm206=,

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

设备档:

% mknod /dev/cm206cd b 32 0

详见cm206档

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

核心命令列:

optcd=

参数是I/O基底位址

设备档:

% mknod /dev/optcd0 b 17 0

详见optcd档

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

核心命令列:

sjcd=,,

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

设备档:

% mknod /dev/sjcd b 18 0

详情见sjcd文件

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

对每一种不同的SCSI卡而言,用的命令列参数不一样,请参考
SCSI HOWTO.
可以接多台机器(至多接到SCSI bus能接的最多台).设备档主编号是11,次编号由0起算:
(译注:最多可有256个SCSI CD-ROM设备档,不过事实上极难做到...光碟塔...嗯...)

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

  IDECD DRIVER
                  作者 : Scott Snyder (snyder@fnald0.fnal.gov)
      支持多次烧录碟片?: 是
          支持多台机器?: 是
      可做成可载入模组?: 不可
        可读取数位音轨?: 可
            能自动侦测?: 能
                 设备档: /dev/hd{b,c}, 主编号 22
                 设定档: cdrom.h
         核心设定的问题: Include support for IDE/ATAPI CDROMs?
             请另外阅读: 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可能有点麻烦,特别是你有超过二台设备或
超过一个IDE接头. 通常这需要由LILO送出正确的命令列参数.

/usr/src/linux/Documentation/ide-cd这文件有详细介绍,请仔细看.

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

4.4 起动Linux核心

你可以用新核心启动了. 请注意看一下类似以下的讯息,它指出CD-ROM驱动程序
有没有发现你的CD-ROM(讯息会因你用的CD-ROM种类不同而有变化)

SBPCD: Trying to detect a SoundBlaster CD-ROM drive at 0x230.
SBPCD: - Drive 0: CR-562-x (0.76)
SBPCD: 1 SoundBlaster CD-ROM drive(s) at 0x0230.
SBPCD: init done.

如果讯息卷动得太快了,你应该可以用dmesg或tail /var/adm/messages来
查看.

如果没有找到该机器,或有问题出现,请看"问题与解决"一节.

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

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

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

现在你可以存取CD上的东西了;它们全在/mnt里. 注意/mnt常用来当做暂时的
挂载点; 如果要长久的挂载,一个像/cdrom的目录看起来更合适. 你也可能想用
一些mount的选项; 请看mount(8)这个说明页.

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

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

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

% umount /mnt

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

注意不要在碟片还在挂载中时退出片子(这个因CD-ROM种类而可能或不可能发生.)
(译注:有些光碟机挂上时会把面板锁定,就无法退片了,当然不会不小心按到退片钮
而将片子退出). sbpcd驱动程序可以在卸下时自动退片,而挂上时自动自动进片.
(你可以重新编译核心或用软件命令关闭这功能)

也有可能在放了CD唱片後,无法挂上CD-ROM片子了.这时你要用CD播放程序
送出"停止"命令後再尝试挂上. 这问题只在sbpcd驱动程序出现过.

Stephen Tweedie (sct@dcs.ed.ac.uk)
写了一个叫Supermount的程序提供了包括CD-ROM的可移动媒体的透明化挂载能力.
(译:这是什麽?) 你可以在

ftp://sunsite.unc.edu/pub/linux/patches/diskdrives/找到.

4.6 问题与解决

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


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


你可以检查核心中的时戳,看看是不是有包含支持CD-ROM的版本. 你可以
用uname这个命令来检查:

% uname -a
Linux fizzbin 2.0.0 #1 Fri May 17 17:35:40 EDT 1996 i386

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

% cat /proc/version
Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Fri May 17 17:35:40 E
DT 1996

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


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

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

% cat /proc/devices
Character devices:
 1 mem
 4 tty
 5 cua
 6 lp
14 sound
15 Joystick

Block devices:
 2 fd
 3 hd
25 sbpcd

首先看你的CD-ROM驱动程序. CD-ROM都是区块设备. 在此例中我们见到sbpcd驱动
程序. 当然,ISO-9660文件系统也要确认有编进来.
这可由/proc/filesystems这文件内容得知:

% cat /proc/filesystems
        ext2
        msdos
nodev   proc
        iso9660

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

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

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


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


当核心起动时,确定你的CD-ROM被侦测到了. 应该在开机讯息里可以看到.
如果讯息卷动太快,看不到,你可以用dmesg命令来叫回它:

% dmesg

或者

% tail /var/adm/messages

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

有些驱动程序用自动侦测,有些不用,而且自动侦测也不是完全可信的.
使用你的驱动程序提供的核心命令列选项. 如果你不是很确定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身份执行挂上
命令.

若是ATAPI的机种,你可能要指示mount用2048 bytes当区块大小. 挂载时加入
"-o block=2048"这选项.

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

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

如果你有跑syslog,那可能有些讯息你没看见. 试试dmesg命令:

% dmesg
SBPCD: sbpcd_open: no disk in drive

错误也可能记录在/var/adm目录下的文件中,全看你的系统怎麽设的.


  消除听歌时的问题


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

你需要些可放唱片的软件. 有些程序可能和你的机器不相容. 试试其它的
或重新编译它.

有些CD-ROM不支持放唱片. 检查README档或原始码看看是不是这情形.
(译注:我想有耳机洞的应该不可能不能放吧!?)

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


  要是一切都没用呢?


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

       小心地重读这份HOWTO文件
       读文後列出的参考文件,特别是相关的核心原始码的README档.
       在comp.os.linux或其它USENET新闻组贴帖子,问问题.
       送一个问题到Linux信件讨论列(译:嗯...)
       用最新版的Linux核心
       向店家求救
       找你的CD-ROM厂商
       寄封信给相关驱动程序的作者
       寄信给我(译:现在别寄太多信给我,我的时间不是很多)
       叫出emacs,打入"ESC-x","doctor"
       (译:我不会emacs,有人看得懂吗?告诉我这是不是笑话...)


-----------------------------------------------------------------------------

 5. 应用


   这一节简要地列出在Linux下CD-ROM的主要应用. 查阅Linux Software Map
   看看它们在何处及最新是第几版.


 5.1 CD唱片播放程序


   有好些程序有能力放唱片,可从耳机洞或音效卡出声.

   Workman

          一个在X11下的图型化播放机,支持CD资料库及很多特点.

   WorkBone

          一个互动性的文字模式播放机

   xcdplayer

          一个X11下的简单播放机

   cdplayer

          非常简单的命令列播放器

   Xmcd

          一个X11/Motif的播放器

   xmitsumi

          另一个给Mitsumi机器用的X11下播放程序
          (译:功能相当强,另附一个命令列播放器cda)

   xplaycd

          另一个X11的播放器,包含一个混音器及VU表程序
          (译:啥是VU表?)

   cdtool

          命令列播放CD唱片的工具


   以上有些程序可能程序里规定用某个设备档(如/dev/cdrom). 你可能可以用参数
   指示它用什麽设备档,或你也可在/dev下建符号连结.
   如果将声音送到音效卡,你可能
   想用混音器来调音量或选择CD-ROM输入当录音源.


 5.2 继承文件系统


   继承文件系统(IFS,Inheriting file system)(译注:和OS/2的IFS意思不同)
   是个可让多个文件系统挂在同一个目录下的核心驱动程序. 它有点像SunOS的
   半透明文件系统. 如果把一个硬碟目录挂在CD-ROM的文件系统上, 那你就等於
   有了"可写的"CD-ROM文件系统.

   目前尚在实验中的版本是写给0.99pl11及pl12的核心的; 它不一定能在更新的
   核心上使用. 作者是Werner Almesberger (almesber@bernina.ethz.ch).


   另一个叫使用者文件系统(译注:不是UFS)是提供类似功能的另一可能途径.


 5.3 相片光碟


   相片光碟利用ISO-9660文件系统存放专属格式的影像档. 并非所有CD-ROM都支持
   读取相片光碟.


   Hadmut Danisch写的hpcdtoppm程序可将像片光碟文件转成可转移式点图(ppm,
   portable pixmap)格式. 它可经由
   ftp://ftp.gwdg.de/pub/linux/hpcdtoppm取得,或在很多文件库中可取得的
   PBM(portable bit map)公用程序里面.(请查询"pbm"或"netpbm")


   Gerd Knorr(kraxel@cs.tu-berlin.de)
   写的photocd程序可将相片光碟转成Targa或者Windows及OS/2用的BMP档.


   这位作者也写了xpcd,一个可处理相片光碟影像的X11软件.
   你可以用滑鼠选择影像, 在小视窗中浏览,或用五种解析度看它.
   你也可选定影像的一部份,只载入它们. xpcd可在
   ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc/中找到.


   ImageMagick影像档操作程序也支持像片光碟文件. 它在
   ftp://ftp.x.org/contrib/applications/ImageMagick/ 里.


 5.4 Mkisofs


   Eric Youngdale的mkisofs套件允许你在硬碟上建立ISO-9660文件系统.
   这样可以帮助你深入了解光碟,也能在烧光碟前先测试其文件系统.


   真正烧光碟的程序几乎都和厂商有关. 它们也要求写资料时不能有任何中断,
   所以像Linux这种多工作业系统并不是很适合这种工作.


 5.5 ISO-9660 公用程序


   有些公用程序可以确认ISO-9660格式化的碟片是否正确. 你也许会发现在测试
   奇怪的CD时会有用.这玩意可在
   ftp://ftp.cdrom.com/pub/cdrom/ptf/中找到.作者是Bill Siegmund及Rich
   Morin.

6. 常见问题与解答

6.1 没有root身份者如何挂上及卸下光碟片?


   有些mount命令支持user选项. 假设你在/etc/fstab里加入了这样一行:

/dev/sbpcd  /cdrom   iso9660     user,noauto,ro


   那麽普通使用者就可以这样挂上或卸下这台机器的资料:

% mount /cdrom
% umount /cdrom


   挂上程序将会加上一些额外选项以保持系统安全(例如:程序不准执行,
   片子上的设备档将失效(不予理会)); 在有时候这当然限制严了点.


   另一个办法就是抓usermount,它允许非root之使用者挂上/卸下可移除设备如
   软碟及CD-ROM等,但限制对其它设备的动作(如硬碟分割区).
   它在主要的文件库都有.


   在ftp.cdrom.com里有mount.c的原始码,它允许一般使用者挂上/卸下CD-ROM.
   它必需要setuid才能这麽做.

   (译注:setuid是指,将执行档执行时的权限变成和执行档所有人相同.普通执行档
   执行时权限是执行者的权限,这样的话很多程序都不能跑(如:你不能修改/etc/pa
   sswd, 所以不能变更密码.
   但如果是setuid,又是root所有的程序,执行时就有root权力,
   所以就能更改了.). 不过setuid反过来也可能是系统安全的主要漏洞)


6.2 为何我在卸下CD-ROM时电脑说:device is busy?

如果有任何程序正在存取这机器,包括它们的现行目录正在它上面,那就不能卸下.
如果你实在不晓得那个程序正在使用这片光碟,你可以像下例一样的用fuser命令:

% umount /cdrom
umount: /dev/sbpcd: device is busy
% fuser -v /cdrom
/cdrom:               USER       PID ACCESS COMMAND
                      tranter     50 ..c..  bash

6.3 我如何将CD-ROM用NFS与其它电脑共享?

你需要在/etc/exports档中加入一个项目; 请看exports(5)这份说明页.

6.4 我能用CD-ROM起动Linux吗?

由CD-ROM起动Linux的最简单方法是用开机磁片. 有一些Linux的CD-ROM
(如Yggdrasil)本身就有一片,或者你可以用在一个Linux分布(如Slackware)
里,包含必需的CD-ROM驱动程序的开机片.

在将来,如果ROM BIOS有这功能的话,也可能从ATAPI CD-ROM来开机.

(译注:若SCSI BIOS有支持,SCSI CD-ROM也是可开机的,不过目前我只知道
AHA-1542CF有支持而已,其它我不知道)

6.5 我怎样从CD唱片直接抓取数位音轨?

Heiko Eissfeldt (heiko@colossus.escape.de) 和Olaf
Kindel写了一个公用程序可以读取音讯资料,并将它存成.wav格式的声音档.这个
程序叫cdda2wav.tar.gz,可以在sunsite.unc.edu找到.

因为CD-ROM世代交替太快了,很难列出哪些CD-ROM可读取数位音乐资料. 你最好的
赌注是抓最新版的cdda2wav套件,并读它的文件.要更进一步的信息,也请看在
参考文献中的alt.cd-rom FAQ.

6.6 为什麽find命令不太正常?

在没有Rock Ridge Extension的ISO-9660光碟上,你需要在find後加上-noleaf这选项.

造成这现象的原因是每个目录档的连结数并不容易求得,所以我们设成2. 然而
find程序却做了一个最佳化,它对每个目录只检查(i_links-2)个子目录,其它都当
做普通文件.-noleaf选项关闭这个最佳化.

6.7 Reveal Multimedia Effects kit 的CD-ROM有支持吗?

以下内容由 Steve HorneHorne@cmod2.pfc.mit.edu 提供.
它只对某些Reveal的CD-ROM有用; 较新的都配Panasonic的机种,可用sbpcd驱 动程序.)

大概是一年前吧, 我买了Reveal CD/soundcard kit, 设法让这奇怪的东东在我
的Linux上能用. 我张贴过我让它可用的一些小技巧,它列入了CD-ROM HOWTO.
最近,我每周都会收到一堆请求,希望我能让Reveal kits能在Linux下工作.

先声明我不是专家. 我所做的就是紧逼Reveal的技术支持部直到他们告诉我那个
很特殊的port位址. 然後连接两条SOUND-FX的线到CDU-31A. 我不知道怎样帮助E-mail
我的多数人,这是我打算给他们的笔记. 把它浓缩到HOWTO里的合适等级应该是不错
的主意. 另外,我不希望给大家一个"它是Linux系统的好选择"的印象. 不,绝不是.

在Linux上装 REVEAL的卡

大略:

       不要买.
       如果你已经有了,又有Sony的机器,你可以使用CD.
       如果你的不是Sony的CD-ROM,那也许能用,不过我不确定,因为我的是Sony的.
       Sony的支持很烂. 如果Aztech能提供程序设计信息,那就有点希望.

File print:

如果你用的是Sony的CD-ROM,那cdu31a驱动程序可以用. 你要先在核心加入cdu31a 支持.
以下是cdu31a的原始程序的注解:

 *(警告 -       现在已将自动侦测功能去除了. 你 必须 在起动时或在lilo.conf
 *              中设好cdu31a的参数. 我在lilo.conf加入了:)
 *
 *                append="cdu31a=0x1f88,0,PAS"
 *
 *              (第一个数字是卡的I/O基底位址.第二个是中断(0代表无)
 *              第三个应该是PAS,如果连接Pro-Audio spectrum的话,
 *              否则就不要加.)

我推断Reveal卡的对应行是

append="cdu31a=0x654,0"

我并不总是用LILO,所以我把一些条件编译去掉,将自动侦测弄回来,不过把我的位址
放在最前面.(文件是/usr/src/linux/drivers/cdrom/cdu31a.c,
找出cdu31a_addresses这个字串就能发现重点.)

这招对非Sony的机器是无效的!(我并不是很懂,不过能用我才觉得奇怪)

和Sony情况类似,我想用Panasonic或Mitsumi的人,你必须先联络Reveal的
技术支持部,以得知你的基底位址,然後用你的驱动程序.(我不知道sbpcd是否能用,
也许吧. 不管怎样,你一定要知道位址.)我也不知道append在别种机种能否使用.

在你能起动以前,不要修补驱动程序或lilo.conf.如果你是从无开始(只有DOS,
无Linux)那你有一些地方可以试试 --

    1. 将安装档拷到DOS分割区去,然後从这里装.这样大概要耗去90MB左右的DOS分
       割区.
       当系统装好你就可施行以上的技巧.你可以只安装A,AP及D(如果用Slackware
       )加上 核心原始码(Q?)这些给你修补及建立核心的工具.
    2. 如果你用Sony
       CD或有自信的话,请一位朋友给你一份修补过的核心(自动侦测,
       你的位址第一)如常地rdev:

rdev  /dev/fd0 /dev/fd0                 ; root=floppy
rdev -r /dev/fd0 1440                   ; ramdisk
rdev -t /dev/fd0 -3                     ; prompt for screen mode

       然後使用它开动安装的root片. 做一个挂载点以免干扰安装程序:

# mkdir /cd
# mount -r -t iso9660 /dev/fd0 /cd

       然後用"由挂上的目录安装"选项.当然,在光碟上的核心并不合你所需;
       你必须拷贝你自己的核心.

    3. 有一个新的叫LOADLIN的东西,可从DOS起动Linux,也许能救你(我没试过).
       我相信它可以像LILO一般传送一些资料给核心,所以可能可以先起动DOS,
       然後将硬件位址藉LOADLIN传给驱动程序.我没有尝试过.


音效的支持

这片卡(ISC-400)并未被Linux好好地支持, 这有些丢脸,因为它看来是个很便宜
的东西.这片卡能在8位元SB模式产生声音. 我没法让它的混音器起作用,所以录音效果
也不好. MSS模式不占IRQ;我不知怎样传参数给驱动程序,所以也不能用. AdLib
相容模式也没发现能用.

我尝试过,而且至少有另一人也尝试过,取得这片卡原始模式的程序设计资料.
在打了几个小时的电话後, 我打到新加坡方才搞定.(这句翻得可能有问题).
如果我有一天对声音认真起来,我会再买一片正牌的声霸卡.

6.8 Linux支持任何CD-ROM的烧录设备吗?

根据Adam J. Richter adam@yggdrasil.com的说法:

Yggdrasil的Linux可以驱动挂在Adaptec AHA-154x这片SCSI卡上的飞利浦CD烧录机.
我不确定其它的SCSI卡能不能用. 你可以用mkisofs建立ISO-9660文件系统,然後用
cdwrite来烧录CD. 如果你希望我们帮这个忙,你可以打900技术支持专线:
1-900-446-6075转835(每分钟$2.95,仅限於美国)

George Moody,george@hstbme.mit.edu 回报说:

我用mkisofs(从tsx-11.mit.edu及其它标准来源)及cdwrite(从ftp.yggdrasil.com)
,使用以下的软硬件来烧CD:

       飞利浦 CDD522 CD烧录器
       Seagate ST15150N 硬碟(4.1GB "梭鱼"型,非AV硬碟)
       NCR B355 PCI SCSI卡(使用NCR 53C810,在PCI HOWTO里被称赞又便宜又快)


硬碟和CD烧录机在同一条SCSI插槽上. 我的电脑用Pentium 100跑Linux 1.2.12.
我用的是标准NCR PCI-SCSI驱动程序,不是後来的那个听说有支持断接/续接功能的.
我可用二倍速将在ext2fs及MSDOS文件系统上的映像档烧进光碟(我没试过直接从
硬碟设备拷贝,因为我没分出这样的分割区). 唯一问题就是有时当我写定CD时,
电脑会卡住. 不过只要我重开机就没事了,包括刚刚我烧好的那片碟子. 我是以root
身份跑cdwrite的,有时也跑跑X和轻负载的X11软件,不过我在烧CD时会尽量不去做
其它的事.

也请参考Linux CD-Writer mini-HOWTO文件,可在
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/CD-Writer
或http://sunsite.unc.edu/mdw/HOWTO/CD-Writer.html 处找到.

(译注:有位仁兄(有空再列出您的大名)有写他对CD-ROM烧录机的心得,在
http://mail.ncku.edu.tw/~thlx/, 可以参观.)

6.9 为何我在挂载CD-ROM时得到: Read-Only file system 讯息?

CD-ROM是只能读取的媒体. 旧版的核心你能用可读写方法挂上CD-ROM,然後尝试写
资料进去并不会产生任何讯息. 在1.1.83版後,这被修正为CD-ROM必须以只读方式挂上
(就是说mount要有-r选项).

6.10 我关机时,为什麽托盘自动退出来?

在1.1.38版核心,sbpcd在卸下片子时会自动退片(译:CR-521是用片匣的,不知会不会
弹出来喔!?)如果你下了关机指令,那麽挂上的CD就会被卸下,然後就退出来.

这样子在换片时很方便. 如果托盘打开状态下你挂上或读取CD,那麽它也会
自动进片.(译:片匣的不能自动进片...所以...)

我发现有时这功能会造成问题(如cdplay及workbone).在1.1.60版核心(有些怪...
前面是1.1.83!? 我看还得查明再联络作者喔!)你可以用软件决定要不要用这功能.
一个□例程序包含在README.sbpcd里.(或者用 eject 程序).

6.11 我有一片无法挂上的"特殊"片子

这片"特殊"片子看来像是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可能原因:

       它不是用ISO-9660文件系统(如:有的用SunOS)
       它是CD唱片
       CD有损坏或毁伤
       你把光碟片放反了 :-)


6.12 为何我的CDU-33的灯会闪?

这很正常,是新版驱动程序加进去的.当挂上CD片时,让灯闪烁(这不是□□,这是
"特点"...)

6.13 多片装CD-ROM在Linux下也能用吗?

好几位使用者已报告SCSI CD-ROM换片机工作顺利.你也许要打开"
对每一个SCSI装置侦测所有LUN"的核心选项. 起码使用者也要加大驱动程序
中的SCSI超时等待值.Nakamichi(中道!?)MBR-7的七片装及先锋牌的12片装已确定 能用.

EIDE/ATAPI的换片机也可用. 2.0版核心对一些机器使用CDROMLOADFROMSLOT
这个ioctl函式做了初步支持. IDECD驱动程序的文件档包含了一个原始码可做一般
程序选择换片槽的参考.

6.14 我得到 "/cdrom: Permission denied" 错误

有些CD有文件权限,仅允许root读取它. 1995年三月的InfoMagic CD set就是一个 好例子.

底下的修补, 由Christoph Lameter(clameter@waterf.org)
好意提供,修补核心,解决这问题.

From: clameter@waterf.org (Christoph Lameter)
Newsgroups: comp.os.linux.setup
Subject: Infomagic Developers Set: Fix for CD-Rom permissions
Date: 12 Apr 1995 20:32:03 -0700
Organization: The Water Fountain - Mining for streams of Living Water
NNTP-Posting-Host: waterf.org
X-Newsreader: TIN [version 1.2 PL2]

(1995年三月版的InfoMagic Developers CD-ROM set有问题,因为它在根目录存取权限处
存的信息造成以下使用CD的问题.)

(1. 第一片的拥有者/群组是5101/51,然後居然允许写入(?))

(2. 第二,三片对root有rwx权力,而对其它人/群组什麽也不给. 这两片光碟除了
root外任何人均无法存取! 我正在跑BBS,需要让别人能下载它们!)

(我已经看到这问题的几个解决之道了. 麻烦的是它们会影响光碟上所有目录的
存取权.我的修正只改了它的根目录存取权. 如果你想在光碟上跑东东,而所有目录
都可存取的话,会带来麻烦,因为他们是root所有.)

(这个修补会将根目录权限改成r-xr-xr-x,将所有人/群组改成mount那人的
uid及gid)

(用法:)
 cd /usr/src/linux/fs/isofs
 patch <**THIS MESSAGE**

(然後重编译核心(依你的核心版本,可能要手动修补.))

(这个修正也许已放进核心了. 到底是什麽事,非要存放让挂载点的权限/所有人资料
变一团糟呢?)

--- inode.c.ORIG        Wed Apr 12 17:24:36 1995
+++ inode.c     Wed Apr 12 17:59:12 1995
@@ -552,7 +552,15 @@
    these numbers in the inode structure. */

        if (!high_sierra)
-         parse_rock_ridge_inode(raw_inode, inode);
+       {  parse_rock_ridge_inode(raw_inode, inode);
+           /* check for access to the root directory rights/owner CL */
+          if((inode->i_sb->u.isofs_sb.s_firstdatazone) == inode->i_ino)
+           { /* Change owner/rights to the ones demanded by the mount command
*/
+             inode->i_uid = inode->i_sb->u.isofs_sb.s_uid;
+             inode->i_gid = inode->i_sb->u.isofs_sb.s_gid;
+            inode->i_mode = S_IRUGO | S_IXUGO | S_IFDIR;
+           }
+        }

 #ifdef DEBUG
        printk("Inode: %x extent: %x\n",inode->i_ino, inode->u.isofs_i.i_first_
extent);
@@ -805,4 +813,3 @@
 }

 #endif
-

6.15 我如何念"Matsushita"?

有人告诉我正确念法有点像MAT-SOOSH-TA.

6.16 我如何解译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.

译注: SCSI的也有类似情形. 如果你对最後的问题"verbose SCSI error
report..."回答n,那可减少12K的记忆体浪费,但显示出的讯息嘛...看不懂.
我个人是宁可耗多点RAM换取看得懂啦!

6.17 Linux支持"即插即用"设备吗?

Linux目前尚未完全支持即插即用设备,不过目前还在进行中. 现在有一些使用者
回报说他们用 1. 关闭BIOS中的即插即用选项 2. 先用Windows 95开机,再换到 Linux
这两种方法成功过.

6.18 我如何测试我的CD-ROM是几倍速的呢?

有一个办法. 这就是测试它要花多久读取1500K的资料:

% time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
1500+0 records in
1500+0 records out
real 5.24
user 0.03
sys 5.07

正常的单倍速CD-ROM每秒传送150KB,所以约要10秒钟. 二倍速约要5秒钟, 四倍速
的约2.5秒钟,等等...

sys时间也许是最好的值--在上面情形指出它是二倍速机器.你可以增加资料量得出更
准确的值.(放心,够大的话就没有被快取到了.)

6.19 装好Linux後,我的CD-ROM不能用了

最常见的症状是先用Linux安装时,Linux承认你的CD-ROM.但装完後,从软碟
或硬碟开机却又不能用它了.

最大的可能就是多数Linux分布中,装在硬碟的核心不一定就是和安装片用的一样.
你选了支持你设备的安装片,它却给你在硬碟上装一个没有支持CD-ROM的" 通用"核心.
你可以照第四章所说的"问题与解决"去做. (从检查/proc/devices开始)

解法是重编译核心,确定你需要的CD-ROM驱动程序及其它需要的部份(如SCSI卡,
ISO-9660文件系统)都编进去了. 如果你不知道怎麽做,看 Kernel HOWTO
如果你需要用命令列参数(如"hdc=cdrom")你要把它加进开机载入程序的
设定档中(通常是/etc/lilo.conf)

---------------------------------------------------------------------------

7. 参考文献


   首先是我已提到过的README档.
   一个典型的位置在/usr/src/linux/Documentation/cdrom/里.
   它可算是有用信息的宝山.


   底下的USENET FAQ定期在news.answers发出,
   也可以在ftp://rtfm.mit.edu/里找到.

     * alt.cd-rom FAQ
     * comp.periphs.scsi FAQ
     * Enhanced IDE/Fast-ATA/ATA-2 FAQ


   一些其它Linux HOWTO也提供和CD-ROM相关的有用信息:

     * SCSI HOWTO
     * Hardware Compatibility HOWTO
     * Sound HOWTO
     * Kernel HOWTO
     * Distribution HOWTO


   至少有好几家公司卖在CD-ROM上的Linux软件; 多数在Distribution HOWTO里
   都有记载.


   以下是和CD-ROM有关的USENET网路新闻组:

     * comp.publish.cdrom.hardware
     * comp.publish.cdrom.multimedia
     * comp.publish.cdrom.software
     * comp.sys.ibm.pc.hardware.cd-rom
     * alt.cd-rom
     * alt.cd-rom.reviews


   comp.os.linux网路新闻组也是Linux相关信息的好来源.


   在ftp://ftp.cdrom.com/pub/cdrom/ 里有一大堆的CD-ROM信息及软件.


   在
   ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/enhanced-ID
   E/ 以及 http://www.seagate.com/techsuppt/faq/faqlist.html.
   可找到IDE及ATA设备的FAQ文件.


   开启IDE协定的Western Digital公司,在其FTP站也有关於IDE协定的文件,在:
   ftp://fission.dt.wdc.com/pub/standards/atapi


   有一个关於多媒体的首页可在 http://viswiz.gmd.de/MultimediaInfo/中找到.
   Creative Labs的首页在 http://www.creaf.com/.


   Linux文件计画(LDP)制作了好几本Linux的书,包括Linux Installation and
   Getting Started. 这些可从主要的Linux FTP文件库免费取得,或是花钱买
   硬拷贝型式的文件.


   Linux软件大地图(LSM)是标定Linux软件的无价参考资料.LSM可在很多FTP文件库
   , 包括 ftp://sunsite.unc.edu/pub/Linux/docs/LSM.gz/中.


   Linux通信讨论有几个不同主题的讨论频道. 若想知道如何参加,寄一封内容为
   "help"的信到 majordomo@vger.rutgers.edu
   (注意:在写这篇时,这些信件讨论区正严重超载,现在还在找替代的机器.)


   最後呢,虽然有点无耻,不过还是容我在此打打小广告: 如果你想学学很多关於在
   Linux下的多媒体(特别是关於CD-ROM及音效卡应用及程序设计的),到书店找找我
   编著 的,由 O'Reilly and Associates (http://www.ora.com/)
   公司出版的新书叫Multimedia on Linux的.(译:谁愿意翻译这本? 别找我!)
   这本在1996年约九月会问世吧...


附: 译 者 的 感 想 及 意 见

     _________________________________________________________________

   Linux CD-ROM HOWTO中文版预发表版(pre-release)

   花了好多时间翻译,好累...果然不是简单的...

   特别是还要随时注意新版出来的消息,现在可能还得用眼睛一条条看变动
   情形,那不是翻完就算,事後的维护还要更费力些.

   嗯...尤其现在住外面,暂时没网路可用,很不方便.就算有modem,没有了hostname
   , 信都得换别处收发,也很不习惯.

   对这份HOWTO,我想很多地方还有待改进,一是我的国文能力 8-( 次是有很多名词
   还没有看过认何值得参考的翻法. 这个前者嘛...受限译者的领悟力, 有些类似
   成语的东西硬是翻不出点味道, 只能仅量维持作者的原意, 加以推敲,
   疏漏处还请看官多原谅. 後者嘛...我觉得所谓"值得参考"的翻法最
   重要的是看到译名大概就知道是什麽,不要半路还经过中翻英,这样还要中文版干
   嘛?

   还有一点...中文版HOWTO制作群(包括翻译者)是很多人分散作的,那有很多常见
   英文名词可能会翻得很不一致,令人摸不著头脑; 另外HTML版的HOWTO互相连结
   也是问题. 我目前是连到LDP的本页啦! 不过我觉得迟早得连到中文版的才行.
   嗯... 最要的,赶快念书! 我已经没时间可以拖啦!

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:617.790毫秒