最近我想使用 new 来amd_pstate
通过超频或更多方式来提高 cpu 性能定制显示这里,我遵循了这个维基百科更新grub
并mkinitcpio
基于我的模块。
$ 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-如何实现上述目标'一个主题''在固件中乱搞'(即查看固件中的内容。)?