![BIOS CPU 超频不支持双启动](https://linux22.com/image/1177848/BIOS%20CPU%20%E8%B6%85%E9%A2%91%E4%B8%8D%E6%94%AF%E6%8C%81%E5%8F%8C%E5%90%AF%E5%8A%A8.png)
我正在运行 ryzen 7 1700,它在 BIOS 中超频至 4.0 GHz 并且在那里很稳定。我运行 Windows 10 和 Ubuntu 20.04 双启动。每次我加载我的 Ubuntu 发行版时,我的超频都不起作用。
让它工作的唯一方法是进入 BIOS,退出(无需更改)然后继续。执行一次后,我可以根据需要多次重新启动 Windows,并且我的超频会保持不变。一旦我启动到 Ubuntu,它就消失了,我的 CPU 峰值始终运行在 3.2 GHz。
我已经确认我的 CPU 调速器设置为性能,但老实说,我有点不知道下一步该怎么做。我是 Linux 新手,所以我会把责任归咎于此。
任何帮助都将不胜感激。
答案1
这个答案将假设你没有在你的 Linux 发行版上安装适当的工具,并且双重启动不是原因,如果这是不正确的,请编辑原始问题来解释你如何确定这个问题是由双重启动具体引起的,以及你用哪个工具来支持该说法。
在开始之前,请注意,不当的超频可能会破坏设备,如果发生这种情况,请记住这是您自己的责任。
您应该确保 cpuid 和 msr 内核模块已被激活。
sudo modprobe msr cpuid
看modprobe 的手册页有关此命令的更多详细信息。链接按原样提供,不保证其有效期,最好man
从终端使用命令。
安装一个Ryzen频率控制工具,我会用ZenStates-Linux对于此示例,但如果您不喜欢这个工具,您可以搜索其他工具。
您将需要将git clone
存储库存储在某处,路径由您决定。
git clone https://github.com/r4m0n/ZenStates-Linux.git
然后验证当前值。
sudo ./zenstates.py -l
在原装 AMD Ryzen 1700x 上,您应该会看到此信息。其他处理器的值会有所不同。某些 P 状态可能会启用或禁用,具体取决于您的主板配置。
P0 - Enabled - FID = 88 - DID = 8 - VID = 20 - Ratio = 34.00 - vCore = 1.35000
P1 - Enabled - FID = 78 - DID = 8 - VID = 2C - Ratio = 30.00 - vCore = 1.27500
P2 - Enabled - FID = 84 - DID = C - VID = 68 - Ratio = 22.00 - vCore = 0.90000
P3 - Disabled
P4 - Disabled
P5 - Disabled
P6 - Disabled
P7 - Disabled
C6 State - Package - Enabled
C6 State - Core - Enabled
价值观的定义:
FID 是十六进制的频率 ID VID 是十六进制的电压 ID DID 是十六进制的除数 ID Ratio 是您的 CPU 时钟比率,将其乘以 100Mhz 可获得最终时钟。vCore 是此 P 状态的 CPU 基准电压。
当 DID 等于 8 时,获取 FID 的公式为CPU ratio × 4 = FID
。结果必须转换为十六进制。由于您的目标超频为 4Ghz(4000Mhz),因此 FID 将是a0
。
VID 以十六进制表示,从 30(最低)到 10(最高)。您需要试验每个值,直到达到所需的 Vcore。
在下一个例子中,我将 P0 状态设置为 4Ghz,Vcore 为 1,4。
sudo ./zenstates.py -p 0 -f 98 -d 8 -v 18
此新设置将在重启时丢失,您可以创建一个 systemd 服务文件以在启动时再次应用此更改。
我假设您将 zenstates.py 复制到 $PATH。
sudo nano /etc/systemd/system/overclock.service
在此文件中,添加这些值。
[Unit]
Description=Overclock
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=basic.target
[Service]
Type=oneshot
ExecStart=zenstates.py -p 0 -f 98 -d 8 -v 18
[Install]
WantedBy=basic.target
验证服务是否正常运行:
sudo systemctl daemon-reload
sudo systemctl enable overclock
sudo systemctl start overclock
如果系统无法启动,请启动恢复并删除或编辑服务文件。使用这些项目测试稳定性。
https://github.com/akopytov/sysbench
https://www.mersenne.org/download/
https://github.com/stressapptest/stressapptest
https://www.phoronix-test-suite.com/?k=downloads
您可能需要从您最喜欢的 Linux 发行版的不同专用安装中进行压力测试,以防由于不稳定而导致数据损坏。
请谨慎操作这些调整。