12 第1部分Linux编程上其包 儿,T1线路的价格是每月A00美儿(而且只是局部连接的价格,不包括访问Internet的费 用), 如果想要支持拨入模式(应答模式)的56K连接,就需要提供数字线路接口的调制解调 器。一般而言,ISP使用昂贵的支持I】线路接口的调制解调器池,其中的母个调制解调器都 支持数字接口,这种方式只有在需要支持的线数超过定数其才比较经济。现在有种调制 解调器,既可以T作在普通模式,也可以作为ISDN的终端适配卡而工作在b6K的应答模式 上。 如果需要设语音邮件或交互.式语音响应(interactive voice response,IVR)系统,就要 使用支持语音模作以及与vgetty软件兼容的调制解调器。在Vgetty Extensions(AQ)文档 屮查找与Mgetty+Sendfax关联的内容,可以得到些与j语音调制解调器相关的建议。 为了支特传真操作,有几种软件可以选择,包括HylaFAX.mgetty-一sendfax以及efax。 其中支持Class2.0传真标准的调制解调器要优于只支持(Class1.0的品。(Class1.0调制 解调器需要CPU介入部分传真协议的实时处理,当(PU内繁忙而不能迅速响应时就会出 错,而支持(Class2.0的产品就能白行处理这些工作。此外,Class2调制解调器遵循早期的没 有正式发布过的Class2.0技术规范。 Red Hat5.2中自带了mge1ty+sendfax以及cfax软件包,HylaFAX则在Red Hat的 Powertools CD中,而月这三个软作都可以从Internet.上.下载。HylaFAX是面向服务器的, 此茧然其设置较为复杂,但比另两者更适用于支持企业级的传真服务器,并且在Linux.M- crosoft Windows,Mac(OS以及其他系统平台上都有其客户端软件。表2.1简要列出丫这三 种软件所文持的标准。 表2.I FAX SUPPORT ('tass 1 Class 2 Class 3 JJylaFax Ycs Yes Yes Sendfax No Yes Yes Efax Yes Yes Suport untested 2.5.2网络接口卡 Tli芯片是Linx系统上的PCI以太树卡的最好选择,它价格低廉,传输速度快而且 可靠,并有详细的文档。但最近新版的芯片存在一些轮微的兼容性问题。而更为安全的老的 芯片已不丙生产:了,并且牛产线也被实给了竞争对于I1cl公司,使得此类网卡极为短缺。可 能这些问题在:本书山版时就已经解决了,何还是建议你去查看-下Tup邮寄列表,以得到 确切和详细的信总。如需要在一台机器.上安装多个以太网接口,可以使用Adap1 ce Quartet 卡,它在·台机器上集成了4个以太网接口。笔者的某·个Web负有怎样在Liux上使 用Quartets的详细信息。 对于廉价的10MB,s的ISA网卡而:,廉价的NF2000克降是一个很好的选择。这类 网卡在传输数据时所占用的CPU时间要比其他设计复杂的卡略多些,旧是它能够在蜂值 下运行(但是不要指望仪通过一个诸如FTP的T(P连接来达到峰值,通常需要同时建立多 个连接才能达到这一带宽)
第2章设野升发系统 13 3(om支持在Linux下使用他们的以太网卡,Crystal(Cirrus Logic)也为他们的以太网 控制器芯片提供Linux下的驱动程序。大多数的广域例卡制造商也将提供相关的的Linux 驱动程序。SDL,Emerging Technologies以及Sangoma都提供了其产品的Linux驱动程序。 2.5.3SCS Liux支持绝大多数SCSI控制器,包括许多RAID控制器,主机适配器,几乎全部的 SCSI硬盘以及人多数S(SI磁带驱动器和SCS1打描仪,但不包括基并口的主机适配器。 Advansys公司在Linux上支持该公司的SCSI适配器,他们提供的驱动程序随内核一同发 行。随处i可见的lomega Jaz Jet,其PC】SCSI控制器使用的就是Advansys的产品,而且的确 物有所俏。除非SCSI控制器及其驭动程序并且.总线上的所有的慢速设备支持“disconnect- reconnect”特性,否则不应把磁盘驱动器和一些诸如磁带驱动器或扫描仪等慢速设备连接到 同-·个SCSI总线上,不然的话,在磁带机倒带或打描仪回车时,整个系统就有可能挂起30 秒钟或更长时间。在SCSI HOWT()上有关于“disconnect-reconnect”的详细信息。 警告:要小心廉价的SCS】控制器,特别是不使用中断的那一些。就笔者有限的 经验,它们或者完全不能工作,或者时不时使系统挂起几秒钟。尽管NCR5380. NCR53C400卡本身有缺陷,但上述情况的发生多半是由于驱动程序中的bugs。笔 者遇到的这类SCSI控制器有的与扫描仪一起发送,有的内置在声卡中。 2.5.4USB与火线(1EEE1394) 对于USB以及火线的支持正在开发之中。UUSBD软件包提供了对USB的支持。如果 有一个被支持的USB控制器,就可以使用USB鼠标(当然,在运行X以前必须下载和安装 相应的代码),但在写这本书的时候,笔者还没有看到过能在Liux下工作的USB键盘。除 非时常有时间对开发系统修修补补,否则现在使用USB或火线设备为时尚早。在1iux.org 的prjects下有相关项日的链接。 2.5.5串行卡(包括多端口) Liux支持士板上的以及额外的标准PC串口。但建议不要使用早期的不包含16550A 或兼容的UART的串口,虽然现在已经很难看到这类配件了。 Lux也支持绝大多数智能多口串行卡,通常是直接由)一商提供相应的支持,其中包括 Cyclades,Equinox,Digi和GTEK等公司。Equinox提供了-种有意思的多重串口卡变种,这 种卡使用-·个外部底盘来支持16个SA调制解调器(或对计算机而言与调制解调器类似 的设备)。 大部分的多口预留串行卡能在Liux下I工作,但除非在系统和/或端口负载很轻的前提 下,否则不要在系统中安装太多的这类串行卡。Byterunner(http://www.byterunner.com) 支持其廉价的2/4/8口串行卡在Linux下的使用,与多数此类卡不同的是,Byterunner的这 些产品采用了高端配置,能够有选择的共享中谢,并且支持常规的握手信号
14 第1部分Linu×编程T.具包 2.5.6 IRDA Linux最近开始支持红外数据关联(Infrared Data Association,IRDA)设备,因而可能还 不很战熟。Linux2.2内核直接提供了对IRDA的支持,们使用时仍需要irda-utils。IRDA项 月的主页在http:/www,cs.uit.no/I.inux-irda/.笔者猜想多数支持1l5Kbps的SIR IRDA 膝上设备可以模拟…个串口,而这样做并不很推。 2.5.7 PCMCIA卡 Linux对P(:MCIA的支持已经有一段时间了,所以相当稳定。但对特定的设备需要 特定的驱动程序,如果你所使用的设备没有列在Linux发行版安装盘的/etc/pemcia/config 文件中,安装该设备可能会很闲难。 2.5.81SA即插即用设备 尽管存在一些支持螂插即用(Plug and Play,PnP)的内核补丁,Linux下对PnP的支持 通常都由SAPnPI上贝提供,这些工具不会如你期望那样自动运行,但好消息是它们减少了 不确定性,从而避免了“插入并祈祷”现象,使用PnP设备时,首先使用pnpdump为每一个 PP硬件创建一个包含齐种可能配置的小例配道文件,然斤手修改该文件并选择一个特 定的配肾,Red Hat也提供了一个sndconfig L具,用来交互式配置某些PnP声卡。要避免引 导系统时需要使用即插即用设备,如磁盘驱动器或树卡(对那些从网络启动的系统而言)不 能是PnP设备。 2.6存储设备 iux文持计算机市场上几乎所有可以见到的存储设备,包括绝大部分硬盘驱动器,可 移动介质(如Zp),CD-ROM/DVID和磁带驱动器。 2.6.1硬盘 实际上Linux支持所有的IDE,SSI硬盘驭动器和P(MCIA驱动器,甚至也支持老式 的ST506和ESDI控制器。此外,Linux也支持软件或硬件RAID(Reliable Array of Indepen- dent Disk)配置以提供高速,容错和大容量的磁盘存储。完全安装Red Hat5.2,包括Power-- tols,Gnome示例程序和所有源程序RPMs人概需要2.5G的硬盘空间。 2.6.2可移动磁盘设备 新近的Linux内核支持诸iJaz,LS120,Zip等的可移动介质,1用这些设备来引导系 统可能会存在一些问题,笔者曾经试图使用Jz驱动器作为引导设备,何几乎每隔一月该驭 动器就会破坏引导盘,使笔者自此取消了从该驱动器引导系统的打单,但也许笔者只是恰巧 碰到有缺的驱动器。LS120所存在的问题包括不能够将LS120磁盘作为交换设备,因为 扇区大小不兼容。此外,由于软件上的问题,在-·台机器上尘成的这类可移动介质引导盘可 能因为设备号不同而不能引导另-·台机器(例如在你的开发系统上LS120是第一个DE设
第2章设置开发系统 15 备,而在另一个需要用1S120盘引导的系统中它是第一个设备)。 2.6.3 CD-ROM/DVD Linux支持几乎所有的CD-ROM甄动器,包括DE,SCSI以及许多使用老的专用接口 的驱动器。除了Microsolution Backpack驱动器外,一些并口光驱也能正常工作(但新版的 Red Hat已能支持前者)。某些驱动器在播放CD音碟时可能会有问题,这是因为缺乏这方面 的标准,此外只有少其光驱能够检索“red book'”声音数据(从CD音碟中直接读取数据到计 算机以复制、处理或传输)。 Linux支持许多种类的光盘组。使用eject命令时指定某个选项可以从光盘组中选出需 要的光盘。笔者发现NEC4x4光盘组能够很好的工作。使用edrecord程序可以向CD-R或 CD-RW光驱写数据。http:/www.guug.de/8080/cgi-bin/winni//lsc,pl上的UNIX CD Writer兼容性列表上有大址关于兼容的光驱设备的信息。需要注意的是,由于CD-R驱动器 的限制,写光盘的工作只能在轻负载或者专用的机器上进行:因为仅仅对数据流的一个短暂 的中断都会损坏所有数据,而即使是在高速的机器上删除一个巨大的文件也会导致系统略 有停顿。现在已经提供了GUI前端的写CD的程序,其中有BurnIT和X-CD-Roast。. 2.6.4磁带备份设备 与各种其他类型的可移动介质一样,Linux支持大其的磁带备份设备。在Linux上有相 关的SCSI,ATAPI(IDE),QIC,软驱和并接口的驱动程序。笔者更愿意使用SCSI数据音 频磁带(Digital Audio Tape,DAT)驱动器,尽管该设备的价格与一台廉价PC相当。笔者使 用过Conner Autochanger DAT驱动器,但在Linux下笔者无法从磁带库中随机选出所需要 的磁带,每次取出-一盒磁带,它的下一盒磁带就会被自动装载。其他的自动磁带库可能会有 不同的表现。 警告:尽量不要在碳带设备上使用数据压缩;因为读错误经常发生,而一个锆误 就会使磺带上余下的整个部分变得不可读。 2.7外围设备 本节叙述安装在系统外部的可选外围设备。从软件的角度来看,这些设备的驱动程序通 常工作在用户空间而不是内核空间。 2.7.1打印机 Linux下的打印机支持主要由Ghostsript软件包(http:/www.ghostscript..com/)提供, 由于佳能公司不提供技术文档,所以对佳能打印机的支持做的不好,此外,佳能也已拒绝了 公开BJC5000和BJC-7000(这是佳能产品中仅有的能够提供高质封图像打印的两种喷墨 打印机)的技术资料的要求。除了基于PPA的喷墨打印机外,HP公司公开了旗下绝大多数 打印机的资料,因此Iiux能够支持这些HP以及与之兼容的打印机。 佳能BC-5000,BJC-7000和HP公司的基于PPA的打印机没有随机字体,因而依赖计 算机来提供光栅行,这对Liux系统来说不成问题(除很少见的实时系统日志打印机外),齿
16 第1部分inux编程上且包 为(Ghostscript通常有接生成光栅数据而并不使用打印机上.的字体和其他特性。另一些打印 机本身没有(CPU,因此需要用一种非标准的方式通过并口来实现对打印机硬件的底层控 制,这一类打印机在1inux下可能会有问题。1IP720,HP820C,HP1000是基于PPA的打印 机,利用ppmtopba转换工具,通过逆向I程的方式提供对某些基于PPA的打印机的部分支 持。Linux可能支持部分Lexmark喷墨打印机,但也有很多该品牌打印机是Windows专用 的。笔者曾经在Linux上通过以太网接口来使用Lexmark()ptra R激光打印机,由于该打 印机支持IPD协议,因此具需简单的将其设置成远程IPD设备 通过Samba软件包,Linux系统机作为Windows客户端的打印服务器,Linux客户端 也可以使用Windows打印服务器:通过Netatalk软件,l.inux打印服务器以为MacOS客 户端提供打印服务;如果Netware2.x,3.x,4.x允许装订(bindery)访问,则通过ncpfs软件 包,Linux系统可以为Netware系统提供打印服务或使用远程Netware打印服务器。此外, 支持LPD协议并安装了JetDirect以太网接口的【P打印机可以直接作为【inux卜的远程 打印机使用。 Ghostscript能在任何有足够资源产生光栅数据的操作系统上运行,它可以通过一个驱 动程序(或PBM转译器)来支持几乎所有类型的计算机系统,包括UNIX兼容系统,Ma c()S,(OS/2,Windows3.l.Windows95,Windows98和Windows NT等,此外,Ghostscript 能取代这些操作系统的本机光栅数据生成器,或者与之共存,或者与几乎所有这些操作系统 的队列系统集成。因为(Ghostscript可以生成PBM(Portable Bitmap,可移植位图)文件,所以 可以通过实现PBM转译器来支持(Ghostscript.同时,PBM转译器不用链接GPL程序,所以 可不遵循(PL协议,从而避免产:生版权问题,伪而打印机制造商也就没有理由不提供 (Ghostseript驱动程序或PBM转译器。 提示:在Linux系统与打单有关的详细官息可以参见Linux的Printing HOW- T(). 2.7.2扫描仪 虽然SANE软件支持20余家)`商的近100种不同型号的打描仪,总的说来,Linux对 扫描仪的支持相对较差,那地既不提供驱动程序也不公开文档的打描仪制造商应当为这种 状态负责。 为了在Iiux系统下支持单个或多个描仪,曾经提出过多个项目,但SANE软件包 (http:/fwww.nostang.(om/sne/)使这此计刘然失色,当然,SANE也获益于这些先行 者。SANE(智若)这个名称是对TWAIN的讽剌和拌击,TWAIN是Microsoft世界中的标 推,在扫描仪被调用时,它要求在啊动程序自行绘制对话框。这种方式并不明智,它下扰了非 交互式扫描(比如从命令行,Wb的cgi程序或应用程序中提出的月描请求)和对扫描设备 的网络共享,也使得驱动程序很难被移植到其他平台。SAE就没有这个问题。 使用SAN上时,呕动程序有一个可控制的属性列表供应用程序设置(通过参数了选择 是否绘制对话框或解析必要的参数等).SANE已经被移植到包括18种不同的UNTX系统 以及()S2上。它也为底层的SCSI接口提供了,个抽象层,并且也对某此与操作系统有关 的特性(如ok()也进行了抽象,从而避免了挎平台的移植性问题。但是SANE没有被移 楨到Windows和Mac平台,当然这并不是技术上的原因,而是因为几乎所有制造商为扫描