科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux操作系统硬件稳定性指南(下) (1)

Linux操作系统硬件稳定性指南(下) (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Linux 之所以声誉卓著是它拥有非凡的稳定性。但如果硬件有缺陷或配置不当,即便是世界上最稳定的操作系统,也不能发挥其优越之处。

作者:Daniel Robbins 来源:IBM 2007年10月19日

关键字: 稳定性 硬件 操作系统 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

驱动程序、IRQ 与 PCI 等待时间

Linux 之所以声誉卓著是它拥有非凡的稳定性。但如果硬件有缺陷或配置不当,即便是世界上最稳定的操作系统,也不能发挥其优越之处。在本文中,Daniel Robbins 分享他在让 NVIDIA TNT 图形卡使用 NVIDIA 的加速驱动程序在 Linux 下工作方面的经历。如同他所做的那样,向您演示如何诊断以及解决 IRQ 和 PCI 等待时间计时器问题 -可以使用这些技术,来确保系统不会经历死锁、不一致行为或数据丢失。

不稳定性的诸多原因

稳定性问题通常不是由有缺陷的硬件所引起的,但硬件配置不当或选择异常的驱动程序会造成这类问题。当我试图在 Linux 下让我的帝盟 Viper V550(一种基于 NVIDIA TNT 芯片的 AGP 图形卡)使用 NVIDIA 自己的加速驱动程序时,就开始了这方面的经历。

NVIDIA 有它们自己的 Linux 显示驱动程序,它们是 NVIDIA、SGI 和 VA Linux 的合作结晶。与包括在 Xfree86 4.0 中的标准的仅 2D NVIDIA 驱动程序相比,这些驱动程序有许多优越之处。例如,它们有完全加速的 3D 支持。而且,这些驱动程序的特色是以 OpenGL 1.2 为实现,而不只是 Mesa 的增强版。所以,总而言之,若您有基于 NVIDIA 的图形卡,则这些加速驱动程序是您希望使用的,至少理论上如此。我让这些驱动程序正常工作的尝试,最终转变成一次极佳的学习经历,至少可以这么说。

在安装完加速 Linux NVIDIA 驱动程序之后(请参阅本文后面的参考资料),启动 Xfree86,开始摆弄所有 3D 应用程序,现在,有应该有的出色加速。到那时为止,以前我必须重新引导到 Windows NT 才能利用 3D 加速。现在,虽然我不介意 NT,但必须重新引导才能使用 3D 应用,就有点让人恼火了,我非常高兴又少了一个要离开 Linux 而重新引导机器的原因。然而,在大约摆弄了一小时左右,我对于Linux 3D 渴望,经历了一次致命挫折 -机器死锁了。鼠标完全一动不动,屏幕冻结,并且必须重新引导系统。

是的,遇到了某种稳定性问题。但我无法确切知道是什么造成这一问题。是异常的硬件,还是图形卡配置不当呢?或者可能是驱动程序有问题- 是它不喜欢基于 VIA KT133 芯片的 Athlon 主板吗?无论什么问题,我希望尽快解决它。在本文中,我将分享如何解决硬件稳定性问题的过程。虽然,您所碰到的问题不一定与这完全相同,但我用来诊断和(大多数)解决问题的步骤在本质上是大同小异的,并且也可应用到许多不同类型的 Linux 硬件问题。

首先,硬件

我首先想到,可能是异常或需要冷却的硬件。一方面,帝盟 Viper V550 好象在 Windows NT 下没有问题。另一方面,可能是 Linux 使芯片有些过载,然后引起与发热相关的死锁。V550 确实极烫,它的 OEM 散热片似乎来不及散热。死锁和图形卡不够冷却的事实合在一起说服我转向 PC Power and Cooling(请参阅参考资料),为我的 V550 购买了一个迷你集成的散热片/风扇。

所以,在我收到 Video Cool 后,将显示卡上的 OEM 散热片去掉(造成质保无效),清洁 TNT 芯片,然后将 Video Cool 固定在芯片上。结果呢?显示卡不烫了,但死锁仍然存在。我从这段特殊的经历所吸取的教训是-如果一开始就确定系统冷却充足,那么根本不必担心由于不充足冷却引起的元件故障。这本身就是要投入时间和精力来确保工作站和服务器凉爽运行的极佳理由。既然已经考虑了发热问题,我知道死锁问题不太可能由异常的硬件引起,并且开始查看其它地方。

新驱动程序 -以及可能的解决方案?

我对 NVIDIA 驱动程序本身是否是问题所在,有点半信半疑。幸运的是,新版本的驱动程序刚刚发布,所以我立即升级,希望它能解决稳定性问题。遗憾的是,它没有,在 openprojects.net 上的 #nvidia 频道,我与其他人讨论之后,发现不是每个人都能够使驱动程序稳定运行,然而,对于许多人,它是稳定运行的。

在 #nvidia 上,有人建议我确保 V550 没有与另一块卡共用一个 IRQ。与标准的 XFree86 驱动程序不同,加速 NVIDIA 驱动程序需要一个 IRQ 来正常运行。要查看它是否有自己的专用 IRQ,输入 "cat /proc/interrupts",您瞧,V550 与 IDE 控制器共用一个中断。在我解释这个问题之前,先讲述一点有关 IRQ 的简要背景。

PC 通常使用 IRQ 以及硬件中断,来允许外设,如视频卡和磁盘控制器,用信号通知 CPU,它们准备处理数据。在 PCI 总线出现以前,机器中的每个设备都有自己专用的 IRQ,这一点是很重要的。如果您的机器仍然使用 ISA 外设,那么这仍然是一个事实 - 所有非 PCI 设备都应该有自己专用的 IRQ。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章