对运行 Linux 的 AMD A8-4500M 进行降压

对运行 Linux 的 AMD A8-4500M 进行降压

我有一个HP Pavilion g7运行 elementary OS(基于 Ubuntu),众所周知,它噪音大、过热。我的电脑不会关机,但噪音很大,很烦人(而且91°C使用 Prime95 和 Furmark)。我在网上搜索了一下,发现有些人给 CPU 降压,然后5-20 摄氏度较低的温度。以下是我尝试安装 Linux PHC 的情况。

我从这里下载了适用于 AMD K8 的 PHC(我的 CPU 是 K10)http://www.linux-phc.org/forum/viewtopic.php?f=13&t=2(最上面的一个)。解压并运行sudo make dkms_install。然后我将其添加cpufreq_driver=phc-k8到启动命令行并重新启动

我按下了Esc以便可以查看启动消息,并且我看到内核崩溃,尽管系统在没有 CPUFreq 驱动程序的情况下启动(最有可能是 PHC 模块)。启动时 PHC 模块未加载,因此不起作用。

如何在乌布努特 Ubuntu14.04 配备 AMD K10 CPU。

恐慌信息:

[   46.670211] kernel BUG at /var/lib/dkms/phc-k8/0.4.6/build/phc-k8.c:667!
[   46.670253] invalid opcode: 0000 [#1] SMP 
[   46.670281] Modules linked in: phc_k8(OE+) kvm_amd(+) dm_multipath scsi_dh kvm crct10dif_pclmul crc32_pclmul aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd snd_seq_midi snd_seq_midi_event snd_rawmidi snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic arc4 psmouse snd_hda_intel bnep snd_hda_controller snd_seq snd_hda_codec snd_hwdep rt2800pci serio_raw rt2800mmio snd_seq_device rt2800lib rt2x00pci rt2x00mmio rt2x00lib k10temp mac80211 rtbth(OE) snd_pcm r8169 rfcomm rtsx_pci mii cfg80211 i2c_piix4 snd_timer bluetooth eeprom_93cx6 crc_ccitt snd shpchp soundcore amd_iommu_v2 hp_accel lis3lv02d input_polldev hp_wireless mac_hid parport_pc ppdev lp parport binfmt_misc nls_iso8859_1 ahci libahci wmi video
[   46.670758] CPU: 2 PID: 548 Comm: systemd-udevd Tainted: G           OE  3.19.0-59-generic #66~14.04.1-Ubuntu
[   46.670817] Hardware name: Hewlett-Packard HP Pavilion g7 Notebook PC/184B, BIOS F.15 10/04/2012
[   46.670871] task: ffff8800aecc89d0 ti: ffff88018b9a0000 task.ti: ffff88018b9a0000
[   46.670916] RIP: 0010:[<ffffffffc080ea14>]  [<ffffffffc080ea14>] freq_from_fid_did+0x44/0x50 [phc_k8]
[   46.670975] RSP: 0018:ffff88018b9a3b28  EFLAGS: 00010202
[   46.671009] RAX: 0000000000000015 RBX: 0000000000006800 RCX: 000000000000000f
[   46.671053] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000000000c
[   46.671096] RBP: ffff88018b9a3b28 R08: ffff88019ec0a108 R09: ffff880198801a00
[   46.671140] R10: ffffffffc0810c21 R11: 0000000000000005 R12: 0000000000000004
[   46.671183] R13: ffff88018b97b300 R14: ffff88018b9a3bc8 R15: ffff88018b9ba200
[   46.671227] FS:  00007f2a08f56880(0000) GS:ffff88019ed00000(0000) knlGS:0000000000000000
[   46.671275] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   46.671311] CR2: 00007f2a08f14360 CR3: 000000018b9e5000 CR4: 00000000000407e0
[   46.671353] Stack:
[   46.673098]  ffff88018b9a3b58 ffffffffc080eb23 00000000ffffffed ffff88018b97b300
[   46.674891]  0000000000000004 000000000000a100 ffff88018b9a3c08 ffffffffc08116ad
[   46.676686]  0000000000000096 ffffffff81c546d0 ffff88018b9ba200 ffff88018b9a3bc8
[   46.678498] Call Trace:
[   46.680308]  [<ffffffffc080eb23>] print_basics+0x103/0x130 [phc_k8]
[   46.682152]  [<ffffffffc08116ad>] powernowk8_cpu_init+0x12bd/0x14e0 [phc_k8]
[   46.682158]  [<ffffffff8164b1d2>] __cpufreq_add_dev.isra.24+0x312/0xa10
[   46.682162]  [<ffffffff817a613e>] ? klist_next+0x7e/0xf0
[   46.682167]  [<ffffffffc08118d0>] ? powernowk8_cpu_init+0x14e0/0x14e0 [phc_k8]
[   46.682170]  [<ffffffff8164b8de>] cpufreq_add_dev+0xe/0x10
[   46.682175]  [<ffffffff814f82c9>] subsys_interface_register+0xa9/0xf0
[   46.682178]  [<ffffffff8164bdb8>] cpufreq_register_driver+0x118/0x330
[   46.682182]  [<ffffffffc0811a78>] powernowk8_init+0x1a8/0x20f [phc_k8]
[   46.682187]  [<ffffffffc08118d0>] ? powernowk8_cpu_init+0x14e0/0x14e0 [phc_k8]
[   46.682191]  [<ffffffff81002144>] do_one_initcall+0xd4/0x210
[   46.682200]  [<ffffffff811d1085>] ? kmem_cache_alloc_trace+0x1d5/0x270
[   46.682204]  [<ffffffff810f9c5c>] ? load_module+0x164c/0x1ce0
[   46.682207]  [<ffffffff810f9c95>] load_module+0x1685/0x1ce0
[   46.682209]  [<ffffffff810f55a0>] ? store_uevent+0x40/0x40
[   46.682215]  [<ffffffff810fa466>] SyS_finit_module+0x86/0xb0
[   46.682220]  [<ffffffff817bdbcd>] system_call_fastpath+0x16/0x1b
[   46.682247] Code: c7 64 89 f1 5d 05 20 03 00 00 d3 e8 69 c0 e8 03 00 00 c3 0f 1f 40 00 6b c7 64 89 f1 5d 05 40 06 00 00 d3 e8 69 c0 e8 03 00 00 c3 <0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 
[   46.682252] RIP  [<ffffffffc080ea14>] freq_from_fid_did+0x44/0x50 [phc_k8]
[   46.682253]  RSP <ffff88018b9a3b28>

答案1

我认为您可能尝试使用错误的工具来完成这项工作。

有一个项目叫TurionPower控制它专门支持在 Linux 上对 AMD K10 处理器进行降频(和降压)。该项目已经活跃了好几年。

来自他们的项目网站:

TurionPowerControl,尽管其名称如此,但可以查看和控制现代 AMD 处理器的许多参数。它可以操纵电源状态、频率、DRAM 时序、电源设置,并可以报告温度、监控 pstate 变化和精确的 CPU 使用率。它适用于 Windows 和 Linux,适用于 32 位和 64 位架构,并完全支持多处理器机器。

目前支持的处理器有:

系列 10h:所有 Phenom、Phenom II、Athlon II、Turion Mxxx 和 Pxxx 处理器

<\剪辑>

涵盖了大部分K10 家庭

他们声称它在最新版本的 Ubuntu 上编译得很好(Ubuntu 用例),并且有一些非常详尽的文档。

它的用途/功能的基本概述如下这个文件,摘录如下:

改变频率和电压

如果你想以简单的方式改变电压或频率,你必须使用 -set 命令开关。它真的很容易使用,而且非常用户友好。

让我们看一个简单的例子。如果你想要将所有核心的 pstate 0 频率设置为 2000 Mhz,你只需要启动这样的命令:

TurionPowerControl -­set core all pstate 0 frequency 2000

如果没有与您要求的频率相匹配的完美组合,程序将会发出警告,并对结果进行四舍五入。

如果您还想设置核心电压,比如说 1.200 伏,那么命令将变成这样:

TurionPowerControl -­set core all pstate 0 frequency 2000 vcore 1.200

<\剪辑>

我认为这是您需要使用的工具来实现您的目标;实际上,它听起来比您目前尝试使用的工具更合适。它可能不适合您,但根据您问题中的信息,它对我来说似乎很合适。

关联:

主要项目页面 (Github)

更新

AMD A8-4500M 的默认 pstates (来源):

#1: 1800 MHz, 0.375V
#2: 1700 MHz, 0.275V
#3: 1600 MHz, 0.225V
#4: 1400 MHz, 0.175V
#5: 900 MHz, 0.175V

就您的问题而言,我不会使用相同的电压 - 尝试将电压稍微降低至 0.165 或 0.170 来开始。

答案2

您需要使用内核具有最新 ACPI 模块的操作系统,才能从 CPU 包 C 状态中获益。否则,您的 CPU 将无法从操作系统接收 HALT 指令,从而浪费电力并产生热量。

相关内容