科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

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

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

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

IRQ 与 PCI

然而,PCI 总线有点不同。在系统中,PCI 分配了四个 IRQ 可供 PCI/AGP 卡使用。通常,多个设备可以共享这些 IRQ。(如果是这种情况,要确保共享 IRQ 的所有设备是 PCI 和 AGP。)尤其对于在可能有五个 PCI 和一个 AGP 插槽的现代机器,共享 IRQ 技术是非常重要的。没有共享 IRQ 技术,系统中使用 IRQ 的卡不可能超过四个。

但是,PCI IRQ 共享有一些限制。现代主板的 BIOS 和 Linux 内核通常支持 PCI IRQ 共享技术,但也有某些 PCI 卡在与另一个设备共享 IRQ 时,会直接拒绝正常工作。如果遇到系统随机死锁,特别是死锁发生与使用某个特定的硬件设备相关时,不妨尝试让 PCI 设备使用自己的 IRQ。第一步是查看系统中是否有任何设备共享 IRQ。可以遵循以下步骤来做到:

使用系统中的各种设备,如,磁盘、声卡、显示卡、SCSI 卡等等。这确保 Linux 会处理这些设备的中断。

用 "cat /proc/interrupts" 命令,会显示 Linux 内核到目前为止处理的所有中断的列表及其数目。查看该列表的最右栏。如果同一行中列有两个或更多设备,那么这些设备共享那个特定的 IRQ。

如果遇到有问题的设备是非 PCI 设备(ISA 或其它旧卡),那么您会发现 IRQ 冲突,可以尝试通过 BIOS、isapnptools 包或者对外设进行物理跳线来解决。请注意,如果设备是集成在主板上,即使它不占用物理 PCI 插槽,它也是 PCI 设备。

如果有问题的所有设备是 PCI 或 AGP 设备,那么是否有问题取决于硬件。通过以下步骤使所有的 PCI/AGP 设备有自己的 IRQ:

进入系统 BIOS,禁用所有不用的外设(USB、并行端口等等)。这可以释放一些 IRQ, 让每个设备尽可能的分配它自己的唯一的 IRQ。

进入 BIOS 的 PnP 部分,确保 BIOS 被配置成“非 PnP”操作系统。选中 "Reset ESCD data" 选项。这会强制 BIOS 在下次重新引导系统时给所有硬件设备重新分配 IRQ。

重新引导 Linux,使用硬件,用 "cat /proc/interrupts" 命令查看结果。现在,希望所有设备都使用自己的 IRQ。

如果仍有两个受怀疑的设备共享 IRQ,那么还有两种额外选项。有些 BIOS 设置程序可以允许您将确定的某个 IRQ 分配给特定的 PCI 插槽。很少见这种 BIOS 设置程序,如果您有其中之一,可以使用这种功能来消除冲突。如果 BIOS 中没有这个选项(大多数情况下没有),那么还有一种方法可以确保解决这种问题-关机,关闭电源,从插座上拔掉电源,并等几分钟。然后,打开系统机箱, 将 PCI 卡换一个插槽。这种办法好象不常见,但绝对管用,特别是当系统中有多余的 PCI 插槽时,这种办法特别有用(但您要花一些时间来给每一块卡找正确的插槽。)

我使用了这个“PCI 调换诀窍”,能够使系统中的所有设备都使用唯一的 IRQ。差不多了。正如您所见,有两个 IDE 设备仍然共享一个 IRQ:

  
  
  # cat /proc/interrupts
   CPU0
   0: 52063600 XT-PIC timer
   1: 616810 XT-PIC keyboard
   2: 0 XT-PIC cascade
   5: 89084 XT-PIC ide2, ide3
   7: 1515741 XT-PIC eth0
   8: 155928 XT-PIC rtc
   9: 1139761505 XT-PIC nvidia
   10: 164000 XT-PIC Ensoniq AudioPCI
   12: 4458823 XT-PIC PS/2 Mouse
   14: 664176 XT-PIC ide0
   15: 38661 XT-PIC ide1
  NMI: 0
  ERR: 0 
  
  

但这是正常的,因为 ide2 和 ide3 设备是集成在 Promise FastTrak IDE 卡的同一芯片上。

现在(几乎)所有设备都有唯一的 IRQ,我尝试加速驱动程序,并且……仍然在不到一个小时内经历了一次死锁。显然,共享的 PCI IRQ 根本不是问题所在。唉……得花些时间看看其它地方(再一次)。

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

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

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