Como encontrar o endereço hexadecimal do sensor de temperatura?

1

Estou tentando utilizar um script (acerf e eu acredito) para a minha versão do laptop Acer Aspire One para controlar o ventilador on / off em determinadas temperaturas. Para funcionar corretamente, precisa de valores do sensor de temperatura. Como posso encontrar o endereço hexadecimal do sensor de temperatura? Eu tentei dmidecode, mas eu nem sei se é o lugar correto para procurar por ele.

sub get_temp
{
    initialize_ioports();
    my $r = hex("xxx"); # Temperature
    my $temp = read_ec($r);
    close_ioports();
    return $temp;
}

Edit: de alguma forma eu achei! apenas no caso, se alguém estiver procurando por este número, por exemplo, aspire um 722 its: hex ("0xB0").

    
por kshanowski 03.09.2018 / 07:58

2 respostas

1

Verifique se você tem o pacote lm-sensors instalado. Existem vários utilitários de linha de comando úteis que podem retornar essas informações, incluindo isadump e detecção de sensores que fazem parte desse pacote.

    
por 03.09.2018 / 08:14
0

Vamos supor que o sensor tenha sido conectado via barramento PCI.

Primeiro de tudo, localize seu diretório de sensores usando o nome do driver (módulo do kernel):

grep DRIVER /sys/bus/pci/devices/*/uevent

Você verá um lote de linhas como este:

/sys/bus/pci/devices/0000:00:02.0/uevent:DRIVER=pcieport
/sys/bus/pci/devices/0000:00:04.0/uevent:DRIVER=pcieport
/sys/bus/pci/devices/0000:00:11.0/uevent:DRIVER=ahci
/sys/bus/pci/devices/0000:00:12.0/uevent:DRIVER=ohci-pci
/sys/bus/pci/devices/0000:00:12.2/uevent:DRIVER=ehci-pci
/sys/bus/pci/devices/0000:00:13.0/uevent:DRIVER=ohci-pci
/sys/bus/pci/devices/0000:00:13.2/uevent:DRIVER=ehci-pci
/sys/bus/pci/devices/0000:00:14.0/uevent:DRIVER=piix4_smbus
/sys/bus/pci/devices/0000:00:14.1/uevent:DRIVER=pata_atiixp
/sys/bus/pci/devices/0000:00:14.2/uevent:DRIVER=snd_hda_intel
/sys/bus/pci/devices/0000:00:14.5/uevent:DRIVER=ohci-pci
/sys/bus/pci/devices/0000:00:16.0/uevent:DRIVER=ohci-pci
/sys/bus/pci/devices/0000:00:16.2/uevent:DRIVER=ehci-pci
/sys/bus/pci/devices/0000:00:18.3/uevent:DRIVER=k10temp
/sys/bus/pci/devices/0000:01:00.0/uevent:DRIVER=nvidia
/sys/bus/pci/devices/0000:01:00.1/uevent:DRIVER=snd_hda_intel
/sys/bus/pci/devices/0000:02:00.0/uevent:DRIVER=r8169

Uma dessas linhas conterá o nome do módulo do kernel do seu sensor - no exemplo acima, é k10temp e a linha correspondente é:

/sys/bus/pci/devices/0000:00:18.3/uevent:DRIVER=k10temp

Assim, agora sabemos o diretório do sensor - no exemplo, este diretório é:

/sys/bus/pci/devices/0000:00:18.3/

O arquivo device do diretório contém o endereço hexadecimal do sensor, portanto execute (para o exemplo acima):

cat /sys/bus/pci/devices/0000:00:18.3/device

A saída será assim:

0x1703

Se você não puder reconhecer o nome do módulo do kernel do sensor, instale lm-sensors , execute sudo sensors-detect e sensors depois - você encontrará o nome do módulo do kernel facilmente já que verá algo assim para um dos sensores:

k10temp-pci-00c3
    
por 03.09.2018 / 08:59