我正试图利用我的宏碁Aspire One笔记本电脑的脚本(我相信是acerfand)在一定温度下控制风扇的开/关。为了正常工作,它需要温度传感器的数值。如何找到温度传感器的十六进制地址?我试过dmidecode,但我甚至不知道搜索它的位置是否正确。
sub get_temp
{
initialize_ioports();
my $r = hex("xxx"); # Temperature
my $temp = read_ec($r);
close_ioports();
return $temp;
}编辑:不知怎么我找到了!为了防止有人搜索这个号码,宏碁想要一个722 if :十六进制(“0xB0”)。
发布于 2018-09-03 06:59:16
假设传感器是通过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包含传感器的十六进制地址,因此执行(对于上面的示例):
cat /sys/bus/pci/devices/0000:00:18.3/device输出如下:
0x1703如果您无法识别传感器内核模块的名称,只需安装lm-sensors,然后执行sudo sensors-detect和sensors --您将很容易找到内核模块的名称,因为您将看到其中一个传感器的名称:
k10temp-pci-00c3https://unix.stackexchange.com/questions/466494
复制相似问题