You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何基于温度对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 --show
    
    你会看到类似Tctl(控制温度阈值)的参数,这就是当前触发硬件降频的温度点(你的机器现在是95℃)。
  • 设置新的阈值(比如70℃):
    sudo amdctl --set tctl=70
    
    注意:不同型号的AMD处理器参数名可能略有差异,仔细看--show输出里的说明调整。
  • 让设置永久生效:可以把这条命令加到/etc/rc.local(如果文件不存在就创建),或者用systemd服务实现开机自动执行。

方法二:用cpupower+脚本实现动态降频

如果觉得直接改硬件参数有点顾虑,这个方法更灵活,通过脚本监控温度,达到阈值就调整CPU最大频率。

  • 先安装所需工具:
    sudo apt install lm-sensors linux-tools-common linux-tools-generic
    
  • 检测并加载温度传感器:
    sudo sensors-detect
    
    按提示一路回车确认,加载相关内核模块后,执行sensors就能看到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.target
    
    然后启用服务:
    sudo 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 visudo
    
    添加一行(把your_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

火山引擎 最新活动