Как заставить работать управление вентилятором?

34

Я знаю там что-то, называемое fancontrol, которое позволяет вам контролировать скорость вентиляции вашей системы. Я бы хотел, чтобы мои вентиляторы вращались немного быстрее, так как мой ноутбук очень легко нагревается. Все учебники и материалы, которые я нашел, предназначены для старых версий Ubuntu и, похоже, больше не работают.

Может кто-нибудь объяснить мне или дать мне хорошую ссылку на то, как я могу заставить его работать на Ubuntu? Нечто другое с тем же эффектом тоже хорошо.

RobinJ
источник
Abit больше информации об оборудовании, вероятно, поможет, например, марка ноутбука, название / номер модели и тип / версия BIOS.
файлы записок
@filescraps Dell Latitude D620: paste.ubuntu.com/699801
RobinJ
5
@RobinJ - вы сделали обычные проверки на наличие проблем с перегревом - проверьте на наличие пыли / засоров - посмотрите также на ваш радиатор процессора. Обновите свой BIOS до последней доступной версии. Вы пытались добавить "acpi_osi = Linux" в свой grub? Используете ли вы какие-либо дополнительные параметры загрузки? По сути, моя точка зрения такова: проблемы с перегревом относятся к типу пыли / acpi - вам никогда не нужно вручную управлять вентилятором.
fossfreedom
Что ж, вентилятор начинает работать быстрее только при температуре около 65 ° C, и кажется, что уже слишком поздно, потому что, как только он начинает подниматься, он больше не опускается ниже 75 ° C. Это ноутбук, и я недостаточно уверен в оборудовании, чтобы взять его в руки. Что делает acpi_osi=Linux? Никаких дополнительных параметров загрузки, только GRUB по умолчанию.
RobinJ
1
@RobinJ - не забывайте, что стиль сайта заключается в добавлении соответствующей информации обратно в ваш вопрос, а не в комментариях.
fossfreedom

Ответы:

8

i8kutils работает для управления вентилятором моего ноутбука Dell Vostro 3350.

# Только для ноутбуков Dell:
$ sudo apt-get install i8kutils 
$ i8kfan 1 2 # Установить левый вентилятор на низкой скорости (1); правильный на высокой скорости (2).
user1902715
источник
Только кажется, что что-то в BIOS всегда возвращает его к его предыдущему значению через несколько секунд: P В любом случае, даже если уже немного поздно, это все равно самый полезный ответ.
RobinJ
это работает на моем Alienware m14x. Но он все еще не может установить кулер на его максимальную скорость, и это все еще заставляет ноутбук работать на более высоких температурах. Это значительно жарче, чем на Windows ...
iLemming
BIOS устанавливает его обратно, поэтому я добавляю cronjob каждые 2 минуты: crontab -eи */2 * * * * /usr/bin/i8kfan 1 1. пока работает отлично
гоксель
14

Скорее всего, вы сможете решить свою проблему с помощью чего-то другого, переопределяющего ваши команды вентилятора i8kctl, методом, приведенным в этом ответе. Для полноты я приведу некоторые общие замечания по управлению вентиляторами на ноутбуках Dell и полные инструкции по их использованию i8kutils.

Что, вероятно, не сработает

Два распространенных и простых способа управления вентилятором на ноутбуках, к сожалению, через ACPI и PWM:

  • В ноутбуках Dell отсутствует функция управления вентиляторами ACPI (* 1)

    • как следствие, попытка с параметрами загрузки ACPI и т.п. не удастся
  • На ноутбуках Dell Latitude, насколько мне известно, отсутствуют вентиляторы с управлением по ШИМ (* 2)

    • как следствие, fancontrol/ pwmconfigпрограмма не будет работать

Используйте i8kutils

Тем не менее, существует пакет под названием i8kutils, предназначенный для управления вентилятором на ноутбуках Dell Inspiron через SMM BIOS . Некоторые пользователи также сообщают об успехе на своих ноутбуках Dell Laitude (я один из них на Dell Latitude E7440), однако часто требуется хитрость, чтобы избавиться от мешающего управления вентиляторами BIOS. Вы также страдаете от этого согласно предыдущему комментарию.

Установить i8kutils:

$ sudo apt-get install i8kutils

Попытайся:

$ i8kfan 2 2     # set to max speed
$ i8kfan 0 0     # set to 0 speed

... и послушай, чтобы увидеть, работает ли это.

Отключить управление вентилятором BIOS

Если это работает, но что-то еще дает отпор установленной скорости (о чем сообщают многие пользователи на ноутбуках Dell Latitude), это связано с запланированными сессиями SMM, которые возвращают скорость вращения вентилятора назад. К счастью, есть способ отключить управление вентилятором BIOS путем записи в регистры SMM .

Предупреждение: см. Предупреждение в верхней части smm.c. Этот метод записывает в регистры SMM. Тем не менее, я не видел никаких пользовательских отчетов об этом, вызывающем проблемы. Кроме того, все сообщения об этом свидетельствуют об успешном отключении управления вентилятором BIOS.

i8kutilsвключает в себя исходный код программы, smmно i8kutilsпакет не включает скомпилированный двоичный файл. Что мы сделаем, это загрузим исходный код i8kutils, скомпилируем программу smmи запустим ее с соответствующим аргументом, чтобы отключить управление вентиляторами BIOS путем записи в регистры SMM.

Скачать пакеты, необходимые для сборки:

$ sudo apt-get build-dep i8kutils

Загрузите i8kutilsисходный код, распакуйте и введите каталог (точные имена в зависимости от версии i8k):

$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/

Компилировать smm:

  • Если в 32-битной системе:

    $ make
    

    (Выше будет выполнять gcc -g -O2 -Wall -I. -o smm smm.c.)

  • Если в 64-битной системе:

    $ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
    

Запустите smmс аргументом, 30a3чтобы отключить управление вентиляторами SMM:

$ sudo ./smm 30a3

Теперь управление вентилятором BIOS должно быть отключено. Попробуйте установить скорость с помощью i8kctl, прослушать вентилятор и убедиться, что скорость сохраняется.

Примечание. Этот параметр будет сохраняться при перезагрузке и отключении питания. Управление вентилятором BIOS можно снова включить с помощью $ sudo ./smm 31a3.


* 1: я видел официальный источник по этому вопросу, не могу найти его прямо сейчас. Если вы хотите убедиться, что вашему оборудованию не хватает его, следуйте инструкциям здесь: https://wiki.ubuntu.com/DebuggingACPI

* 2: для проверки этого, запустите pwmconfig: sudo apt-get install fancontrol, sudo pwm-configбудет сказать , если ШИМ-вентилятор , способный присутствует или нет

деревенщина
источник
Я фактически использовал параметр ACPI acpi_osi='!Windows 2012', чтобы контролировать вентиляторы Dell Inspiron 15R 5520, поскольку они всегда вращаются на максимальной скорости независимо от температуры.
user311982
Это должен быть правильный ответ. Это хорошо информировано и очень актуально!
имп
Отличный ответ. Также найдено здесь
малат
1
Большое спасибо, это сработало для меня после того, как все остальное безрезультатно. Когда я пытался скомпилировать smm, мне не хватало sys / cdefs.h, но я sudo apt-get install g++-multilibввел его (как указано на askubuntu.com/questions/470796/… )
Филипп Дэниелс
Возможно, я немного опоздал, но есть ли минус в том, чтобы использовать его на максимальной скорости?
Zerquix18
14

Пакет LM-датчиков Установить лм-датчики может быть то, что вы ищете.

И как вы предложили фанконтроль Установить фанконтроль .

Убедитесь, что все вентиляторы, которыми вы пытаетесь управлять с помощью программного обеспечения, имеют 4-контактный разъем.

«Вентилятор с поддержкой ШИМ обычно подключается к 4-контактному разъему (схема контактов: заземление, +12 В, датчик, управление)». источник

Когда я бегу, pwmconfigкоторый является частью fancontrol, я получаю

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed Это поможет вам, если у вас есть совместимое оборудование.

Вот несколько сценариев, которые можно использовать вместе с этим сгенерированным файлом конфигурации. Я предполагаю, что вы могли бы установить более высокое значение здесь.

label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000

Но, как я уже сказал, я не могу проверить это сам, так как мое оборудование не поддерживает его, я могу контролировать своих поклонников из биоса, но это уровень 3. Я использую его для того, чтобы мой вентилятор работал медленно и тихо.

filescraps
источник
1
/ usr / sbin / pwmconfig: нет установленных сенсорных модулей с поддержкой pwm. Есть ли другие способы?
RobinJ
Обычно вам нужно sensors-detectсначала запустить и загрузить модуль, который он говорит, чтобы получить показания температуры и скорости вентилятора, а затем pwmconfig может манипулировать им.
Псуси
@RobinJ, похоже, у вас нет распознанного / поддерживаемого чипа.
Псуси
Я собираюсь вручить вам награду, так как это был самый информативный ответ, который мог бы помочь большинству других людей.
RobinJ
5

Хорошо, это может быть не тот ответ, который вы ищете, но мои проблемы с перегревом были решены, когда удалили пыль, установив пылесос на вентиляционные отверстия. Если вы испытываете перегрев на низких частотах процессора, возможно, стоит попробовать. Имейте в виду, что, возможно, мелкие детали могут быть засосаны. Если вам повезет, этот метод может решить проблемы с перегревом.

Эвальд
источник
Я присудил награду вышеупомянутому ответу, потому что она была наиболее информативной, но моя проблема, похоже, связана с аппаратным обеспечением, поэтому ваш ответ был наиболее близок к решению. Но так как я не достаточно уверен в том, чтобы связываться с оборудованием моего ноутбука, я просто принес его в магазин, поскольку он все еще находился под гарантией.
RobinJ
Я просто попробовал это, и это сработало. Благодарность! Мой вентилятор начал становиться громче, и у меня было одно или два отключения из-за перегрева. Надеюсь, это исправило это. Вентилятор теперь включается и выключается с нормальной загрузкой процессора, что отлично (до того, как он оставался включенным все время).
Cymen
@Cymen Просто будьте уверены, что вакуум - это антистатический вакуум, чтобы быть безопасным. Я использую баллончик со сжатым воздухом для очистки вентиляционных отверстий, что вы также можете сделать в качестве альтернативы.
user311982
3

У меня Dell Latitude e4200, и у меня сработало следующее, потому что BIOS переопределял настройку i8kfan. Начальная температура моего компьютера была 105F градусов, и примерно через 10 минут после выполнения этих шагов (настройка вентилятора = 2) температура процессора / ядра упала до 96F градусов. Эта процедура уже была опубликована кем-то:

Шаг 1. Загрузите и установите i8ktutils:

# sudo apt-get install i8kutils

Шаг 2. Переопределите BIOS, чтобы он не прерывал пользовательские настройки вентилятора. Загрузите исходный код и скомпилируйте программу (SMM), чтобы сделать это:

# sudo apt-get build-dep i8kutils

тогда:

# apt-get source i8kutils

Шаг 3. Извлеките исходный код и компакт-диск в каталог:

# tar xvf i8kutils_1.33.tar.gz

тогда:

# cd i8kutils-1.33/

Шаг 4. Скомпилируйте SMM

For 32-bit systems:

# make SMM

(Output: # gcc -g -O2 -Wall -I. -o smm smm.c.)

For 64-bit systems

# make SMM:

(Output: # gcc -g -O2 -Wall -I. -o smm -m32 smm.c)

Шаг 5. Выполнить SMM с параметрами:

# sudo ./smm 30a3

Шаг 6. Установите скорость вращения вентилятора:

# i8kfan 2 2 (Listen as this will set fans to maximum speed)

# i8kfan 1 1 (This will set fans to slow speed)

Теперь управление вентилятором BIOS не должно отменять настройки вентилятора. Этот параметр останется, даже если система будет перезагружена. Чтобы вернуть управление BIOS по какой-либо причине, выполните следующую процедуру:

# sudo ./smm 31a3.

Есть также способ проверить температуру с помощью lm_sensors:

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/
user245946
источник
1
Попробовал это для самой последней версии i8kutils-1.41 в Ubuntu 14.04 и получил "В файле, включенном из /usr/include/stdio.h:27:0, из smm.c: 27: /usr/include/features.h: 374: 25: фатальная ошибка: sys / cdefs.h: нет такого файла или каталога "Однако это исправляет эту проблему askubuntu.com/questions/470796/…
k-den