是否可以在 Dell Optiplex GX520 PC 上设置诊断灯?

是否可以在 Dell Optiplex GX520 PC 上设置诊断灯?

我有一台戴尔电脑,前面有 4 个诊断灯,在 POST 期间亮起,然后保持熄灭状态。是否可以从 Windows 中操纵它们?使用写入低内存位置是否可行inpout32?欢迎任何想法和知识 - 我根本没有找到有关此主题的任何讨论。

答案1

由于它们仅在 POST 中处于活动状态,我怀疑它们不是由内存控制的,更可能是由端口控制的。基本上在 POST 期间,BIOS 将各种 POST 测试的结果回显到端口 80。与其说是内存位置,不如说是可寻址的硬件端口 - 例如端口 378h 是 LPT 端口。BIOS 打开与该硬件线路的连接,通过在该线路上推送某个字节将上一次已知的良好测试输出给它。POST 卡监视端口 80 地址,读取传入的内容并显示结果。

也就是说,理论上你可以编写某种程序来处理该级别的硬件,并将字节推送到端口,看看它是否激活 LED。我不知道 LED 的监视器端口是 80 还是其他端口,以及/或者他们是否有某种芯片来读取代码并将其转换为特定的 LED 模式。

答案2

感谢 Blackbeagle,经过一番尝试,我终于搞清楚了一切。所以,以下是如何控制 Dell Optiplex GX520 的前灯:

您需要写入 PC 上的硬件端口。在 Windows XP 及以下版本中,可以使用inpout32.dll以下库:http://logix4u.net/parallel-port/16-inpout32dll-for-windows-982000ntxp这里,位 1 是最低有效位,而位 8 是最高有效位。

  • 对角线灯 1:
    • 打开:将端口 8B8h 上的位 1 设置为关闭
    • 关闭:将端口 8B8h 上的位 1 设置为开启
  • 对角线灯 2:
    • 打开:将端口 88Eh 上的位 4 设置为关闭
    • 闪烁:设置端口 89Ah 上的位 4
    • 关闭:将端口 88Eh 上的位 4 设置为开启
  • 对角线灯 3:
    • 打开:将端口 88Eh 上的位 5 设置为关闭
    • 闪烁:设置端口 89Ah 上的位 5
    • 关闭:将端口 88Eh 上的位 5 设置为开启
  • 对角线灯 4:
    • 开启:将端口 8B8h 上的位 4 设置为开启
    • 关闭:将端口 8B8h 上的位 4 设置为关闭
  • HDD 活动指示灯:
    • 始终开启:将端口 C34h 上的位 1 设置为关闭
    • 始终关闭:将端口 C34h 上的位 3 设置为关闭
    • 正常:在端口 C34h 上设置位 1 和位 3
  • 电源指示灯:
    • 亮起:将端口 C50h 上的位 1 设置为关闭
    • 暗淡时:在端口 C50h 上设置位 1
    • 关闭:将端口 C50h 上的位 1 设置为打开,并将端口 C5Eh 上的位 1 设置为关闭
  • CD/DVD 灯:(这将断开驱动器与系统的连接!)
    • 亮 3 秒。(通过重新启动驱动器):发送值1到端口C53h
    • 重置上述命令:发送值8到端口C53h

警告:向某些硬件端口(此处未列出)发送值可能会导致系统崩溃,需要关闭电源才能修复。此外,这可能不适用于其他戴尔型号。

相关内容