Використовуєте термінал для отримання поточної швидкості вентилятора?


27

Я хотів би переглянути поточні швидкості вентилятора мого MacBook та iMac за допомогою терміналу. Я виявив, що запуск spindumpпотім cat /tmp/spindump.txt | grep "Fan speed"покаже це, але це дуже повільно і процесор інтенсивно. Мені б хотілося, щоб це було швидше та ефективніше.

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

Хтось має якісь пропозиції, як я можу це зробити?

Спасибі


2
Справа в тому, що, як і Mavericks, Apple не забезпечує спосіб запиту інформації, керованої SMC. Таким чином, найкращим способом було б використовувати smcFanControl, який насправді є набагато більшим, ніж просто управління фактом.
— Макс Рійд

1
Я використовую smcFanControl, але чи є спосіб отримати доступ до його інформації з терміналу? Саме це мене найбільше цікавить.
— Йосип

Ви можете використовувати інструмент smcкомандного рядка smcFanControl, щоб отримати швидкість вентилятора; github.com/hholtmann/smcFanControl/tree/master/smc-command
— Грем Мілн

Ви майже там. spindump має manpage ( man spindump), і ви можете встановити час, необхідний для запуску. Відповідь нижче.
— CousinCocaine

Відповіді:


22

smcFanControl

Ви згадуєте у своїх коментарях про встановлення smcFanControl ; цей проект з відкритим кодом включає інструмент командного рядка smc. Ви можете використовувати smcдля отримання інформації про швидкість вентилятора через Terminal.app:

smc -f

Для отримання додаткових опцій див . Сторінку керівництва smc .

Оскільки Mac OS X 10.5, для доступу до інформації про швидкість вентилятора вам потрібно використовувати програмне забезпечення сторонніх розробників. Здається, жоден інструмент, встановлений за замовчуванням на OS X, не відкриває цю інформацію через термінал.

Проект з відкритим кодом управління вентиляторами з включає інструмент командного рядка, який забезпечує інформацію про швидкість вентилятора. Ця стаття, OS X: Поточна температура процесора в командному рядку , розповідає про проект та як отримати швидкість вентилятора:

smc -k TC0D -r | sed 's/.*bytes \(.*\))/\1/' |sed 's/\([0-9a-fA-F]*\)/0x\1/g' | perl -ne 'chomp; ($low,$high) = split(/ /); print (((hex($low)*256)+hex($high))/4/64); print "C\n";'

Уникайте запікання

spindumpвимагає привілеїв адміністратора і під час запуску вручну, запит зразків користувачів із запитом на зразки для кожного процесу в системі. Це обчислювально дорогий процес, навіть коли він працює протягом однієї секунди.

Альтернативи

Існують інші інструменти та програми, включаючи монітор температури . Див. Чи можна отримати температуру процесора та швидкість вентилятора з командного рядка в OS X?

Pre-Mac OS X 10.5

У цій статті, яка отримує інформацію про датчики , показано, як використовувати ioregдля отримання інформації про швидкість вентилятора за допомогою:

ioreg -c IOHWSensor | grep -B3 -A11 '"type" = "fanspeed"'

Вищенаведена стаття та сценарій, який вона містить, були розроблені для Mac OS X 10.4.3.

Дивись також:


1
Монітор температури Bresink (який я використовую) безкоштовний для зчитування температури, але йому потрібна ліцензія на зчитування інших датчиків (наприклад, швидкості обертання вентилятора).
— Гілбі

Це добре, але працює тільки через командний рядок, щоб знайти додаток по адресою:cd /Applications/smcFanControl.app/Contents/Resources/
— dr.dimitru

3
brew install Caskroom/cask/smcfancontrolа для його використання також потрібен пароль.
— Накілон

7

Oneliner - дає вихід через 1 секунду за допомогою шпинделя

SD=~/.spindump.txt;sudo rm $SD;sudo spindump 1 1 -file "$SD" ;grep "Fan speed" $SD

Кожна окрема частина пояснювала:

SD=~/.spindump.txt: створити змінну за допомогою журналу .spindump.txt

sudo rm $SD: очистіть свій tmp-файл, використовуючи права sudo, оскільки файл створений sudo spindump.

sudo spindump 1 1 -file $SD: запустити Spindump як root (він працює лише як root) протягом 1 секунди за 1 інтервал і вивести файл у ваш $ SD

grep "Fan speed" $SD: отримати рядок із написом "Швидкість вентилятора"

Дуже прикро, що для запуску цього сценарію нам потрібні права судо.


> SD=~/.spindump.txt;sudo rm $SD;sudo spindump 1 1 -file "$SD" ;grep "Fan speed" $SD

Password:
Sampling all processes for 1 seconds with 10 milliseconds of run time between samples
Focusing on launchd [1]
Sampling completed, processing symbols...
Spindump analysis written to file /Users/CousinCocaine/.spindump.txt
Fan speed:       2302 rpm

Я працюю 10.8.5 на iMac, і в моєму звіті про випередження немає жодної згадки про "швидкість вентилятора" або навіть "вентилятор".
— aaaidan

Я бігаю 10.9.1. Я не можу знайти свою "версію" виточки, але швидкість мого вентилятора знаходиться в перших 20 рядках.
— CousinCocaine

ти на ноутбуці чи на робочому столі?
— aaaidan

@aaaidan Я використовую Mac Mini (апаратна модель: Macmini5,3) та сітківку MBP (Апаратна модель: MacBookPro11,1). Обидва мають змінну "Швидкість вентилятора" у своєму виході.
— CousinCocaine

1
Не вважаючи це надійним. на моєму Macbook я повинен вийняти сенсорну частину, щоб вона працювала, але тоді rm не працює. Також якщо я запускаю: sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txtОдин спробуй, працює наступна, спробуй це не так
— markhunte

6

У Mojave, амортизатор, схоже, не відображає швидкості вентилятора. Помітив, що силові метрики це все-таки. Спробуйте запустити, sudo powermetrics | grep Fanякщо ви на Mojave.


Я просто спробував, але не отримав жодного результату щодо швидкості вентилятора, а також man page нічого не вказує. Як саме це працює на вашому Mac?
— nohillside

Powermetrics займає кілька секунд для генерування швидкості вентилятора, тому нехай вона працює, поки вона не пробить SMC. На головній сторінці енергометрії 10.14.4 я бачу в розділі «Опис виходу» таке: «SMC: Програма збору проб SMC відображає інформацію, що надається контролером управління системою. На підтримуваних платформах це включає швидкість вентилятора та інформацію від різних датчиків температури. . " Моя система - MacBookPro15,1 2018 року.
— Надвечір

Ах, з будь-якої причини не вдається прочитати значення SMC на моєму Mac Mini ( unable to get smc values).
— nohillside

2

Тому я нещодавно перевірив можливі команди з терміналом (утримуйте esc до підказок у терміналі) і знайшов команду, яка може перевірити швидкість теплового рівня вентилятора CPU, і т.д. Якщо вам потрібна лише швидкість вентилятора, ви можете включити параметр smapling smc типу "powermetrics -s smc". Це оновлення відбувається повільно, але його можна змінити за допомогою параметра -i та включити час у мілісекундах.


0

У мене є MBA з проблемами SMC, і ця програма вирішує мою проблему. SmcFanControl не працює для мене, і я також спробував FanControl. У GNU / Linux я можу встановити максимальні та мінімальні значення через термінал, тому якщо я можу в GNU / Linux, я повинен робити те ж саме в системі Unix. Цей додаток Macs Fan Control https://github.com/crystalidea/macs-fan-control/releases/download/v1.4.12/macsfancontrol.zip

Я сподіваюся, що також буде працювати для вас


-5

Тричі клацніть на наведеному нижче, скопіюйте його та вставіть у термінал:

sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txt;sudo rm /tmp/spindump.txt

Він повинен вивести швидкість обертання вентилятора.


3
У запитанні він каже, що не хоче робити цю точну справу.
— Прожектор

3
Плюс на це питання відповіли повністю минулого року.
— Йосиф

Я хотів би додати свій голос до @ Spotlight's.
— DA Vincent

2
@Greg - Ласкаво просимо просити різних. Спільнота може здатися дещо жорстокою тут, що може дещо відкласти нових користувачів, таких як ви. Я аплодую ваші зусилля, щоб зробити свій внесок, і хотів би направити вас до нашого Довідкового центру: Як відповісти як ресурс для написання відповідей, які залучатимуть погляди та голоси. Не дозволяйте негативним голосам за вашу першу відповідь відвертати вас від подальшого внеску.
— Алан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.