r7 4800h 可以使用 `amd_pstate` 吗?或者更具体地说,Linux 可以在没有 BIOS 帮助的情况下启用 CPCC 吗?我尝试过,但在 Legion r7000 2020 上失败了

r7 4800h 可以使用 `amd_pstate` 吗?或者更具体地说,Linux 可以在没有 BIOS 帮助的情况下启用 CPCC 吗?我尝试过,但在 Legion r7000 2020 上失败了

最近我想使用 new 来amd_pstate通过超频或更多方式来提高 cpu 性能定制显示这里,我遵循了这个维基百科更新grubmkinitcpio基于我的模块。

$ ls /usr/lib/modules/$(uname -r)/kernel/drivers/cpufreq/
acpi-cpufreq.ko.zst  amd_freq_sensitivity.ko.zst  amd-pstate-ut.ko.zst  p4-clockmod.ko.zst  pcc-cpufreq.ko.zst  powernow-k8.ko.zst  speedstep-lib.ko.zst

$ sudo cat  /etc/mkinitcpio.conf
# https://forum.manjaro.org/t/testing-update-2022-06-03-linux-5-18-systemd-251-gnome-42-2-nvidia-mesa-pulseaudio-perl/112820/20
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm amd_pstate_ut amd_freq_sensitivity)
...
HOOKS=(base udev autodetect keyboard keymap consolefont modconf block filesystems fsck)
...
$ sudo cat  /etc/default/grub | grep -v \#
...
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet reboot=acpi nowatchdog nmi_watchdog=0 nvidia_drm.modeset=1 drm.debug=0x1ff nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1 processor.ignore_ppc=1 processor.ignore_tpc=1 amd_pstate=active amd_pstate.shared_mem=1 amd_pstate.enable=1 initcall_blacklist=acpi_cpufreq_init "

但是journalctl有错误

Jun 07 11:25:08 CzgArch kernel: amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
Jun 07 11:25:08 CzgArch kernel: amd_pstate_ut: amd_pstate_ut_acpi_cpc_valid the _CPC object is not present in SBIOS!
Jun 07 11:25:08 CzgArch kernel: amd_pstate_ut: 1    amd_pstate_ut_acpi_cpc_valid         fail!
Jun 07 11:25:08 CzgArch kernel: amd_pstate_ut: amd_pstate_ut_pstate_enable amd pstate must be enabled!
Jun 07 11:25:08 CzgArch kernel: amd_pstate_ut: 2    amd_pstate_ut_check_enabled         fail!
Jun 07 11:25:08 CzgArch kernel: amd_pstate_ut: 3    amd_pstate_ut_check_perf         success!
Jun 07 11:25:08 CzgArch kernel: amd_pstate_ut: 4    amd_pstate_ut_check_freq         success!

然后在上面的维基中,我发现了这个

更改启用CPPC从“自动”到“启用”,或您的任何类似设置UEFI。如果他们不存在,请咨询供应商网站进行更新。

我使用基于 efi 的 grub,并且检查了供应商网站的 BIOS 更新,但自当前版本以来没有更新:

$ ls /boot/efi 
 EFI  'System Volume Information'
$ sudo dmidecode -t bios -q
BIOS Information
        Vendor: LENOVO
        Version: EUCN39WW
...
                UEFI is supported

检查支持

另外,在阅读内核之后文档,我检查了我的cpu和内核是否可以支持amd_pstate。基于这个论坛问答,我知道当前核心支持amd_pstate。 (这CONFIG_X86_AMD_PSTATE_UT=m与内核文档想要的相同。)

$ zcat /proc/config.gz | grep PSTATE
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_AMD_PSTATE=y
CONFIG_X86_AMD_PSTATE_UT=m

我也查看 中央处理器支持

$ lscpu | grep -e 'cppc\|msr' 
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca

尝试更新固件

看完这个之后邮政,也许直接更改linux中的固件而不是使用BIOS与硬件通信是一种解决方案。然而我发现没有更新。

$ fwupdmgr get-updates
Firmware metadata has not been updated for 30 days and may not be up to date.
Update now? (Requires internet connection) [y|N]: y
Updating lvfs
Downloading…             [*********************************      ] Less than one minute remaining…Request failed : Error: connect ETIMEDOUT 142.251.42.238:443
Retrying in 15 seconds
Downloading…             [************************************** ] Less than one minute remaining…
Successfully downloaded new metadata: 0 local devices supported
Devices with no available firmware updates: 
 • MSFT0001:00 04F3:3140
 • MZVLB512HBJQ-000L2
 • System Firmware
 • UEFI Device Firmware
 • USB2.1 Hub
No updatable devices

ps 有一个主题与联想社区“T14s Gen1”笔记本电脑上的 cpcc 相关,但我在那里找不到与我的笔记本电脑 Legion r7000 相关的内容。


问:

1- 上述问题是否由以下原因引起没有CPCC在我的机器上?

如果是这样,我的 cpu 和安装的内核是否支持 CPCC,如我在上面部分中列出的那样“检查支持”并且是BIOSCPCC无法使用的根本原因是什么?

如果是BIOS问题,有没有一种方法可以在不借助BIOS的情况下使用CPCC?或者更具体地说,我可以对我的固件在 Linux 中启用 CPCC 就像上面的“一个主题”所说的那样?

2-如何实现上述目标'一个主题''在固件中乱搞'(即查看固件中的内容。)?

相关内容