Gravando a temperatura da CPU na porta 0x80 Bios Debug Card com Bash Script

1

Eu tenho uma placa de depuração de post de porta 0x80 instalada em um slot PCI. Eu quero usá-lo propositadamente após a inicialização, tendo a temperatura da CPU exibida no cartão. O endereço recebe um byte e é exibido em HEX. Como converto os valores de temperatura Celsius decimais de dois dígitos em um único byte para gravar no cartão? Lembre-se, a exibição é HEX, portanto, a saída de bytes precisa ser convertida como tal em algo que seja legível na base 10, embora apenas obter o byte seja útil neste momento. Googling está me deixando louca.

por exemplo. %código% dá uma exibição de 64, o byte ASCII para a letra d.

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

fornece a temperatura da CPU em ° C em dois bytes de ASCII: 58

Uma string de comando bash seria preferível, pois poderia ser chamada com uma tarefa cron ou temporizadores systemd.

Obrigado !!!

    
por Kyle Chapman 04.07.2018 / 22:07

1 resposta

1

Você deseja converter a temperatura, lida como um valor decimal, em um caractere correspondente ao valor hexadecimal que, quando exibido, indica o mesmo que a temperatura ...

O pedido parece mais complexo do que realmente é; printf pode ser usado para imprimir um caractere correspondente a um determinado código de caractere:

$ printf "\x64\n"
d

Então você vai ver o resultado que você está fazendo

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