如何在Linux系统中使用CPU电压调节软件?

undervolt是一个专为Linux系统设计的开源工具,用于对Intel处理器进行安全的电压调节。

一、背景介绍

在Linux系统中,CPU频率和电压的调节可以通过多种方式实现,这些调节通常通过修改/sys/devices/system/cpu/cpu0/cpufreq/目录下的文件来完成,可以设置scaling_governor来选择不同的电源管理策略,如性能模式(performance)或省电模式(powersave),还可以通过调整scaling_setspeed来直接设置CPU的频率。

如何在Linux系统中使用CPU电压调节软件?

二、常用工具及其安装配置

1.cpupower

cpupower是由Intel开发的一个开源项目,主要用于基于Intel CPU的Linux系统,它提供了用户友好的接口,用于调整CPU的工作状态(P-state),以实现节能或提升性能的目的。

安装方法:

apt-get install linux-cpupower -y

使用方法:

cpupower -c all frequency-set -g performance  # 设置所有CPU为性能模式
cpupower -c all frequency-set -g powersave   # 设置所有CPU为节能模式
cpupower -c all frequency-info               # 查看当前所有CPU的信息
watch -n 1 cpupower monitor                 # 实时监控CPU频率

2.throttled

throttled是一个逆向工程的工具,可以调整部分Intel CPU机型的功耗及电压,适用于需要精细控制CPU电压的用户。

安装方法:

sudo apt install git build-essential python3-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev python3-venv python3-wheel
git clone https://github.com/erpalma/lenovo-throttling-fix.git
sudo ./lenovo-throttling-fix/install.sh

配置文件修改:

如何在Linux系统中使用CPU电压调节软件?

sudo vim /etc/lenovo_fix.conf

示例配置:

[UNDERVOLT.BATTERY]
CPU核心电压
core = -125
缓存电压
cache = -125

注意:所有电压值必须是负值,表示降压。

3. 自定义脚本

对于高级用户,可以通过编写自定义脚本来更灵活地控制CPU频率和电压,以下是一个示例脚本,用于读取和设置CPU信息。

获取CPU信息:

void get_cpu_info(cpufreq_info_struct *cpu_num, int cpu_num) {
    char file[54];
    FILE *fp;
    sprintf(file, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", cpu_num);
    fp = fopen(file, "r");
    if (fp == NULL) {
        printf("Error reading scaling_cur_freq file.
");
        exit(1);
    } else {
        fscanf(fp, "%i", &cpu_num->cur_freq);
        fclose(fp);
    }
}

设置CPU信息:

void set_cpu_info(cpufreq_struct *cpu_info, int cpu_num) {
    char file[54];
    char str[20];
    FILE *fp;
    sprintf(file, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor", cpu_num);
    fp = fopen(file, "w");
    if (fp == NULL) {
        printf("Error writing scaling_governor file.
");
        exit(1);
    } else {
        fprintf(fp, "%s", cpu_info->governor);
        fclose(fp);
    }
    sprintf(file, "scaling_setspeed");
    fp = fopen(file, "w");
    if (fp == NULL) {
        printf("Error writing scaling_setspeed file.
");
        exit(1);
    } else {
        fprintf(fp, "%s", cpu_info->set_speed);
        fclose(fp);
    }
}

三、常见问题与解答

Q1:cpupower工具无法识别我的CPU怎么办?

A: 确保你的系统是基于Intel CPU的,并且已经安装了最新的内核和cpupower版本,如果问题依旧,可以尝试更新BIOS或者查阅硬件厂商的支持文档。

如何在Linux系统中使用CPU电压调节软件?

Q2: 如何验证throttled是否生效?

A: 你可以使用i7z工具来测试CPU的频率和电压变化,安装并运行i7z后,观察不同电源状态下的CPU电压值是否按照配置文件中的设置进行了调整。

Q3: 自定义脚本中的错误处理机制是什么?

A: 在自定义脚本中,错误处理主要依赖于文件操作的返回值检查,如果文件打开失败,程序会打印错误信息并退出,这是一种基本的错误处理机制,确保在出现问题时能够及时发现并采取措施。

希望以上内容能够帮助你在Linux系统中有效地进行CPU电压调节,如果你有任何疑问或需要进一步的帮助,请随时提问。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1483959.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希
上一篇 2025-01-13 15:13
下一篇 2024-07-09 20:21

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入