当我尝试调用 dahdi_cfg(或者有时甚至只是加载内核模块)来配置 Digium Wildcard TE420 Quad-Span T1 PCI-E 卡时,我一直看到机器检查异常。运行 Debian Wheezy(内核 3.2.0-4),dahdi 内核模块 2.6.1。
机器检查看起来像这样(使用 netconsole 恢复;MCE 后机器完全死机):
CPU 1: Machine Check Exception: 5 Bank 5: b200121020080400
RIP !INEXACT! 10:<ffffffff810146a3> {mwait_idle+0x7f/0xac}
TSC b773cee10f
PROCESSOR 0:6f7 TIME 1354843514 SOCKET 0 APIC 1 microcode 66
Run the above through 'mcelog --ascii'
CPU 1: Machine Check Exception: 5 Bank 0: b200004000000800
RIP !INEXACT! 10:<ffffffff810146a3> {mwait_idle+0x7f/0xac}
TSC b773cee10f
PROCESSOR 0:6f7 TIME 1354843514 SOCKET 0 APIC 1 microcode 66
Run the above through 'mcelog --ascii'
Some CPUs didn't answer in synchronization
Machine check: Processor context corrupt
Kernel panic - not syncing: Fatal machine check on current CPU
通过摆弄其插入的 PCI Express 插槽,以及移除其他 PCI-E 卡(nVidia 显卡),有时它不会立即进行机器检查。然后我设法在内核日志中发现错误。我收到这些消息,错误是最后一行:
[ 6.222755] wct4xxp 0000:02:08.0: 5th gen card with initial latency of 2 and 1 ms per IRQ
[ 6.222767] wct4xxp 0000:02:08.0: Firmware Version: c01a016d
[ 6.225338] wct4xxp 0000:02:08.0: FALC Framer Version: 3.1
[ 6.225477] wct4xxp 0000:02:08.0: Found a Wildcard: Wildcard TE420 (5th Gen)
[ 6.225525] wct4xxp 0000:02:08.0: VPM450: Not Present
[ 13.089474] wct4xxp 0000:02:08.0: Span 1 configured for ESF/B8ZS
[ 13.089616] wct4xxp 0000:02:08.0: RCLK source set to span 1
[ 13.089621] wct4xxp 0000:02:08.0: Recovered timing mode, RCLK set to span 1
[ 13.089627] wct4xxp 0000:02:08.0: SPAN 1: Primary Sync Source
[ 15.192016] wct4xxp 0000:02:08.0: Interrupts not detected.
检查/proc/interrupts
确实确认每秒 1000 个预期中断不存在。此外,警报灯(当前没有插入 T1)也没有亮起;板上没有灯亮。
谷歌搜索没有发现太大用处。 dahdi 驱动程序有一个补丁,但它应该已经包含在我正在使用的版本中。其他人在使用旧版本的主板时遇到了这个问题(通过购买较新的主板来解决),但我有较新的版本。不幸的是我没有备用机器可以检查。
答案1
事实证明修复相当简单——BIOS 升级。从 0801 升级到 1406(截至撰写本文时的最新版本,从 2009 年开始)修复了该问题。
直接链接到1406 BIOS 更新。或者P5N-E SLI下载页面应该有最新的。