使用 Bash 脚本将 CPU 温度写入端口 0x80 Bios 调试卡

使用 Bash 脚本将 CPU 温度写入端口 0x80 Bios 调试卡

我在 PCI 插槽中安装了端口 0x80 BIOS 后调试卡。我想在启动后有目的地使用它,将 CPU 温度显示在卡上。地址占用一个字节并以十六进制显示。如何将两位十进制摄氏温度值转换为单个字节以写入卡?请记住,显示是十六进制的,因此字节输出需要转换为以 10 为基数可读的内容,尽管此时仅获取字节会有所帮助。谷歌搜索让我发疯。

例如,echo d | dd of=/dev/port bs=1 count=1 seek=128 显示 64,即字母 d 的 ASCII 字节。

cat /sys/class/hwmon/hwmon0/temp2_input | cut -c1-2

以两个字节的 ASCII 形式给出 CPU 温度(以 °C 为单位):58

bash 命令字符串会更好,因为它可以通过 cron 作业或 systemd 计时器来调用。

谢谢!!!

BIOS调试卡

答案1

您想要将十进制值读取的温度转换为与十六进制值相对应的字符,该字符在显示时与温度读取相同......

这个请求听起来比实际情况更复杂;printf可用于打印与给定字符代码对应的字符:

$ printf "\x64\n"
d

所以你会得到你想要的结果

printf "\x$(cut -c1-2 < /sys/class/hwmon/hwmon0/temp2_input)" | dd of=/dev/port bs=1 count=1 seek=128

相关内容