Linux

使用 Bash 腳本將 CPU 溫度寫入埠 0x80 Bios 調試卡

  • July 4, 2018

我在 PCI 插槽中安裝了埠 0x80 BIOS 調試後卡。我想在啟動後通過在卡上顯示 CPU 溫度來有目的地使用它。地址佔用一個字節並以十六進制顯示。如何將兩位十進制攝氏溫度值轉換為單個字節以寫入卡?請記住,顯示是十六進制的,因此字節輸出需要轉換為以 10 為基數的可讀內容,儘管此時僅獲取字節會有所幫助。Google搜尋讓我發瘋。

例如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 調試卡

您想將讀取為十進制值的溫度轉換為對應於十六進制值的字元,當顯示時,讀取與溫度相同…

這個請求聽起來比實際上更複雜。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

引用自:https://unix.stackexchange.com/questions/453486