I've recently installed Ubuntu 20.04 on my Thinkpad T490 and i noticed something strage and different on CPU temperatures on Ubuntu compared to Windows.
I don't know why, but on boot the fan spins very fast (probably due to high CPU temp), and this never happened on Windows 10.
Somebody who knows why? I also tried "thinkfan", but I think it's better to control the fan using the BIOS default configuration (wich I think is the one the Lenovo Vantage app uses).
Ubuntu загружается с регулятором масштабирования частоты процессора, установленным в производительность. По умолчанию он переключается на что-то менее энергоемкое через несколько секунд, в зависимости от вашего процессора (около 10 для моего). Раньше это была 1 минута, но, похоже, это изменилось с 20.04.
Я не знаю, что делает Windows и почему.
Конфигурация ядра определяет, какой драйвер и регулятор масштабирования частоты процессора будут использоваться по умолчанию, и во время загрузки. Для текущего ядра 20.04, универсального 5.4.0-40 (и это не имеет значения, если я отстаю здесь):
/boot/config-5.4.0-40-generic соответствующая область:
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_PCC_CPUFREQ=y
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_P4_CLOCKMOD=m
И вы можете наблюдать производительность регулятор
по умолчанию.
Это Ubuntu, а не Linux.
Вы можете скомпилировать свое собственное ядро, указав другой регулятор по умолчанию. Пример:
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
Но такой подход потребует постоянной работы, поскольку вам придется делать это для каждого обновления ядра.
Я не думаю, что есть способ ускорить изменение времени, так как похоже, что Ubuntu работает сценарий изменения, как только будет разумным во время процесса загрузки. Соответствующий сервис называется ondemand.service
, который вызывает / lib / systemd / set-cpufreq
.
Теперь во время загрузки часто приходится много чего делать, поэтому ваш процессор может потреблять много энергии, даже после смены регулятора, пока он не закончит свою работу по запуску.