온도 센서의 16진수 주소를 찾는 방법은 무엇입니까?

온도 센서의 16진수 주소를 찾는 방법은 무엇입니까?

특정 온도에서 팬 켜기/끄기를 제어하기 위해 Acer Aspire One 노트북 빌드에서 스크립트(내 생각으로는 acerfand)를 사용하려고 합니다. 제대로 작동하려면 온도 센서의 값이 필요합니다. 온도 센서의 16진수 주소를 찾는 방법은 무엇입니까? dmidecode를 사용해 보았지만 검색하기에 적합한 위치인지조차 모르겠습니다.

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

편집: 어떻게든 찾았어요! 누구든지 이 번호를 검색하려는 경우를 대비해 acer Aspire one 722의 경우 hex("0xB0")입니다.

답변1

lm-sensors 패키지를 설치했는지 확인하세요. 이 패키지에는 isadump 및 Sensors-Detect를 포함하여 이 정보를 반환할 수 있는 유용한 명령줄 유틸리티가 많이 있습니다.

답변2

센서가 PCI 버스를 통해 연결되어 있다고 가정합니다.

먼저 드라이버(커널 모듈) 이름을 사용하여 센서 디렉터리를 찾습니다.

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

다음과 같은 여러 줄이 표시됩니다.

/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

줄 중 하나에는 센서 커널 모듈의 이름이 포함됩니다. 위 예에서 k10temp해당 줄은 다음과 같습니다.

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

이제 우리는 센서의 디렉토리를 알고 있습니다. 예에서는 다음과 같습니다.

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

디렉터리의 파일에는 device센서의 16진수 주소가 포함되어 있으므로 다음을 실행하십시오(위 예의 경우).

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

출력은 다음과 같습니다:

0x1703

센서 커널 모듈의 이름을 인식할 수 없다면 설치 lm-sensors, 실행 sudo sensors-detectsensors하면 됩니다. 센서 중 하나에 대해 다음과 같은 내용이 표시되므로 커널 모듈의 이름을 쉽게 찾을 수 있습니다.

k10temp-pci-00c3

관련 정보