2020年2月9日 星期日

解決 CPU 頻率被限制在 1.19GHz 問題, ThinkPad X201 再戰十年

如果用 1.19GHz 或是 1.20GHz 當關鍵字,可以發現這個災情發生在很多人的身上,不只是 ThinkPad X201 的使用者會遇到。大致整理一下筆電發生這個問題的可能原因:
  • 電源問題
    1. 電池故障
    2. 沒插電池
    3. 變壓器故障
    4. 變壓器功率不足
    5. 電源接孔老化、接觸不良
  • 散熱問題
  • BIOS/UEFI 問題 ( 由於 X201 採用的是 BIOS,以下內容皆不再提及 UEFI)
解決前兩個問題很簡單:把筆電送去大保養。但 BIOS 不曉得基於什麼理由依然限制 CPU 頻率,這就不一定是使用者可以掌握的了。

這次成功解決 CPU 頻率被限制在 1.19GHz,關鍵在於作業系統是否接受使用者指示:忽略來自 BIOS 的 CPU 頻率限制的建議。


說在前面:我在 Windows 嘗試了各種方法都沒辦法解決這個問題。

以下提供我在 Arch Linux 解決這個問題的過程。

畢竟距離 X201 上市至今已過 10 個年頭,我們先善意推斷 BIOS 限制 CPU 頻率是為了保護系統正常運作,避免硬體損壞。確保供電和散熱無慮之後再來解除被封印的 CPU 頻率。

我的 X201 CPU 是 Intel(R) Core(TM) i5 CPU M 540 @ 2.53GHz,2C4T , 運作頻率最高可到 3.07 GHz ( https://ark.intel.com/content/www/tw/zh/ark/products/43544/intel-core-i5-540m-processor-3m-cache-2-53-ghz.html );

檢查下面四個的數值

/sys/devices/system/cpu/cpu0/cpufreq/bios_limit
/sys/devices/system/cpu/cpu1/cpufreq/bios_limit
/sys/devices/system/cpu/cpu2/cpufreq/bios_limit
/sys/devices/system/cpu/cpu3/cpufreq/bios_limit

都是 1199000

為了要解決這個問題,需要先閱讀 ArchWiki 上的文件:CPU frequency scaling > Troubleshooting > BIOS frequency limitation ( https://wiki.archlinux.org/index.php/CPU_frequency_scaling#BIOS_frequency_limitation )

看到這句: For trying this temporarily change the value in /sys/module/processor/parameters/ignore_ppc from 0 to 1.

如果你跟我一樣不介意每次開機都下一次解除封印用的指令的話,第一個會用上的指令:

echo 1 > /sys/module/processor/parameters/ignore_ppc


解除限制後才能順利調整 CPU 的電源方案,看到同一份文件的 Scaling governors 章節 ( https://wiki.archlinux.org/index.php/CPU_frequency_scaling#Scaling_governors ),想直接調到最高效能的話請用:

cpupower frequency-set --governor performance


查看是否成功解除封印:

cpupower frequency-info

成功解除封印後別忘了經常注意電腦內部各元件的溫度以及風扇轉速。



其他參考資料
  1. ArchWiki: Lenovo ThinkPad X201
    https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X201
  2. lm_sensors (Linux monitoring sensors)
    https://wiki.archlinux.org/index.php/Lm_sensors
  3. Fan speed control
    https://wiki.archlinux.org/index.php/Fan_speed_control
  4. ThinkPad_X_series > X201_and_X201s
    https://en.wikipedia.org/wiki/ThinkPad_X_series#X201_and_X201s
  5. ThinkWiki: X201
    http://www.thinkwiki.org/wiki/Category:X201

在解決問題的過程中,有用到一些套件協助判讀問題,也一併列在這邊
  1. cpupower
    https://www.archlinux.org/packages/community/x86_64/cpupower
  2. i7z
    https://www.archlinux.org/packages/community/x86_64/i7z
  3. intel-gpu-tools
    https://www.archlinux.org/packages/community/x86_64/intel-gpu-tools
  4. lm_sensors
    https://www.archlinux.org/packages/extra/x86_64/lm_sensors
  5. cpupower-gui
    https://aur.archlinux.org/packages/cpupower-gui
  6. cpu-x
    https://aur.archlinux.org/packages/cpu-x
  7. thinkfan
    https://aur.archlinux.org/packages/thinkfan
  8. gpu-viewer
    https://aur.archlinux.org/packages/gpu-viewer

沒有留言: