不久前,我能够安装并双启动 Windows 7 和 Ubuntu 13.04(均为 x64)。作为 Ubuntu 的新手,我仍在寻找安装游戏的方法,因为我计划将 Ubuntu 作为我的主要操作系统,因为它非常酷、流畅且占用资源较少。
所以,我想知道是否有类似于 ThrottleStop 的软件。我需要它,因为我的笔记本电脑在达到 75C(处理器)时会节流。我玩大型游戏,所以我需要阻止它节流。当然,我并不是想毁掉我的笔记本电脑。我调整了乘数,这样它就不会达到 95C 了。我无能为力。我只是在充分利用我的笔记本电脑,因为我还买不起新的。我没有工作 :| 我还只是个学生。
无论如何,是否有任何类似于 ThrottleStop 的软件,以便我可以调整乘数并禁用节流。
答案1
ThrottleStop 将数据写入乘法器请求寄存器。这是 MSR 0x199。当您使用 Linux 时,您应该能够编写一个简单的批处理文件,将相同的数据写入此寄存器。
您可以使用 MSR 工具查看 ThrottleStop 正在向该寄存器写入什么值。
http://www.mediafire.com/download/myjkxzkzzmd/MSR.zip
它允许您在 Windows 中读取和写入数据到各种 CPU 寄存器。在 Linux 中应该可以执行相同的操作。在 MSR 0x199 中设置一个小于默认最大值的乘数应该允许您降低 CPU 的速度,从而减少其发出的热量。这就是 ThrottleStop - 设置乘数功能的全部功能。时钟调制隐藏在 MSR 0x19A 中。当您的目标是限制热量输出时,使用该寄存器在第二代和第三代 Core i CPU 上很有用。
答案2
MSR 0x1FC - bit[0] 是 BD PROCHOT 隐藏的地方。
您需要编写一些简单的代码来读取该寄存器,仅清除那一位,然后将结果写回到相同的 0x1FC 寄存器。
以下是 ThrottleStop 用于关闭 BD PROCHOT 的一些 C/C++ 代码
DWORD dwEAX, dwEDX;
Readmsr( 0x1FC, &dwEAX, &dwEDX );
// save all of the original bits in that register and only clear bit[0]
dwEAX = dwEAX & 0xFFFFFFFE;
Writemsr( 0x1FC, dwEAX, dwEDX );
我从未使用过 Linux,但我知道编写一些像这样的简单代码应该不会太难。要重新打开 BD PROCHOT,只需将该代码中的中间行替换为:
dwEAX = dwEAX | 0x1;
- 该
|
行表示“或”
如果您需要更多帮助,请给我发送电子邮件。地址位于 ThrottleStop 或 RealTemp 的“关于...”框中。
编辑:我正在使用的 WinRing0 软件在该例程中将 dwEAX 和 dwEDX 反转了。dwEDX 指的是该 MSR 中的高 32 位,而 dwEAX 包含低 32 位。
答案3
我遇到了同样的问题,并找到了适合我的解决方案。
你必须下载cpufrequutils 命令。
在终端中运行每个命令:注意:'-c' 参数表示核心数。如果您的 CPU 有四个核心,则运行给定的命令 0 到 3;如果您的 CPU 有八个核心,则运行给定的命令 0 到 7。
sudo cpufreq-set -c 0 -g performance
sudo cpufreq-set -c 1 -g performance
sudo cpufreq-set -c 2 -g performance
sudo cpufreq-set -c 3 -g performance
sudo cpufreq-set -c XX -g performance
sudo modprobe msr
sudo rdmsr 0x1FC
这二十这是核心的编号。完成此步骤后,您将获得需要的输出记下然后在下一个命令中使用。
sudo wrmsr 0x1FC XXXXX
这里,XXX是上一个命令执行的输出。
最后,要检查它是否有效,请运行:
cpufreq-info
答案4
现在有一个新的 Linux cmdline 实用程序,其中包含一些功能。可在此处获取:
https://github.com/agoose77/throttlestop
它仍然没有包含所有内容,与 Windows throttlestop 相比,总体而言相当基础。进展缓慢,但仍将有助于逐步改善支持。(截至 2019 年 5 月 - 我们还没有到达那里!)