更换主板后,我尝试使其Psensor
正常工作,但仍然无法获得适合 CPU 核心温度的正确温度,温度始终为 -127C 度。我安装了lm-sensors
检查温度所需的一切,因此运行后:
sudo sensors-detect
我回答了yes
所有问题,结果发现:
Driver `f71882fg':
* ISA bus, address 0x295
Chip `Fintek F71882FG/F71883FG Super IO Sensors' (confidence: 9)
我跑了:
sudo service kmod start
当我做:
sudo modprobe f71882fg
我得到:
modprobe: ERROR: could not insert 'f71882fg': Device or resource busy
输出内容dmesg | tail
为:
[47593.565779] f71882fg: Found f71882fg chip at 0x290, revision 32
[47593.565857] ACPI Warning: SystemIO range 0x00000290-0x00000297 conflicts with OpRegion 0x00000295-0x00000296 (\IP__) (20140424/utaddress-258)
[47593.565870] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
我下一步该怎么做?
答案1
正如 Oli 所说,您只需要该coretemp
模块即可读取英特尔 CPU 核心温度。
我的w83667hg
硬件监视器驱动程序也存在类似的问题。解决方法是添加acpi_enforce_resources=lax
到内核命令行。为此
编辑
/etc/default/grub
并插入acpi_enforce_resources=lax
到的参数字符串中GRUB_CMDLINE_LINUX
,例如GRUB_CMDLINE_LINUX='acpi_enforce_resources=lax'
然后运行
update-grub
并重新启动。
答案2
我会跳过lm-sensors
并直接阅读/sys/class/thermal/thermal_zone0/temp
。这应该会自动注册为 ACPI 芯片。单位是毫摄氏度。
$ cat /sys/class/thermal/thermal_zone0/temp
47000
可能有许多设备。根据我的经验,CPU 通常是第一个(每个核心一个),但我不确定我是否总是依赖这种情况。thermal_zoneN
对于未通过热 sysfs API 注册的其他设备,您将需要lm-sensors
或类似的东西。