开源
asus-wmi-sensors:适用于ASUS等的传感器驱动程序
来源:元经纪     阅读:425
网站管理员
发布于 2023-05-18 09:23
查看主页

概述

适用于各种 ASUS Ryzen 和 Threadripper 主板的 Linux HWMON (lmsensors) 传感器驱动程序。

如何安装

确保安装了 lm_sensors、DKMS、内核源代码、GCC 等。需要内核版本 4.12 或更高版本。

如果您已经构建了自己的内核,那么它​​必须是在启用 CONFIG_HWMON(位于设备驱动程序下)和 CONFIG_ACPI_WMI(位于设备驱动程序 -> X86 平台特定设备驱动程序下)的情况下构建的。无需构建“ASUS WMI 驱动程序”(CONFIG_ASUS_WMI) 模块。

架构Linux

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

作为 AUR 包提供 - https://aur.archlinux.org/packages/asus-wmi-sensors-dkms-git/

这与 DKMS 挂钩,为您可用的内核构建一个模块,并添加一个/etc/module-load.d/条目,以便在启动时加载该模块。

该模块可以通过发出手动加载sudo modprobe asus_wmi_sensors

运行sensors,您应该会看到一个asuswmisensors-isa-0000设备和读数,就像您在 UEFI 界面中看到的那样。

Gentoo

ebuild 在 gyakovlev 的覆盖层中可用。https://github.com/gyakovlev/gentoo-overlay/tree/master/sys-kernel/asus-wmi-sensors

尼克斯操作系统

自 20.03 版本以来作为一个包提供,可以通过以下方式启用:

boot.extraModulePackages = [
    pkgs.asus-wmi-sensors
];

其他发行版

克隆 git 存储库:git clone https://github.com/electrified/asus-wmi-sensors.git

构建模块sudo make dkms

插入模块sudo modprobe asus-wmi-sensors

运行sensors,您应该会看到一个asuswmisensors-isa-0000设备和读数,就像您在 UEFI 界面中看到的那样。

可选 - 有关如何使模块在启动时自动加载的信息,请参阅发行版的文档

常问问题

我认为应该支持我的主板,但它不工作,我该怎么办?

首先验证 WMI 硬件监控是否适用于 Windows 下的主板。HWiNFO ( https://www.hwinfo.com/ ) 和 SIV ( http://rh-software.com/ ) 都将使用 ASUS WMI 来读取可用的传感器。如果您的电路板受这些支持,请发布输出sudo dmidecode -t baseboard,应该可以添加支持。

为什么我的某些温度会返回 216 摄氏度?

这是为未连接传感器的温度传感器接头返回的值。

为什么有些传感器(例如 CPU 核心电压)是重复的?

驱动程序只需返回 WMI 输出中的所有可用传感器。CPU 电压和其他包含两次,在嵌入式控制器和 SIO 组中。

为什么从传感器读取数据这么慢?

该驱动程序不是直接从 SuperIO/Embedded 控制器读取,它使用华硕放入 UEFI 固件中的 WMI 接口。从这个 WMI 接口读取似乎本来就很慢。我正在研究调用 WMI 接口调用的底层 ACPI 方法,据我所知性能更好。

为什么会有这个驱动程序?

许多华硕最近的 Ryzen 主板都有 ITE IT8665E 传感器 IC,但没有任何公开可用的数据表。一些支持已添加到 out-of-tree IT87 驱动程序中,但目前未维护并且不适用于最近的内核。此外,许多 Windows 驱动程序正在转向使用此 WMI 接口,而不是直接访问芯片,因为这可以避免多个监控应用程序试图同时读取传感器时发生冲突。

为什么你创建了一个新的驱动程序而不是添加到现有的 Asus/eeepc 驱动程序中?

  • 现有驱动程序是基本平台设备,而不是使用内核的 WMI 总线
  • 这些新的传感器方法位于不同的 WMI 类 - “ASUSHW” 中,而不是其他驱动程序使用的现有“ASUSManagment”类。现有的驱动程序主要处理笔记本电脑的功能(热键、WiFi 终止开关、屏幕亮度)。向该驱动程序添加对这种附加传感器功能的支持会使它变得相当大。

是否可以使用此驱动程序控制风扇的速度?

不,风扇控制不是华硕传感器 WMI 界面的一部分。通过未记录的方法可能是可能的,但这需要逆向工程工作。

我正在使用带有 Ukuu 内核的 Ubuntu,但模块无法构建

如果您使用 ukuu 或任何其他方法安装内核,您应该使用用于构建内核的 GCC 版本来构建任何额外的树外模块,否则您可能会遇到问题。

检查cat /proc/version用于构建内核的 GCC 版本,并适当升级 GCC 安装。(通常需要从 GCC 7 升级到 GCC 9)

示例传感器输出

asuswmisensors-isa-0000
Adapter: Virtual device
CPU Core Voltage:         +0.88 V  
CPU SOC Voltage:          +1.13 V  
DRAM Voltage:             +1.34 V  
VDDP Voltage:             +0.24 V  
1.8V PLL Voltage:         +1.85 V  
+12V Voltage:            +11.88 V  
+5V Voltage:              +5.01 V  
3VSB Voltage:             +3.33 V  
VBAT Voltage:             +3.18 V  
AVCC3 Voltage:            +3.36 V  
SB 1.05V Voltage:         +1.07 V  
CPU Core Voltage:         +0.81 V  
CPU SOC Voltage:          +1.14 V  
DRAM Voltage:             +1.35 V  
CPU Fan:                  749 RPM
Chassis Fan 1:              0 RPM
Chassis Fan 2:            904 RPM
Chassis Fan 3:            888 RPM
HAMP Fan:                   0 RPM
Water Pump:                 0 RPM
CPU OPT:                    0 RPM
Water Flow:                 0 RPM
AIO Pump:                   0 RPM
CPU Temperature:          +37.0°C  
CPU Socket Temperature:   +31.0°C  
Motherboard Temperature:  +28.0°C  
Chipset Temperature:      +45.0°C  
Tsensor 1 Temperature:   +216.0°C  
CPU VRM Temperature:      +31.0°C  
Water In:                +216.0°C  
Water Out:                +28.0°C  
CPU VRM Output Current:   +1.00 A 

已知的问题

  • 某些华硕 BIOS 中的 WMI 实现有问题。这可能导致风扇停止、风扇卡在最大速度或温度读数卡住。这不是驱动程序的问题,而是 BIOS 的问题。Prime X470 Pro 似乎对此尤为不利。轮询 WMI 接口的频率越高,发生这种情况的可能性就越大。在频繁轮询传感器的同时对计算机进行长时间浸泡测试之前,不要让计算机无人看管。我个人可以说我已经在 BIOS 2606 和 Ryzen 2700X 的 Crosshair VII 上看到了这个问题,升级到 3004 解决了这个问题。
  • 一些电路板报告 12v 电压约为 10v。这又是一个 BIOS 问题。

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
【地评线】长白时评:吉林“小芯片”撬动智能时代“大未来”-中国吉林网
【2023年9月24日-河南郑州】第20届世界元宇宙大会暨2023AIGC企业家高峰论坛
厦大启动纪念陈嘉庚诞辰150周年系列活动
捷豹豪赌电动化:舍弃85%老客户 剑指豪华电动车市场
涵盖住宅、办公室等多种类型,潍坊城市人家服务与创新设计并重

首页

分类

定制方案

消息

我的