终极 Linux 电脑

作者:Glenn Stone

为了今年的终极 Linux 电脑,主编 Don Marti 和我决定构建一台多媒体工作站。我当时考虑使用双 Xeon 单元,因为我曾帮助前雇主构建过一些这样的机器,这时 Monarch Computer Systems 的 Trey Harris 打电话来说:“双 Opteron 主板已经上市了。”我一想到就垂涎三尺。在(截稿时)正式发布的、可以在 Opteron 上运行的操作系统 只有 Linux。我们交换了电子邮件和机器,最终我们设计出了一个方案,虽然在我写这篇文章时它还有一两个粗糙的地方,但应该可以在印刷出来时准备就绪。

主板是 Arima HDAMB 工作站主板,采用 ATX 外形尺寸,配备 AMD 8111/8151 Rhapsody 芯片组。它有四个 DDR333 Registered ECC DIMM 插槽(我们使用了两条 1GB Corsair CM74SD1024RLP-2700)、一个 8X AGP 卡和一个五个 32 位 PCI 卡的插槽。背板有四个 USB 接口、一个 Broadcom 千兆以太网接口和一个 Realtek ALC650 音频系统,以及常用的并行、串行和 PS/2 键盘和鼠标端口(各一个)。测试机器没有配备 FireWire 接口或串行 ATA 端口,尽管该主板确实提供了这两种选项。两个 Socket 940 插槽都安装了运行在 2GHz 的 AMD Opteron 246,顶部装有 Thermaltake AI724 散热器。

视频由 NVIDIA Quadro FX 1000 提供。这是一款工作站级的双头显示卡,我之所以选择它,是因为 NVIDIA 在 2002 年 12 月发布了对 AMD64 的支持。(截至截稿时,ATI 尚未发布其竞争产品 Fire GL X1 的 64 位支持。)声音来自 Creative Labs Sound Blaster Audigy 2,这是一款 24 位/192kHz、THX 认证的数字声卡,能够进行 6.1 模拟输出或数字侧的杜比数字 EX 输出。它还具有 IEEE 1394 (FireWire) 接口。

IDE 接口安装了一个 JLMS XJ-HD166S 16 倍 DVD/ROM 驱动器和一个 LITE-ON LTR-52327S 52/32/52 倍 CD-RW 驱动器。我们选择放弃 DVD 刻录机,因为 DVD+RW/DVD-RW/DVD-RAM 以及每种驱动器的 Linux 驱动程序都是一个相当棘手的问题。然而,Linux 和 IDE 等开放标准的乐趣之一是,经验丰富的音响发烧友可以自由选择自己喜欢的设备,并期望在插入后即可工作。事实上,在截稿时,上述所有组合驱动器都在市场上销售,并且驱动器和驱动程序都可能会在本文刊登时实现质的飞跃。

如果我们将 IDE 接口用于光驱,那么硬盘呢?的确,除了 Opteron 本身,硬盘是该系统最强大的部分。我渴望尝试 3ware 的新型串行 ATA (SATA) RAID 卡 Escalade 8500-4。这是一款四通道、半尺寸 64 位 PCI 卡,在 32 位插槽中也能很好地工作。在截稿时,Escalade 8506 正在上市,取代 8500。根据 3ware 的产品过渡矩阵,第二代控制器比 8500 快 25%。然而,我们用于测试的是 8500,统计数据也反映了这一点。好消息是,您构建或购买的电脑将更快。

8500-4 卡的后边缘(朝向驱动器所在位置)有四个 SATA-150 端口。这种布置,加上 SATA 电缆的小得多的外形尺寸,允许驱动器后方有更好的气流。而这些驱动器需要相当大的气流;四个 36GB Western Digital Raptor WD360GD 串行 ATA 驱动器以 10,000 RPM 的速度运行。我们特意选择了这些驱动器,而不是更大但速度较慢的 RPM 驱动器,以优化速度而不是存储空间。这些驱动器还具有用于标准 Molex 电源连接器以及新型 SATA 型适配器的插孔,这有助于平台之间的过渡。一个驱动器安装在软驱下方;另外三个垂直安装在机箱底部的外壳中,在风扇前面。

现在,我们来到了机箱本身。所有先前命名的组件,加上 ENERMAX 465P-VE-24P 460 瓦电源,都包含在一个定制的 Lian-Li PC-6270 静音机箱中。我们选择这款机箱是因为它能够容纳扩展 ATX 主板。像往常一样,这款机箱配备了所有 Lian-Li 的优点,例如几乎所有地方都使用手拧螺丝组装。此外,前面可拆卸的门后有四个 5.25 英寸和三个 3.5 英寸托架;内部还有一个额外的水平托架和五个垂直安装驱动器托架。该机箱还具有滑出式主板托盘和机箱下巴下方的过滤进气口,用于双硬盘驱动器风扇。第二对匹配的风扇将热量从机箱后部抽出。一个适配器将较低的五个垂直安装托架转换为四个托架水平安装布置,并且底部用粘性泡沫安装的方便的电缆夹将所有 SATA 电缆都固定在气流之外。机箱正面提供了两个 USB 接口,关门时也可以使用。通过在顶部和侧面板内部使用高密度泡沫填充物,以及门周围的橡胶密封条,使机箱保持安静,这也有助于降低驱动器噪音。

现在我们已经涵盖了所有硬件基础,我们需要一个操作系统。我选择了 SuSE Linux Enterprise Server 8 (SLES 8),这是基于我在 SuSE 的 32 位产品中看到的。虽然 SLES 8 不是一个花哨、华丽的操作系统,但它的流畅性和易用性给我留下了深刻的印象。它配备了基本的 GNOME 和 KDE 环境以及一整套开发工具,使其成为安装或开发专业应用程序的绝佳基础。

如果这还不够,SuSE 的 GUI 设置工具 YaST2 已经完全让我信服 SLES 8 了。YaST2 可以完成从打印机配置和用户添加,到高级防火墙配置的所有工作,而且它做得快速、清晰且几乎没有意外。我发现它唯一不能做的事情是配置非 ALSA 声卡——稍后会详细介绍。

通常,在 x86 架构以外的任何架构上安装许多发行版时,软件包都会过时,有些东西无法正常工作,并且会出现其他烦恼。SLES 8 配备了内核 2.4.19、KDE 3.0、Samba 2.2 和 XFree86 4.2。这些软件包不是最前沿的,但相当新。它们也协同工作良好,除了一个声音上的烦恼之外,我没有发现任何我无法轻易解决的问题。

正如我所说,让声音在这个系统上工作是一次冒险。Audigy 2 相对较新,我感觉让它工作可能是一件苦差事。我没有失望。YaST2 中的 ALSA 配置器正确识别了声卡,但没有声音输出。我尝试使用 SourceForge 上提供的 emu10k1 项目。在为最新版本的 OSS 驱动程序手动调整 /etc/modules.conf 后,模块加载了,但系统仍然没有声音。在放弃并提交错误报告之前,我搜索了 SourceForge 错误数据库,发现 CVS 版本据报道可以工作。但是,它会在 64 位平台上工作吗?在执行了一些 make 脚本后,我发现 CVS 版本与主板上的 Realtek 芯片冲突,所以我将其列表从 modules.conf 中删除并重新启动。随后从扬声器中流出的 Theodorakis 的“Ode to Zeus”的乐声宣告了胜利。

缺乏时间和设备阻止了任何类型的高端技术测试,但我认为自己是一个不错的音响发烧友,所以我设置了一个测试来让自己确信 Audigy 2 值得投资。我和我的妻子并排使用配备相同扬声器组的机器。我将她系统的声音线缆插入终极 Linux 电脑上的相应插孔,并从 CD 中开始播放 Arnaud 的“Bulger's Dream”。我在两个测试中都使用了关闭 EQ 的 XMMS,我不得不说,从质量上来说,Audigy 2 在清晰度和频率响应方面都远胜于我的 Esoniq 5880。它明显更清晰,并且在高音量设置下没有产生任何失真或嗡嗡声。市场上可能有比 Audigy 2 功能更强大的声卡,但我们知道这款声卡是一个很好的起点。此外,它可以在 64 位平台上工作,这本身就是一项成就。

在截稿之前,我们能够解决一个粗糙的地方——显卡。如果您阅读了我 2003 年 8 月的 Web 文章 [www.linuxjournal.com/article/6922],您可能会记得我们拒绝了 ATI 的 Fire GL X1,因为它只有适用于 32 位平台的驱动程序。我在 ATI 的消息来源不愿就 64 位版本发表评论。ATI 代表至少主动问我,在阅读了我的 Web 文章后,我正在运行什么显卡以及为什么我更换了显卡。

当我最初尝试运行 NVIDIA Quadro FX 1000 显卡的驱动程序时,X 服务器在最大 CPU 模式下挂起,即使该驱动程序已经可用了六个多月。Monarch 让我直接与 NVIDIA 取得了联系。NVIDIA 工程师 Mark Visconti 查看了我当前的信息,并建议我升级 BIOS,这似乎是一个工程样品版本。我尽职尽责地下载了 BIOS 和刷新实用程序,但两者都拒绝工作。幸运的是,由于之前主板出现过问题,我在主板制造商 Arima 有一个联系人。事实证明,必须向 PHLASH.EXE 提供一些神秘的参数——即使现在,您仍然必须启动 DOS 才能刷新 BIOS——才能加载新映像。完成此步骤后,我返回并重置了 Visconti 推荐的 BIOS 设置。这次启动进入 Linux 时,startx终于用一个带有警告炸弹盒子的背景奖励了我,这是一个 root X 登录。

我能够验证服务器正在 3-D 模式下运行,但我们在付印前没有时间进行视频基准测试。鉴于我们对 32 位机器上的 NVIDIA 显卡的测试,我们应该看到帧速率在 50 多到 50 多帧,甚至更高。如果我们确实设法在某个时候对其进行测试,您将能够在我们的网站上找到这些结果。

NVIDIA:专有但响应迅速

在完成本文的最后润色时,我接到了 NVIDIA 的 Jeff Brown 的电话,他跟进了解了他们的驱动程序在终极 Linux 电脑上的表现。我请他对 NVIDIA 为什么没有开源他们的驱动程序发表评论,这可能会更快地解决我的问题。他的回答是,驱动程序——其核心是一个可以在从 Windows 到 Linux 到 FreeBSD 到 OS X 的所有系统上运行的单一代码库——约占 NVIDIA“知识产权”内容的 50%,其余 IP 是 GPU 本身。相比之下,在网卡上,Intel 似乎将大部分智能都放在了网卡本身上,随后 GPL 了驱动程序。为了对开源社区做出妥协,NVIDIA 承诺保持支持和反馈渠道畅通。Brown 说,NVIDIA 的工程师之一 Andy Mecham 将他一半的工作时间用于在 Linux 论坛 nvnews.com 上为人们提供帮助。我在自己寻找答案的过程中看到了这一点;安迪的名字似乎在论坛上相当常见。Brown 还说,真正为 Linux 方面买单的人,视觉效果协会的成员(在他提到的成员中,迪士尼的名字让我印象深刻)对 NVIDIA 的支持感到满意。这些人将使用类似于 2003 年终极 Linux 电脑的商业支持系统作为多媒体工作站来完成前沿工作。

Monarch 能够让我这个单独的最终用户直接联系到一位工程师,这位工程师确实正确地找到了问题所在——而且没有访问我的机器——这很好地说明了 NVIDIA 对支持的承诺。虽然我认为我们不会很快看到任何 NVIDIA 显卡的 GPL 驱动程序,但我认为也许我们正在获得次好的东西——一家知道未来在哪里,并致力于帮助我们到达那里,而不会泄露其秘诀的公司。

然而,这台机器的粗糙之处仅在于表面功夫。除了 Chromium(视频测试),我们还能够在机器上运行其余的Linux Journal 基准测试套件(bonnie++、postgres-test、tiobench 和内核编译),结果令人印象深刻。使用两个 CPU 的基本内核编译平均耗时 1 分 35 秒。作为比较,我的个人 1.1GHz Duron 完成编译耗时 6 分 50 秒。总的来说,Opteron/3ware 架构在速度方面似乎提供了大约 15% 的优势,以千兆赫为单位。Opteron 具有一个集成的内存控制器,它绕过北桥,为您提供一个 64 位双工通道,直接连接到 DIMM。这款特殊的机器还允许在 32 位模式下使用单条 DIMM,这对于调试硬件问题非常方便,但会牺牲速度。

Tiobench 产生了其他有趣的数据,如清单 1 所示。我比较了 3ware/Western Digital 线束在 Athlon 2800 上的性能与在 ULB 上的性能。这些数字并不完全是苹果对苹果,因为我利用了 Opteron 的 64 位寻址来处理更大的文件大小——但这本身就产生了有趣的结果。32 位平台在单线程顺序读取方面似乎做得更好,但在其余运行中产生了相当的数字。在随机读取和写入方面,ULB 的绝对速率落后,但延迟却没有。尽管 ULB 使用的文件大小是 Athlon 的两倍多,但它仍然完全击败了 Athlon。我怀疑顺序读取和写入运行结束时数字的下降是由于达到 3ware 卡的缓冲区限制的人工痕迹,考虑到在那一点之前曲线非常平坦。顺便说一句,这些数字在大多数部门的绝对值方面都表现良好,并且在性价比方面——与我之前测试的 Dell Precision 650n SCSI 系统相比非常出色。

清单 1. Tiobench 输出(为节省空间而编辑)

Sequential Reads
               File  Blk   Num                 Avg
Identifier     Size  Size  Thr Rate  (CPU%)  Latency
------------- ------ ----- --- ----- ------   -----
Athlon         1792  4096   1  81.60 29.29%   0.048
Opteron        4096  4096   1  59.30 14.86%   0.066
Athlon         1792  4096   2  58.07 30.61%   0.132
Opteron        4096  4096   2  62.18 13.46%   0.125
Athlon         1792  4096   4  54.37 61.00%   0.285
Opteron        4096  4096   4  59.19 14.59%   0.260
Athlon         1792  4096   8  55.29 64.72%   0.542
Opteron        4096  4096   8  48.44 13.17%   0.625

Random Reads
               File  Blk   Num                 Avg
Identifier     Size  Size  Thr Rate  (CPU%)  Latency
------------- ------ ----- --- ----- ------   -----
Athlon         1792  4096   1  1.32  0.975%   2.952
Opteron        4096  4096   1  1.18  0.151%   3.296
Athlon         1792  4096   2  2.29  1.374%   3.354
Opteron        4096  4096   2  1.93  0.740%   4.017
Athlon         1792  4096   4  3.18  2.859%   4.639
Opteron        4096  4096   4  2.76  1.236%   5.431
Athlon         1792  4096   8  3.70  2.221%   7.264
Opteron        4096  4096   8  2.96  2.085%   9.860

Sequential Writes
               File  Blk   Num                 Avg
Identifier     Size  Size  Thr Rate  (CPU%)  Latency
------------- ------ ----- --- ----- ------   -----
Athlon         1792  4096   1  20.65 11.17%   0.126
Opteron        4096  4096   1  28.15 10.78%   0.101
Athlon         1792  4096   2  22.15 26.81%   0.228
Opteron        4096  4096   2  22.69 14.23%   0.292
Athlon         1792  4096   4  22.97 29.67%   0.472
Opteron        4096  4096   4  20.04 14.44%   0.714
Athlon         1792  4096   8  21.87 27.93%   0.856
Opteron        4096  4096   8  13.42 11.03%   1.978

Random Writes
               File  Blk   Num                 Avg
Identifier     Size  Size  Thr Rate  (CPU%)  Latency
------------- ------ ----- --- ----- ------   -----
Athlon         1792  4096   1  0.60  0.234%   0.014
Opteron        4096  4096   1  0.47  0.121%   0.009
Athlon         1792  4096   2  0.59  0.479%   0.028
Opteron        4096  4096   2  0.50  0.159%   0.011
Athlon         1792  4096   4  0.64  0.542%   0.029
Opteron        4096  4096   4  0.49  0.155%   0.012
Athlon         1792  4096   8  0.68  0.558%   0.036
Opteron        4096  4096   8  0.50  0.192%   0.013

在收到一些关于我们讨论 ULB 的 Web 文章系列的反馈后,我们决定需要测试噪音水平。ULB 在机箱前 10 英寸处的得分为 50.5dBa,在操作员位置(机箱顶部上方 24 英寸处)的得分为 50.0dBa,在机箱后部 10 英寸处的得分为 60.0dBa。显然,这些数字不如我们希望的那么低,而前面提到的戴尔的得分分别为 47、45 和 55dBa。我认为罪魁祸首是 Thermaltake 散热器;当我们之前在内部使用 AMD 散热器时,它要安静得多。然而,AMD 版本确实变得相当热。ULB 版本在温度方面似乎非常稳定,但代价是额外的噪音。我怀疑,从现在到本文在报摊上刊登之间,Zalman 和 PC Power and Cooling 等公司将为 Opteron 提供像他们现在为嘈杂的 Athlon 提供的产品。

终极 Linux 电脑,就像 Linux 本身一样,是一个正在进行中的工作。当您阅读本文时,新的玩具将上市,更不用说新的软件,甚至可能是一个主要的内核修订版。Escalade 8506 也将上市,以及更新、更大的 Western Digital Raptor、DVD 加或减 RW 组合驱动器——甚至可能是 Athlon 64 CPU 和主板。将此设计作为起点,并进行您自己的改进。

作者要感谢 3ware、Western Digital、NVIDIA、Arima 和 SuSE 的贡献,以及 Monarch Computer Systems 将所有硬件捆绑在一个软件包中并使其发挥作用。

图形驱动程序和开源

自从 3dfx 被收购以来,所有三家主要的图形公司——ATI、NVIDIA 和 Matrox——都对其 3-D 加速驱动程序采用了闭源。这种发展令人不安,原因有几个。首先,我们现在依赖于供应商来开发——和修复——驱动程序,按照他们希望遵循的任何时间表。如果他们想首先为人类已知的每个其他操作系统发布驱动程序,并让我们等待两年,甚至完全忽略 Linux,那是他们的选择。鉴于当前图形领域进入市场的障碍,你我和我都无能为力。即使这些公司选择及时为我们提供支持,我们也无法访问很多东西,包括 beta 代码。正是通过拉取 CVS 代码,我才让 Audigy 2 播放。

纯粹主义者会指出,发布代码不仅可以增加可以调试您的代码的人数,还意味着可以检查代码是否存在可疑行为,这最近一直是图形驱动程序中的一个热门话题。最后,没有太多理由不发布代码;没有显卡您就无法使用它。我不知道保持驱动程序专有的官方原因——我一直忙于尝试让它们工作而无暇顾及。但我希望看到公开辩论这些原因。我认为 Linux 社区和图形界人士可以协商达成友好、公开的解决方案,让我们所有人都能获得我们需要的:最佳操作系统上最佳显卡的最佳驱动程序。我怀疑第一家来到谈判桌前的公司也会看到其底线有所改善,因为 Linux 用户倾向于用他们的硬件购买预算来支持他们的原则。

Glenn Stone 是一名 Red Hat 认证工程师、系统管理员、技术作家、封面模特和普通的 Linux 小弟。自 1999 年以来,他一直手工组装计算机以获得乐趣和利润,并且他是太平洋西北地区一位快乐的居民。

加载 Disqus 评论