Bash 스크립트를 사용하여 포트 0x80 Bios 디버그 카드에 CPU 온도 쓰기

Bash 스크립트를 사용하여 포트 0x80 Bios 디버그 카드에 CPU 온도 쓰기

PCI 슬롯에 포트 0x80 BIOS 포스트 디버그 카드를 설치했습니다. 부팅 후 카드에 CPU 온도를 표시하기 위해 의도적으로 이것을 사용하고 싶습니다. 주소는 1바이트를 차지하고 16진수로 표시됩니다. 카드에 쓰기 위해 두 자리 십진수 섭씨 온도 값을 단일 바이트로 변환하는 방법은 무엇입니까? 디스플레이는 16진수이므로 바이트 출력을 10진수로 읽을 수 있는 것으로 변환해야 한다는 점을 명심하세요. 하지만 이 시점에서는 바이트를 얻는 것만으로도 도움이 됩니다. 인터넷 검색이 나를 미치게 만듭니다.

예를 들어, echo d | dd of=/dev/port bs=1 count=1 seek=128 문자 d의 ASCII 바이트인 64를 표시합니다.

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

CPU 온도를 °C 단위로 ASCII 2바이트로 제공합니다: 58

bash 명령 문자열은 cron 작업이나 시스템 타이머를 통해 호출할 수 있으므로 더 좋습니다.

감사해요! ! !

BIOS 디버깅 카드

답변1

10진수 값으로 표시된 온도 판독값을 온도 판독값과 동일하게 표시되는 16진수 값에 해당하는 문자로 변환하려고 합니다.

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

관련 정보