sensors 命令或直接访问 /sys/class/hwmon 路径。具体操作流程为:先安装 lm-sensors 工具、运行 sensors-detect、加载相应驱动(如 f71882fg),再执行 sensors 来查看电压(V)、风扇转速(RPM)和温度(°C);若驱动未能加载,则需手动读取 hwmon 目录下的 in_input、fan_input、temp*_input 文件并进行单位换算。当您需要掌握这些原始监控数据,以排查供电异常、识别散热瓶颈或验证硬件健康状态时,图形界面反而显得绕弯——直接调用内核暴露的硬件监控接口才是高效解决方案。这些数据不经过用户空间服务聚合,响应迅速且无延迟,即使在最小化安装或安全加固场景下也能稳定获取。

使用 sensors 命令读取结构化主板传感器数据
这一步输出的结果最为直观易读,能同时展示电压(V)、风扇转速(RPM)、温度(°C)以及相应的告警阈值,但前提是已经正确加载了主板传感器驱动。
第一步:安装 lm-sensors 工具包。桌面用户请执行 sudo apt-get install lm-sensors -y;服务器用户请执行 sudo yum install lm_sensors -y。
第二步:运行自动探测脚本:sudo sensors-detect。全程按回车键接受默认选项,当出现 “Probe I2C adapter?” 提示时输入 YES,后续所有询问均选择 YES,直到屏幕显示 “To load everything, add the lines above to /etc/modules”。
第三步:加载主板芯片组驱动。常见飞腾平台需要执行 sudo modprobe f71882fg 或 sudo modprobe it87;鲲鹏平台常见为 sudo modprobe w83627hf。若不确定具体型号,可先运行 lspci | grep -i bridge 查看南桥芯片信息。
第四步:执行 sensors。输出结果中,以 “in0”, “in1” 开头的行表示电压值(如 in0: +1.05 V),以 “fan1”, “fan2” 开头的行表示风扇转速(如 fan1: 2450 RPM),以 “temp1”, “temp2” 开头的行表示芯片组温度(如 temp1: +38.0°C)。注意:如果未加载对应驱动,sensors 会显示 “Adapter: Non-I2C bus” 或完全空白。
直接读取 /sys/class/hwmon 获取原始主板传感器值
这种方法零依赖、秒出结果,非常适合应急诊断或嵌入式环境,但需要手动关联 hwmon 目录与对应的物理芯片。
方法一:快速定位主板传感器目录
执行 ls /sys/class/hwmon/,会得到类似 hwmon0、hwmon1 的列表;对每个目录执行 cat /sys/class/hwmon/hwmon0/name 2>/dev/null,若返回 it87、f71882fg、nct6775 等字样,即表示该目录对应典型的主板传感器芯片。
方法二:读取电压与风扇原始值
进入确认的 hwmon 目录,例如 cd /sys/class/hwmon/hwmon0;执行 ls in*_input fan*_input 2>/dev/null,找到 in0_input、fan1_input 等文件;分别读取:cat in0_input(单位为毫伏 mV,如 1050 表示 1.05V),cat fan1_input(单位为 RPM,部分 IT87 芯片需乘以 2 才是真实转速)。
方法三:解析温度标签对应关系
执行 ls temp*_label 2>/dev/null,若返回 temp1_label、temp2_label,则表明存在多点测温;读取对应标签:cat temp1_label(可能输出 “CPU VRM”、“Southbridge” 或 “PECI Agent”);再读取 cat temp1_input(单位为毫摄氏度 m°C,如 42300 表示 42.3°C)。
通过 watch 实现主板传感器动态刷新监控
当需要观察电压波动或风扇启停响应时,静态读取方式不够直观,利用 watch 工具可实现每两秒自动刷新并显示关键字段。
① 启动周期性监控:watch -n 2 'sensors | grep -E "in[0-9]|fan[0-9]|temp[0-9]"'。该命令会高亮显示所有电压、风扇、温度相关的行,并每两秒刷新一次。
② 若 sensors 输出为空或缺失风扇项,可改用 sysfs 路径直读:watch -n 2 'cat /sys/class/hwmon/hwmon0/in0_input /sys/class/hwmon/hwmon0/fan1_input /sys/class/hwmon/hwmon0/temp1_input 2>/dev/null | awk '''{printf "%.2f V\n%.0f RPM\n%.1f°C\n", $1/1000, $2, $3/1000}'''。
③ 按 Ctrl+C 即可退出监控模式。直接将以上整条命令复制到终端回车即可运行。
