
У меня Dell G5 5590 с Ubuntu 18.04.4 LTS. Версия BIOS — 1.11.1.
Мои вентиляторы постоянно включаются и выключаются с периодом в 30 секунд (30 секунд на полной скорости, 30 секунд полностью выключены), даже без какой-либо нагрузки на процессор. Это очень раздражает, и я не уверен, что так должно быть, поскольку я ожидал более плавного управления вентилятором.
Что я сделал:
- Я проверил настройки BIOS, но не нашел никаких настроек, связанных с управлением вентилятором;
- Я установил
lm-sensors
, настроилsensors-detect
иcoretemp
добавил/etc/modules
; - Я установил
i8kutils
и запустилsudo modprobe i8k force=1
, теперь я могу видеть скорость вращения вентилятора вpsensor
графическом интерфейсе, как на картинке ниже; - Я установил
fancontrol
и попытался настроить его, как описано здесь:https://askubuntu.com/a/46135/762767-pwmconfig
инструмент может выключать и включать мои вентиляторы во время калибровки, однако после калибровки он выдает следующее:
No correlations were detected.
There is either no fan connected to the output of hwmon7/pwm1,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)
Кроме того, даже если я завершаю pwmconfig
настройку и запускаю fancontrol
службу, поведение вентилятора не меняется.
решение1
Обновление BIOS не исправило поведение вентилятора.
Однако это привело к постоянному снижению производительности процессора, а у некоторых пользователей исчезла возможность понижения напряжения.
Вот как можно вручную управлять вентиляторами и задать собственную кривую вентилятора.
У меня Dell G5 5590 с i7-9750H и RTX 2070MQ. Я использую Pop_OS 20.10, которая является вариантом Ubuntu и использует systemd.
Насколько я могу судить, обновления BIOS (по крайней мере после 1.10, не могу рассказать о более ранних) в основном были направлены на исправление уязвимостей архитектуры процессоров Intel. «Исправления» требовали отключения процессора способами, которые навсегда снижали производительность, а понижение версии довольно сложно и рискованно (заблокировано Dell, требует создания собственной поддельной полезной нагрузки BIOS для обхода и может привести к тому, что сканер отпечатков пальцев никогда больше не заработает). Они также, исходя из моего опыта перехода с 1.10 на 1.14 после ответа выше и комментария к ответу выше и других ссылок, не изменяют профиль вентилятора/теплового режима этого ноутбука.
Вот моя температурная кривая, даже в режиме простоя на частоте 800 МГц, на последней версии BIOS 1.14:
Как вы можете видеть в нижней части изображения, моя температура просто скачет вверх и вниз. В верхней части этих скачков вентилятор включается на «высокие»/полные 4700 об/мин, в нижней части вентилятор выключается до 0 об/мин. Крайне раздражает. И идентично тому, что я испытал на BIOS 1.10.
более позднее обновление: на этом ноутбуке у меня возникла проблема с использованием внешних мониторов через порты HDMI и miniDP. Это приводит к повышению температуры буквально на 40 градусов по Цельсию как в Linux, так и в Windows, что, по-видимому, связано с проблемой драйвера NVIDIA. Подключение внешних мониторов через USB-C к двухканальному концентратору HDMI позволяет компьютеру работать при температуре 47 градусов по Цельсию без включения вентиляторов в режиме ожидания после чистой загрузки.
Dell ограничивает возможности вентиляторов и позволяет управлять только определенными предустановками, но к ним можно получить доступ в той степени, в которой это возможно на вашем оборудовании, перейдя по этим ссылкам:
(Обновление: Dell, похоже, просто не открыла исходный код управления вентилятором, а работа по обратному проектированию имела ограниченный успех; похоже, для Windows доступно больше предустановок, чем я могу получить в Linux.)
Как контролировать скорость вращения вентилятора? https://www.cyberciti.biz/faq/controlling-dell-fan-speeds-temperature-on-ubuntu-debian-linux/ https://mijorus.medium.com/thermal-tweaks-on-dell-laptops-running-linux-769c8c80022e https://wiki.archlinux.org/index.php/fan_speed_control#BIOS_overriding_fan_control https://github.com/TomFreudenberg/dell-bios-fan-control
(Обратите внимание, что /etc/i8kutils/i8kmon.conf, как мне кажется, в более поздних версиях был перемещен в /etc/i8kmon.conf, и именно его я сейчас вижу в своей файловой системе и на странице руководства. На странице руководства также есть возможность указать файл конфигурации в вашем домашнем каталоге.)
Шаг 1: установка и настройка
sudo apt install lm-sensors i8kutils -y
sudo modprobe i8k
if that doesn't work, which it did not for me, you may try:
# sudo modprobe i8k force=1
# (which seems to work for me?)
git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo mv dell-bios-fan-control /usr/bin/dell-bios-fan-control
Если у вас возникли проблемы с работой i8k, попробуйте сделать следующее:
sudo -i
echo "options i8k force=1" > /etc/modprobe.d/i8k.conf
echo i8k >> /etc/modules
exit
Вы также можете увидеть лучшие результаты, если перезагрузите компьютер.
Если у вас по-прежнему возникают проблемы, вы можете проверить ссылки, указанные выше, и поработать с modprobe.эта ссылкатакже может помочь вам сориентироваться.
Шаг 2: Проверьте, работает ли это
Чтобы это действительно вступило в силу, нам нужно запустить службу иотключите управление вентиляторами через BIOS, что, очевидно, очень опасно. Такой процессор может сгореть без возможности восстановления за 10 секунд высокотемпературной активности, так что БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ ЗДЕСЬ.
Мой совет:
- Откройте
psensor
или другое графическое приложение для измерения температуры, чтобы вы могли следить за температурой и быть готовыми к действиям, если увидите, что температура поднимается выше, чем должна. - протестируйте и убедитесь, что вы можете вернуться к управлению BIOS в любой момент, запустив
dell-bios-fan-control 1
(согласноздесь). - Для дополнительной безопасности вы можете установить будильник на
psensor
автоматическое срабатывание при достижении определенной температуры.dell-bios-fan-control 1
- Если вы видите, что температура растет, и не слышите, как вентиляторы включаются при запуске этой команды, будьте готовы быстро отключить питание. Я заметил, что на этом ноутбуке жесткое выключение при удержании кнопки питания происходит очень медленно, поэтому, чтобы обезопасить себя, вам следует обновить настройки кнопки питания вашей ОС на «выключение» вместо «сон». (Я думаю, вы не захотите запускать,
shutdown now
потому что это не убьет нагрузку на процессор достаточно быстро, но я не уверен.) ctrl
+alt
+printscrn
/(sysreq) +b
может быть самым быстрым способом заставить ядро немедленно выполнить жесткую перезагрузку. Возможно, есть способ получше.
Это, возможно, излишне, но... если у вас дорогой ноутбук, просто будьте готовы. (Но не впадайте в паранойю, поскольку существуют аппаратные защитные выключатели, которые отключат ноутбук, чтобы защитить его от перегрева.)
Теперь, когда вы готовы,
sudo systemctl stop i8kmon.service
sudo systemctl status i8kmon.service
Хорошо, сейчас мы отключим управление BIOS — вентиляторы должны затихнуть — а затем немедленно включим вентиляторы — 1
мы проверим, сколько настроек вентиляторов вам фактически доступно, и убедимся, что это работает.
Выполните эти команды одну за другой и обратите внимание на свою систему.
dell-bios-fan-control 0
# fans are now not being controlled by anything; are they quiet?
# how are temps? You can watch for a second if desired.
dell-bios-fan-control 1
# let's turn it back on to make sure our failsafe works. With that settled,
# let's turn it back off
dell-bios-fan-control 0
# and let's manually set the fans on with i8kctl
i8kctl fan 1 1
# did fans turn on? let's see what RPM we're at:
i8kctl
# you can spam this command a few times to get info.
# the 7th and 8th values (will be in the thousands if fan is running, otherwise 0)
# are the left and right fan RPM.
# Now let's try and see if you hear different rpm's at different levels.
sudo i8kctl fan 2 2
# hear a difference? we can check again:
i8kctl
sudo i8kctl fan 3 3
i8kctl
# did they all work? If not, not which ones did and didn't. For my G5 5590, I'm only seeing 0,1,2 work, which are 0rpm, 2200~ rpm, and 4740rpm.
Шаг 3: Настройка «кривой» вентилятора
Теперь вам нужно настроить кривую вентилятора. Мы делаем это, редактируя этот файл:
sudo nano /etc/i8kmon.conf
Теперь вам придется отредактировать этот файл в соответствии с характеристиками тепла вашего компьютера. При необходимости см. страницу руководства и документацию. Коротко говоря, строки там, которые говорят следующее:
set config(0) {{0 0} -1 55 -1 60}
set config(1) {{1 1} 45 80 45 80}
set config(2) {{2 2} 70 90 70 90}
set config(3) {{3 3} 80 128 80 128}
Вам нужно будет настроить эти значения в соответствии с тепловыми характеристиками вашего ноутбука. Моя конкретная машина не может работать вхолостую ниже 85, точка, поэтому вентиляторы должны быть всегда включены, поэтому моя кривая настроена соответствующим образом. После того, как я переклею, я, вероятно, снова изменю ее, чтобы получить тихий холостой ход.
(обратите внимание, что G5 5590 не поддерживает третий этап питания, только до второго этапа — тем не менее, если вы не собираетесь включать эту строку, убедитесь, что она ничего не сломает, i8kutils чувствителен к таким вещам)
Если перевести эти строки, то они означают следующее:
# DO NOT COPY PASTE THESE LINES, ADDING COMMENTS AFTER BREAKS THIS CONFIG FILE
set config(0) {{0 0} -1 55 -1 60} # run fans at 0,0; above 55(ac) / 60(batt), move up to config(1)
set config(1) {{1 1} 50 65 55 70} # run fans at 1,1; at 50(ac),55(batt) drop down to config(0); at 65(ac),70(batt) move up to config(2)
set config(2) {{2 2} 60 75 65 80} # etc.
set config(3) {{2 2} 70 128 75 128} # etc.
ПРИМЕЧАНИЕ: НЕ ДОБАВЛЯЙТЕ КОММЕНТАРИИ В ТЕ ЖЕ СТРОКИ, ЧТО И ЭТИ КОМАНДЫ, ДОБАВЛЯЙТЕ КОММЕНТАРИИ ТОЛЬКО НА/ПОСЛЕ НОВЫХ СТРОК.Кроме того, установленные максимальные и минимальные значения температуры должны перекрываться, желательно не менее чем на 10 градусов или около того — см. страницу руководства, если вы не понимаете, почему.
# set
# config(configuration-number)
# {
# {speed-of-fan-n1 speed-of-fan-n2}
# drop-down-temp-AC
# step-up-temp-AC
# drop-down-temp-battery
# step-up-temp-battery
# }
#
# https://mijorus.medium.com/thermal-tweaks-on-dell-laptops-running-linux-769c8c80022e
fans at 0,0
и fans at 1,1
соответствует этим строкам:
set status(leftspeed) "0 1000 2000 3000"
# 0=0rpm, 1=1000rpm, etc.
set status(rightspeed) "0 1000 2000 3000"
# same for right fan
# so 1,1 correponds to 1000rpm left fan,1000rpm right fan
(Обратите внимание, что, опять же, в G5 (и, я думаю, даже в линейках Precision, что безумие) ручная настройка оборотов вентилятора не поддерживается, но я думаю, что она поддерживается в линейках XPS и Alienware — однако, несмотря на это, НЕ ПРОПУСКАЙТЕ ЭТИ СТРОКИ. Программа будет работать, но вентиляторы никогда не начнут вращаться!)
которые говорят нам о том, что вы видите в комментариях здесь. Я предполагаю, что Alienware позволяют эту функцию, и XPS, судя по тому, что я кратко прочитал, тоже, однако Dell искусственно ограничивает вентиляторы на всем, что не является их топовой премиум-машиной — даже их полупремиальные линейки Precision и G5 (не уверен насчет G7?) не позволяют настраивать обороты. Молодец, Dell.
Шаг 4: Фанаты как услуга
Теперь, если вы раньше обращали внимание на свои временные параметры, вы можете попробовать зайти в файл конфигурации и установить нужные вам уровни, а также включить службу systemd для i8kmon.
sudo systemctl status i8kmon.service
sudo systemctl enable i8kmon.service
sudo systemctl start i8kmon.service
Теперь нам также нужно добавить процесс systemd, чтобы быть уверенным, что BIOS не возьмет на себя управление снова, когда мы перезагрузимся.это руководство, мы в основном сделаем это:
sudo nano /lib/systemd/system/dell-bios-fan-control.service
вставьте это туда:
[Unit]
Description=Turn off bios control of fans
[Service]
Type=simple
ExecStart=/usr/bin/dell-bios-fan-control 0
[Install]
WantedBy=multi-user.target
затем
sudo cp /lib/systemd/system/dell-bios-fan-control.service /etc/systemd/system/dell-bios-fan-control.service
sudo systemctl enable dell-bios-fan-control
sudo systemctl start dell-bios-fan-control
Вы должны быть готовы к работе. Я бы все же перезагрузил компьютер и убедился, что он работает так, как и ожидалось. Наблюдение за psensor должно показать, следует ли он вашим значениям конфигурации или нет.
Дайте мне знать, если что-то здесь не работает, я пишу это в совершенно не по порядку, после того как выяснил это методом проб и ошибок. Я подчищаю это со временем, поскольку я укрепляю свое понимание этого.
Определенно бросающейся в глаза проблемой является то, что в целях безопасности должна быть реализована обработка ошибок при запуске службы i8k, которая снова включает управление BIOS, если она не запускается.
Даже это не было бы гарантией; я закомментировал строки «fan rpm», поскольку файл по умолчанию указывает, что они не нужны, их можно проверить, предположительно автоматически, и эта функция не поддерживается на моей модели (G5 5590). Служба, похоже, запускается нормально, но не может фактически активировать вентиляторы. В результате я бы также рекомендовал иметь еще один отказоустойчивый температурный режим в другом приложении. Если/когда я доберусь до этого, я постараюсь обновить это руководство.
Шаг 5: Поведение при выключении/безопасность двойной загрузки
Если у вас двойная загрузка, у вас не будет работающих вентиляторов в любом другом дистрибутиве, где вы не добавили ручное управление вентиляторами, поэтому вы перегреетесь и выйдете из строя. Чтобы изменить это, вам следует добавить обратный процесс, чтобы вернуть управление BIOS при выключении, например:
sudo nano /lib/systemd/system/dell-bios-fan-control-reverse.service
[Unit]
Description=Turn fan control back over to bios at shutdown, in case of windows boot, or i8k >
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/usr/bin/dell-bios-fan-control 1
[Install]
WantedBy=multi-user.target
затем
sudo cp /lib/systemd/system/dell-bios-fan-control-reverse.service /etc/systemd/system/dell-bios-fan-control-reverse.service
sudo systemctl enable dell-bios-fan-control-reverse
sudo systemctl start dell-bios-fan-control-reverse
решение2
Пожалуйста, обновите BIOS с версии 1.11.1 до последней.БИОС, 1.12.0, для тебяНоутбук Dell G5 5590, чтобы решить проблему с вентилятором, поскольку управление вентиляторами осуществляется через BIOS, хотя в нем (пока) нет элементов управления, которые можно было бы настроить.
Последнее утверждение основано на первых трех сообщениях, которые я нашел в ходе поиска в Интернете по этой теме, которые указывают на проблему у пользователей, работающих как с Windows 10, так и с Linux; отсюда я и думаю, что дело в BIOS.
https://www.reddit.com/r/Dell/comments/ag5d4p/dell_g5_manual_fan_control_utility/
https://www.dell.com/community/Inspiron/Dell-G5-15-5590-fan-control/td-p/7390514
https://www.dell.com/community/Inspiron/Annoying-fan-speed-oscillation-on-DELL-G5-5590/td-p/7403566
решение3
Я думаю, что нашел решение, но это работает на моем ноутбуке DELL Latitude, посмотрите здесь, это не определено в $etc/fancontrol doc
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=0000.1
DEVPATH=hwmon3= hwmon4=devices/pci0000:00/0000:00:03.0/0000:01:00.0
DEVNAME=hwmon3=dell_smm hwmon4=nouveau
FCTEMPS= hwmon3/pwm1=hwmon4/temp1_input
FCFANS= hwmon3/pwm1=
MINTEMP= hwmon3/pwm1=30
MAXTEMP= hwmon3/pwm1=60
MINSTART= hwmon3/pwm1=150
MINSTOP= hwmon3/pwm1=10
MAXPWM= hwmon3/pwm1=250
FCFANS пусто, мне написали FCFANS= hwmon3/pwm1=1
и это работа!!