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


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.