如何基于温度对AMD 7735U处理器设置CPU降频阈值?
如何基于温度对AMD 7735U处理器设置CPU降频阈值?
嗨,针对你的AMD 7735U处理器和Ubuntu 23.10的情况,我有几个实用的方法帮你自定义温度触发的CPU降频阈值,不用急着换发行版,就算后续换其他Debian/Ubuntu系的系统,这些方法也基本能用:
方法一:用amdctl直接调整AMD处理器的温度阈值
这是专门针对AMD处理器的工具,可以直接修改硬件层面的温度触发参数,相对更精准。
- 首先安装编译依赖:
sudo apt install build-essential git - 获取
amdctl的开源源码(你可以在代码托管平台找到这个项目),解压后进入源码目录,然后编译安装:make sudo make install - 查看当前的温度相关参数:
你会看到类似sudo amdctl --showTctl(控制温度阈值)的参数,这就是当前触发硬件降频的温度点(你的机器现在是95℃)。 - 设置新的阈值(比如70℃):
注意:不同型号的AMD处理器参数名可能略有差异,仔细看sudo amdctl --set tctl=70--show输出里的说明调整。 - 让设置永久生效:可以把这条命令加到
/etc/rc.local(如果文件不存在就创建),或者用systemd服务实现开机自动执行。
方法二:用cpupower+脚本实现动态降频
如果觉得直接改硬件参数有点顾虑,这个方法更灵活,通过脚本监控温度,达到阈值就调整CPU最大频率。
- 先安装所需工具:
sudo apt install lm-sensors linux-tools-common linux-tools-generic - 检测并加载温度传感器:
按提示一路回车确认,加载相关内核模块后,执行sudo sensors-detectsensors就能看到CPU温度了(找Tdie项,这是核心真实温度)。 - 创建一个自动降频的脚本(比如命名为
cpu_temp_throttle.sh):#!/bin/bash # 温度阈值(毫摄氏度,70℃=70000) THRESHOLD=70000 # 触发降频后的最大CPU频率(单位Hz,比如2GHz=2000000) LIMIT_FREQ=2000000 while true; do # 获取Tdie温度,这里的传感器名称根据你的实际输出调整 CPU_TEMP=$(sensors | grep 'Tdie' | awk '{print $2}' | sed 's/+//; s/°C//') # 转换为毫摄氏度便于比较 CPU_TEMP_MILLI=$(echo "$CPU_TEMP * 1000" | bc) if [ $(echo "$CPU_TEMP_MILLI > $THRESHOLD" | bc) -eq 1 ]; then # 达到阈值,设置最大频率 sudo cpupower frequency-set --max $LIMIT_FREQ else # 温度正常,恢复默认最大频率 sudo cpupower frequency-set --max $(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) fi # 每5秒检查一次温度 sleep 5 done - 给脚本加执行权限:
chmod +x cpu_temp_throttle.sh - 测试运行:直接执行
./cpu_temp_throttle.sh,跑个高负载程序看看温度到70℃后会不会降频。 - 设置开机自启:创建systemd服务文件
/etc/systemd/system/cpu-throttle.service:
然后启用服务:[Unit] Description=CPU Temperature Throttle Service After=multi-user.target [Service] ExecStart=/home/your_username/cpu_temp_throttle.sh # 替换成你的脚本实际路径 Restart=always User=root [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload sudo systemctl enable --now cpu-throttle.service
方法三:用图形化工具psensor设置触发动作
你已经在用psensor监控温度了,它也支持设置温度触发的降频命令,不用写脚本更省心。
- 打开
psensor,点击菜单栏的「Edit」→「Preferences」,切换到「Actions」标签页。 - 点击「Add」,在弹出的窗口里:
- 选择对应的温度传感器(比如
k10temp-pci-00c3下的Tdie) - 设置触发条件为「Temperature > 70°C」
- 在「Command」里输入降频命令:
sudo cpupower frequency-set --max 2000000
- 选择对应的温度传感器(比如
- 为了不用每次输密码执行命令,编辑
sudoers文件:
添加一行(把sudo visudoyour_username换成你的实际用户名):
保存退出即可。your_username ALL=(ALL) NOPASSWD: /usr/bin/cpupower frequency-set --max *
一些注意事项
- 确认温度传感器的准确性:执行
sensors后,优先看Tdie的值,这是AMD处理器的核心温度,比其他传感器更靠谱。 - 降频阈值别设太低:70-75℃是兼顾散热和性能的合理范围,太低会导致日常使用都卡顿。
- 如果后续换发行版,比如Fedora,只需要把
apt install换成dnf install,工具本身的用法基本一致。
备注:内容来源于stack exchange,提问作者jetpandas9




