Як змусити роботу вентилятора працювати?


34

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

Хто-небудь може мені пояснити чи дати мені гарне посилання про те, як я можу змусити його працювати над Ubuntu? Щось інше з однаковим ефектом теж чудово.


Можливо, допоможе отримати більше інформації про обладнання, як-от бренд ноутбука, назва / номер моделі та тип / версія біографії.
filescraps

@filescraps Dell Latitude D620: paste.ubuntu.com/699801
RobinJ

5
@RobinJ - чи зробили ви звичайні перевірки на проблеми з перегрівом - перевіряйте наявність пилу / засмічень - також перегляньте радіатор радіатора. Оновіть свої біографії до найновіших доступних. Чи намагалися ви додати "acpi_osi = Linux" до своєї grub? Ви використовуєте додаткові параметри завантаження? В основному я можу сказати - проблеми з перегрівом - це пил / акупі, - вам не потрібно вручну керувати вентилятором.
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).

Тільки здається, що щось у BIOS завжди повертає його до попереднього значення через кілька секунд: P У будь-якому випадку, хоча це трохи пізно, все-таки найбільш корисна відповідь.
RobinJ

він працює на моєму Alienware m14x. Але, він все ще не може встановити кулер на максимальну швидкість, і це все ще спричиняє роботу ноутбука на більш високих температурах. Це значно гарячіше, ніж це було в Windows ...
iLemming

BIOS повертає його назад, тож я додав, що коронка працює кожні 2 хв: crontab -eі */2 * * * * /usr/bin/i8kfan 1 1. зараз ідеально працює
гоксель

14

Ви, швидше за все, зможете вирішити свою проблему ще чимось, що перекриє ваші команди вентилятора i8kctl методом, наведеним у цій відповіді. Для повноти я включу кілька загальних зауважень щодо контролю вентиляторів на ноутбуках Dell та повні інструкції для i8kutils.

Що, ймовірно, не буде працювати

На жаль, два розповсюджених та прямолінійних способи управління вентилятором на ноутбуках - це через ACPI та PWM-штифти, однак, на жаль:

  • Ноутбукам Dell відсутня можливість управління вентилятором ACPI (* 1)

    • як наслідок, спроба з параметрами завантаження ACPI тощо не вдасться
  • На ноутбуках Dell Latitude, наскільки я знаю, не вистачає вентиляторів, що керуються PWM (* 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:, покаже, чи є вентилятор, здатний на Pwm sudo apt-get install fancontrol, sudo pwm-configчи ні


Я фактично використовував параметр ACPI acpi_osi='!Windows 2012', щоб взяти під контроль свої вентилятори Dell Inspiron 15R 5520, оскільки вони завжди крутяться з максимальною швидкістю незалежно від температури.
користувач311982

Це має бути правильна відповідь. Це добре поінформовано і дуже актуально!
імп

Чудова відповідь. Також знайдено тут
malat

1
Дякую тобі, що це спрацювало для мене після спроби всього іншого безрезультатно. Коли я намагався скласти smm, мені не вистачало sys / cdefs.h, але sudo apt-get install g++-multilibвін привів його (як посилається на askubuntu.com/questions/470796/… )
Філіп Даніельс

Я, можливо, трохи запізнююся, але чи є якийсь недолік, коли він буде ставити його на максимальній швидкості?
Zerquix18

14

Lm-датчики в пакеті Встановіть lm-датчикиможуть бути тим, що ви шукаєте.

І як ви запропонували фанконтроль Встановіть вентилятор .

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

"Вентилятор, здатний до ШІМ, підключений до 4-контактного роз'єму (роз'єм: заземлення, + 12 В, сенсор, контроль)." джерело

Коли я бігаю, pwmconfigщо є частиною фанконтролю, я отримую

/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.


1
/ usr / sbin / pwmconfig: Не встановлені сенсорні модулі, що підтримують pwm. Інші способи?
RobinJ

Зазвичай потрібно запустити sensors-detectспочатку і завантажити модуль, на який він пише, щоб отримати температуру та швидкість зчитування швидкості вентилятора, а потім pwmconfig може ним маніпулювати.
psusi

@RobinJ, схоже, у вас немає розпізнаного / підтримуваного чіпа.
psusi

Я збираюся вручити вам нагороду, оскільки це була найбільш інформативна відповідь, яка могла допомогти більшості інших людей.
RobinJ

5

Гаразд, це може бути не відповіді, яку ви шукаєте, але мої проблеми з перегрівом були вирішені, коли видаляли пил, поставивши пилосос на вентиляційні отвори. Якщо ви відчуваєте перегрів на низькій частоті процесора, це, можливо, варто спробувати. Майте на увазі, що, можливо, дрібні деталі можуть засмоктатися. Якщо вам пощастить, цей метод може вирішити проблеми з перегрівом.


Я нагородив цю нагороду вище за те, що це було найбільш інформативним, але моє питання, здається, пов'язане з обладнанням, тому ваша відповідь наблизилась до рішення. Але оскільки я не впевнений у собі, щоб заплутатися з обладнанням мого ноутбука, я просто привіз його до магазину, оскільки він все ще був під гарантією.
RobinJ

Я просто спробував це, і це спрацювало. Спасибі! Мій вентилятор почав ставати голоснішим, і у мене було одне-два відключення через перегрів. Сподіваємось, це це виправило. Зараз вентилятор вмикається і вимикається з нормальним використанням процесора, що чудово (до того, як він постійно працював).
Кімен

@Cymen Просто переконайтеся, що вакуум є антистатичним вакуумом, щоб бути безпечним. Для очищення вентиляційних отворів я використовую балон зі стисненим повітрям, що ви також можете зробити як альтернативу.
user311982

3

У мене Dell Latitude e4200 і наступне працювало для мене, оскільки BIOS переважав налаштування i8kfan. Початкова температура мого комп’ютера становила 105F градусів і приблизно 10 хвилин після використання цих кроків (встановлення вентилятора = 2) темпери CPU / Core знизилися до 96F градусів. Цю процедуру хтось уже опублікував:

Крок 1. Завантажте та встановіть i8ktutils:

# sudo apt-get install i8kutils

Крок 2. Замініть BIOS, щоб не перешкоджати налаштуванням спеціальних вентиляторів. Завантажте вихідний код і складіть програму (SMM) для цього:

# sudo apt-get build-dep i8kutils

потім:

# apt-get source i8kutils

Крок 3. Витягніть вихідний код і CD в каталог:

# 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/

1
Спробував це для останньої версії i8kutils-1.41 на Ubuntu 14.04 і отримав "Файл, включений з /usr/include/stdio.h:27grees, з smm.c: 27: /usr/include/features.h: 374: 25: фатальна помилка: sys / cdefs.h: Немає такого файлу чи каталогу "Однак це вирішує цю проблему askubuntu.com/questions/470796/…
k-den
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.