第2章设置开发系统 MediaGX的声卡支持,也许在本书出版时就会有了。 笔者在一台两年前购买的Cyrix P150+(相当于运行在150MHz的Pentium)上运行 Liux系统,并以此作为主要的开发平台,而且笔者不打算在近期升级处理器。以现在的处 理器价格,所购买的处理器速度一般都在:上面芯片的2倍以上,只体则取决于购机预算与市 场上可买的处理器种类。 Linux迷们看来正很有兴趣的等待着Transmeta公司生产的处理器,该公可司雇佣了【i nus Torvalds和Linux界的其他重量级人物(包括笔者的朋友Jeff Uphoff),其巾部分原州是 因为该公司所拥有的专利技术,他们处理器的体系结构专门为模拟其他处理器做了优化,包 括用软件实现翻译和一个用硬件实现的翻译缓冲区。但该芯片是不是运行【iux系统的优 秀平台,则很值得怀疑。当然,Liux很可能是该芯片的本机操作系统,并在其上模拟其他操 作系统和处理器体系结构。 2.2.3BI0S 对于基本的工作站,只耑使用主要品牌的BOS(AWARD,AMIBIOS和Phoenix)即可。 AMI BIC)S存在一些问题,在使用有PCI-to-P(I桥接的I/O卡(如Adaptec Quartet4端I 的以太网卡)时会使情况复杂化。AWARD BIOS给用户提供了比AMIBI(S或Phoenix更 多的控制手段。在现代系统中,一个允许用户通过下载新版本升级B)S的闪存BOS芯片 已经成为标准配置。老的386和486系统中BOS芯片使用的不是闪存,因而有以下可题: ·旧的BIOS可能不是Y2K兼容的 ·不支持大容量的硬盘 ·不支持可移动介质的热插拔 2.2.4内存 对于典型的开发系统,64M内存是合理的选择。知果出F特殊的目的(比如用于调试设 备驱动程序的崩遗-恢复系统)而不运行X windows时,8M内存就可以启动系统。在32M或 64M内存的情形下编译内核的时间几乎一样(都少于1分半钟,但在8M内存时可能需要很 长的时间)。而使用32M内存运行多媒体程序(如Wb浏览器)比64M内存在性能上有些 下降,尤其是在编译的同时运行。同样,如果所开发的应用程序要消耗大址的内存,就要给系 统配置更多的RAM。这本书是在一台32M内存的机器上写成的,但作者的另一个支持人: 智能程序的开发系统拥有0倍容量的内存。 2.2,5机箱和电源 选择机箱时应使之与主板的形状匹配,并能够提供足够的驱动器托盘和电源功率以满 足需要。许多机箱生产“家重新设计了他们的AT机箱以容纳ATX亡板:如果你订购了一 个AT机箱,收到的机箱可能已采用了新的ATX设计,在1/O挡片上预留了AT键盘和鼠 标门。小型、中型或完全型塔式机箱是也是很好的选择。对于其他应用,可能需要针对服务 器结构或架式结构设讣的机架
第1部分Linux编保I具包 注意:AT和ATX机箱的内部电源接口不同, 如果系统常要运行关鍵任务,蒂要注意毕些电源在掉电后不能恢复正常。此时就需要使 用小型冗余电源,其外形比普通的ATX或PS/2的电源稍大;一些面向高端系统的机箱,尤 其是服务器机箱或机架,做了专门设计以容纳这种冗余电源或普通的ATX或PS/2电源. 2.3阳交互硬件:视频、声音、键盘及鼠标 本节将要介绍的设备主要用于和用户交互:从制造商或其他来源可以获得支持显卡和 成示器的大量信息。对十显示器,只要在Xconfigurator程序中输入其规格即可:但支持显卡 就需要得到足够的编程信息以编写驭动程序(或修改现有的驱动程序):声卡利显卡·样,也 需要相关的文档和具体编程支持,而音箱只需和声卡匹配就以止常」作。 2.3.1显卡 如果只运行文本模式的控制台,绝大多数V(A显卡都能工作的很好。但如果需要图形 支持,就要选择被Xfree86,SV(GAlib,vesafb和/或KGL支持的V(GA显卡。 Xfree86是X窗ㄩ系统的一个公开源代码实现,X窗口系统是个基于开放标准的腐 口系统,所以运行在本机或网络土的图形应用程序都能访问显示器。对于用于开发的工作站 M言,必须而且只需支持Xfree86。在htp:/www.xfree86.org上可以查阅有关信息,在 http://www.susc.de/XSuSE上的XFcom(XSuSE的前身)中可以查找到一些新设备的驱 动程序。 SVGAlib是一个在控制台以全屏方式运行图形程序的库,主要被某些游戏软件和图像 测览应用程序所使用,并H这类程序在X窗口系统环境下都有对应程序。遗撼的是SVCA1 b需要ro0t权限来访问视频硬件,因此·般都使用sud,从而导致安全问题。 G(GI即通用图形接ㄩ(Generic(Graphics Interface),试图解决root权限问题,同时也解决 了当前SVGAlib和X servers的并发冲突,还为编写运行于X和SVGAlib的应用程序提供 了·系列通用的API(应用程序编程接口),GGI的一个了集KG1,提供了对帧缓冲区的低级 存取。(G】已经被移植到几种其他的平台上,因此它提供了一种编马可移植图形应用程序 的方法,尽管这些应用程序显然是被限制在单个窗口范型中。相关的文档非常令散。们这个 软件包在将来有希望成为X servers和SV(GAb的公共底层接口,同时也可作为实时动作游 戏的编程接「1。 (Opc(L(及其前身GL)长期以来·古是31D图形建模书实上.的标准,它提供了一套开 放的API,但没有公开其实现的源代码。Mesa在Linux和其他许多平台上实现了·袋与 (OpGl.相似的API,公开源代码(遵循GPL协议)。对3Dfx的Vodo卡的硬件加速的支 持也已经可以状得。在http:/www.mesa3d.org上有关于Mesa的更多信息,Metrolink得 到()penGL的许可并实现了一个商业产:品,浏览http:/www.metrolink.com/opengl可以 查阅到行关信息。帧缓冲设备为不同体系结构的处理器提供了访问品存的抽象接口,更多的 信息可以参见与帧缓冲有关的H()WT()文件,也可以参见htrp://www,tahallah.demon. co.uk/prgramming/HOWT()framebuffer-1.Opre3.html.Vesafb在Intel平台上提供了对 VESA2.0显卡的帧缓冲设备的支持。不幸的是VESA规范看起来是·个过时的规范,相关
第2章设置开发系统 指令(VESA V(GA BIOS)只能够在实模式而不能在保护模式下上作,因而切换视频就需要 将CPU从保护模式切换到实模式。这种现象在MS Windows中非常曹遍,并且可能因此引 起操作系统的不稳定。K(GIcon可以把被KG】支持的设备当作帧缓冲设备来使用。 提示:某些公司提供后于Linux及其他兼容Unix操作系统的商用X servers产 品,其中有Accelerated--X(http:/www.xigraphics..com/)和Metro-X(http:/ www.mnetrolink.com/) AGP(Accelerated Graphics Port,图形加速接H)技术在处理器和显存之间提供了一条 连接,其数据传送速率是P(I总线的4倍,同时图形加速卡也能快速存取系统内存中图形数 据的的纹理映像。Linux支持某些AGP显卡。 提示:在Red Hat系统中以rool权限运行/usr/xl1/bin/Xconfigurator-help可以 确定系统支持哪些显卡和显示器。 在16位色(2.6M)下支持1280×1024需要至少4M的显存,1600×1200的32位色显 示则需要8M显存。某些D游戏在有额外显存的情形卜可以加快处理纹理映像或其他特性 的速度.X server也使用额外的显存来缓冲字体和扩展位图。如果要配置一个大于实际物理 尺寸的虚屏(这样,当把光标移动到实际屏幕的边界时,显示区域就会在虚屏上滚动)时,必 须保证有足够的内存来支持这种技术。何是,FVWM窗口管理器中虚拟桌面的缺省大小是 虚屏的4倍,当光标移动到显示区域边界并稍作停留的话FVWM将进行屏幕切换,它的实 现没有使用额外的显存,而只是简单的重画整个显示区域。X server也可能使用系统内存 (不是显存)来实现“backing store”,以加速某些部分被遮挡窗口在显露时的重画速度,所以 如果在高分辨率或16位色以及32位色下工作,“backing store"对系统内存可能会有更高的 要求。 在Liux系统中安装支持高分辨率和高位色的显卡能带来很人的好处,尤其是在需要 很好的利用X server的情形下。Linux系统在同一时刻可以轻松处理多个不同进程,你可能 需要有足够的屏幕空间来观察多个窗ㄩ,而一个支持1280X1024分辨率的显卡就可以很好 地满足这-切要求。好的显卡的另·个优点是支持高位色(16或32位色),这不仅可以使较 新的窗门管理器更平滑的工作,同时也对系统进行图形工作很有用处。当然,仅有好的显卡 是不够的,显示器也必须能够支持显卡所能支持的分辨率,否则就不能完全利用系统所提供 的显卡的能力(下一节将详细讨论显示器的选择),因此,在选择显卡/显示器的组合时必须 检查硬件参数,以保证两者能很好的协同工作,当然,分一个需要注意的是所选择的硬件必 须在Linux的兼容硬件列表上:。 2.3.2显示器 如果显示器能和显卡兼容,那么,只要能够得到显示器的技术参数,尤其是垂直和水平 刷新频率(或所女持的范围)和视频带宽,就能够在Liux下工作。需要注意的一点是显示器 并不是越人越好,关键是看在不牺牲色彩质堂的前提下的全屏像素数。在笔者的两台尺寸分 别为17和20"的显示器中,笔者更喜欢前者,虽然后者价格非常昂贵:此外,与17”相比,笔 者也更愿意使用多数的15"显示器。一般而言,在眼晴与显示器距离较近时,廉价的小人寸 的显示器的显示质量并不逊色于大尺寸者;当然,如果要在离显示器较远的情况下工作,就
1 第1部分1inux编程工县包 应选择人的显示器。 如前节所述,显示器选择与显卡有很人关系,因此首先应当对业示器的显示质量(清晰 度)进行测试,点距是影响显水清晰度的一个正要因素一像素间的点距越小越清晰,当然, 价格也会越昂贵。第二步是检测显卡,同样的显示器在不同的显卡下会有不同的显示效果、 而向商业应用的显卡(如Matrox Millenium G200)一般都比面向游戏的显卡其图像的对比 度更好,这是州为显卜往往计村21),3D或对比度来优化,但并不问时优化这二者。 笔者建议显示器最好工作在60Hz左右的制新频率,即使能够攴持更高的频率。在某些 情况下'也许70Hz的刷看起来更好,尤其是在熬夜并丑显示器荧光不够鲜亮的时候,但多 数情形下60Hz会好一些。这是因为机壳内的电源线,变压器以及其他部件都工作在60Hz 左右,因而各种信号会互相下扰,对于显示器i言,这种下扰不仪影响传输电缆和视频电路, 而且也会使CRT(Cathode ray tube,.阴极射线管)射出的电子束发生偏转,如果显示器的图 像发生上下抖动,大概就是这个原因。而由于造价昂贵,P℃显示器“般都没有屏蔽设施,听 以必须采用其他方式来消除这种十扰。如果60Hz干扰波和显示器涮新频率之间的拍频(两 种频率之差)接近于0,这种于扰就会变得不能觉察。如果拍频过大,这种千犹就会对显示 器产生彭响,从而使人变得敏感和易烦躁。因此,0.1Hz(60Hz对60.1Hz)的拍频是可以接受 的,而10Hz(60Hz对?0Hz)的拍频就可能使人坐立不安。 一些对家的供电频率不是60Hz,此时就需要调节本地电源的刷新频率以解决拍频问 题。此外,有些显示器有意使图像在屏幕上.下以极低的频率轻微抖动以保护坪幕,但是因为 频率足够低,这种抖动是不能觉党察的(即使是头部的轻徽运动的频率也远高于这个频率)。 【iux可以在视频配置文件中设置硬件的.1作范围,应当保证这些设耸必须符合硬件 设备的技术参数,杏则会使性能下降甚至造成硬件破坏。 2.3.3声卡 1inux支持人部分古卡,尤其是Sound Blaster兼容声卡(但并不直接支持所有宣称的兼 容卡,其中的一部分需要软件模拟才能实现),老式的SS声卡(688或1688),基丁微软声 音系统的声卡,以及(Crystal(Cirrus Logic)声卡。更为详细的信息,以参考硬件兼容性 HOWT)文档,Four Front Technologies Web站点(http:/www.4 front--tech.com/),或I,in ux内核资源(http:/metalab.unc,edu/l.inux-source).Four Front Technologies发售一种软 件包,其中包含大量未与内核一同发布的声卡驱动程序。新的声卡大部分是即插即用设备, 要支持这些声卡,可以使用ISAPnP上其或Four Front Technologies提供的驱动程序。 2.4键盘与鼠标 现在仍不建议使用US键盘和鼠标设备,详细的信息可以参考本章后面的“USB与火 线(IEEE1394)”节。除了不能支持键盘的某些额外特性,一般而有,普通的标准AT或PS‘2 风格接口的键盘都能很好的匚作,键盘中内背的轨道球,光栅笔或轨道板一般都单独与串口 或PS/2鼠标口相连.在软件支片的情形下,应当简单的把这些设备看作单独的鼠标。1ux 支持常用的PS/2和串口鼠标,其中包括使用Microsoft协议,Mouse System协议或Logitech 协议的鼠标。鼠标攴持由gpm程序或X server提供,许多其他的点设备,比如轨道球,光橱
第2章设置开发系统 11 笔或轨道板在模拟普通鼠标并使用相同通信协议的情况下也能够被支持,但会丧失较新轨 道板的某些特性,比如笔输入和较宽区域的特殊处理。许多X应用程序要求用户使用三键 鼠标,因此gpm和X server提供了配置方法以用两键鼠标来模拟三键鼠标,此时,同时按下 左右键就相当于按下了三键鼠标中的中键。 2.5通倍设备、端口及总线 本节叙述与通信通道相关的各种设备的信息,这些设备主要用丁与其他计算机以及内 部和外部设备的通信。 这里也将谈及用于连接处理器和扩展卡的高速总线,但不打算讨论ISA总线还是P℃】 总线细节问题:同时出于某些考虑,对SA即插即用设备以及PCMCIA卡分别在单独的一 小节中进行了讨论。只要有相应的驱动程序,普通的ISA或P℃】卡都能很好的工作,此外绝 大多数DE控制器也能正常工作,在本章稍后的“存储设备”一节中还将另行讲述DE存储 设备。对于与并口相连的设备,如打印机,也将有专门的小节来叙述。 2.5.1调制解调器 除了brain-dead winmodem类型以外,绝大多数使用专用的Rockwell协议接口(Rock- well Protocol Interface,RPI)的调制解调器,以及用软件实现协议功能的调制解调器都能在 Liux下i止常工作。但是,应当注意昂贵的专业级产品和廉价的面向普通消费者产品之间是 存在实质性差别的:儿乎所有的调制解调器都能在高质量的电话线路上很好的工作,但对于 质辑低劣的线路,不同层次的产品其工作表现有明显的差别.这就是为什么对于同样的调制 解调器,有人感到价廉物美,而有人却对其表现极为不满。在质茧较差的通信连接中传输数 据所需要的硬件结构要比通过高质量的连接传输的同样数据复杂得多,而传输所需要的时 间也更多。 某些重要的开发者希望在小公室或家中用专线上Internet。一些较为昂贵的调制解调器 可以工作在租用线路模式,即通过一对“干线”与internet建立一个33.6Kbps的永久连接。 在这种连接方式下,“干线”线路中没有电压,没有振铃信号,也没有拨号音,而只是直接的把 两个不同地点连接起来。在不提供ISDN或xDSL,服务的地区,这是一种便利的解决方式, 而且,在短距离的情况下,这种租用线路难以想象的廉价。但是,对于此类调制解调器,大概 每个至少需200美元。 由于只有提供数字电话线路接口的调制解调器才能够用软件实现56K的应答方式,所 以很难找到这类支持租用线路模式的产品。笔者从儿年前开始使用租用线路,通信距离在2 到3英里左右,每月的花费是15美元。关于如何设置这类调制解调器,可以访问笔者的个人 站点(http:/www.freelabs.com/~whitis/,unleashed/,)。在短距离情况下,也可以在“千线” 上使用xDSL(同时笔者也知道一种叫做MVL的DSL变体,能够在同样的“干线”中支持更 远距离的传输,并能提供T68Kbs的速率),即使在中心办公室的调制解调器也可以使用 xDS,16线的花费是13000美元,但是,在线数较小的情形下,xDSL设备的价格是很不经 济的。不过,如果能够在大其的线数上分摊资金,那么xDSL要比DSN或T1线路经济得 多。例如,一对“干线”每月花费是15美元,而ISDN提供768K的连接速率,其花费是75美