免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

lm-sensors:3条命令跑通CPU温度监控的上手路径,附主板配置踩坑记录

lm-sensors:3条命令跑通CPU温度监控的上手路径,附主板配置踩坑记录 lm-sensors3条命令跑通CPU温度监控的上手路径附主板配置踩坑记录【免费下载链接】lm-sensorslm-sensors repository项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors你的服务器CPU悄悄烧到90度而你直到它降频才发现——lm-sensors 就是解决硬件温度、风扇、电压看不见这个问题的用户态监控工具它从内核的 /sys 接口读数据把所有传感器读数整理成统一的形式。适合有命令行基础、第一次接触它的同学。读完你能用3条命令看到温度输出并给自己那块主板调出可读的显示和自动报警。30秒看到温度先跑这3条命令别急着翻源码先把工具装出来跑起来。# 克隆源码并编译安装库和命令一次装齐 git clone https://gitcode.com/gh_mirrors/lm/lm-sensors cd lm-sensors make all sudo make install先编译安装这是唯一需要仓库地址的一步。# 直接运行能读到的芯片全部打印出来 sensors驱动就绪的话屏幕上立刻出现各芯片的温度、风扇和电压读数。如果某一步卡住了别慌后面有专门的排错表。它能帮你干哪几件事能看到数字只是开始下面4件事才是日常真正用得上的。看一眼当前状态跑一条sensors命令→拿到所有芯片的温度、电压、风扇读数核对读数到底准不准跑sensors -u看原始值→对照芯片手册确认换算公式对不对把报警接进脚本sensors -j输出 JSON→脚本里一行 jq 取出某路温度轮询即可风扇随温度自动转pwmconfig交互生成配置→fancontrol 按温度自动调 PWM想做什么裸读 /sys用 lm-sensors看CPU温度找 hwmon 目录拼路径sensors一条命令把 in4 还原成 12V自己算分压电阻compute一行公式屏蔽假通道脚本里过滤配置里写ignore能看懂数字之后下一个问题是这些数字到底从哪来。它是怎么转的数据从芯片流到终端流程是主板上的传感器芯片Nuvoton、Winbond 等→ 内核 hwmon 驱动 →/sys/class/hwmon/目录 → libsensors 读取并按配置换算 →sensors命令格式化输出。libsensors 干的是翻译驱动只按引脚编号上报读数它根据配置贴上标签、做比例换算你看到的是 Vcore 1.23V 而不是 in0 318。想翻细节库代码在lib/社区主板配置在configs/示例配置是etc/sensors.conf.eg。知道原理后该正经搭一遍了。逐步搭起来检测、加载驱动、调配置四步走完从这台机器有没有芯片到输出能读。第一步检测硬件。跑检测脚本它扫描所有总线告诉你有哪些芯片、该加载什么驱动。# 扫描 I2C/SMBus 总线列出芯片并推荐驱动 sudo sensors-detect这步回答机器上到底有什么硬件问到要不要探测某条总线时选 YES 更彻底。第二步加载驱动。内核驱动负责把数据写进 /sys没驱动就没数据。# 加载 detect 推荐的驱动以 Intel CPU 温度为例 sudo modprobe coretemp这步把数据源接通要开机自启就把模块名写进/etc/modules。第三步调整配置。新配置放/etc/sensors.d/下的小文件里不动主配置。# 把你主板的标签和阈值写成一个小配置 cat /etc/sensors.d/coretemp.conf EOF chip coretemp-* label temp1 CPU Core set temp1_max 85 EOF这步给引脚编号起个人名、定个报警上限常用指令见下表参数作用推荐值备注label给原始通道起真实名字CPU Core社区配置里最常见compute原始值换算成真实值的公式 * 12, / 12系数看主板分压电阻set ..._max高温报警上限85需sensors -s生效ignore隐藏某个通道不显示—常用来屏蔽恒定假值第四步验证输出。# 先应用配置里的 set 语句要 root再看新输出 sudo sensors -s sensors这步容易漏配置里的set默认只是写在那不跑sensors -s阈值不生效。看到新标签和 max 值出现在输出里链路就通了。基础链路通了接下来是两个真实世界里最容易碰上的场景。两个真实场景走一遍温度报警和配置标签服务器夜间过热设个自动报警问题你不可能守在机器旁边夜里温度超了希望有日志有提醒。做法用项目自带的守护进程sensord它就是盯着配置里设的阈值、越界就记日志。先跑sudo sensord -v看一阵行为确认无误后直接sudo sensord放后台。阈值就是第三步写的temp1_max 85。预期输出CPU 超过 85°C 时日志里多出一条带时间戳和数值的记录。⚠️ 踩坑提示最常见的错误是temp1_max设得过低README 里明确警告过不当的上限可能触发蜂鸣、CPU 降频甚至立即重启。建议先观察几天正常区间再定阈值。输出全是 in0 和 fan1改成人能读的问题新主板的输出全是原始引脚名不知道哪个才是CPU核心。做法到仓库configs/目录找你主板的配置文件按厂商分目录如configs/Asus/下按型号命名拷到/etc/sensors.d/再跑sudo sensors -s应用其中的阈值。预期输出in0 变成 Vcore 1.234VCPU 风扇有了 CPU Fan 这样的真实名字。⚠️ 踩坑提示配置文件第一行的chip ...必须和你sensors输出里的芯片名完全一致对不上就整份配置静默失效。社区配置里也有作者自己猜的标签第一次用最好对照实际硬件核对一遍。上面场景里如果哪一步不对劲先对这张表。 检测不到传感器先查这张速查表遇到下面的情况先对号入座再往下排查。你看到什么症状大概率原因修复命令/操作sensors输出为空内核驱动没加载先看lsmod再sudo modprobe coretemp输出只有 in0、fan1配置没生效把configs/里匹配的文件拷到/etc/sensors.d/sensors -s报权限错没用 root 跑前面加sudo再执行笔记本上sensors-detect什么也没找到笔记本通常没有 hwmon 芯片只有 ACPI改用cat /sys/class/thermal/thermal_zone*/temp排错之后数据本身就可以往更大的监控体系里送了。往更远处看把数据接进监控系统想接进现成系统的话两条路都不长Prometheus 用 node_exporter它内置了 sensors 采集器装上就能收Zabbix 则一行 UserParameter 调sensors -j就够了。想看细节doc/下有开发文档configs/下有社区配置库可以抄作业。收尾你接下来可以做的下一件事把今天写的那份/etc/sensors.d/小配置备份一份或者放进仓库的configs/里下次换主板直接复用。如果你的主板型号在配置库里还没有顺手写一份同硬件的下一位能省掉猜标签的时间。数字已经摆在屏幕上了去调调阈值吧。【免费下载链接】lm-sensorslm-sensors repository项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表