Используя терминал, чтобы получить текущую скорость вентилятора?

27

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

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

Кто-нибудь есть какие-либо предложения о том, как я мог бы сделать это?

Благодарность

Джозеф
источник
2
Дело в том, что с Mavericks Apple не предоставляет способ запрашивать информацию, управляемую SMC. Таким образом, лучшим способом было бы использовать smcFanControl, который на самом деле намного больше, чем просто элемент управления fac.
Макс Райд
1
Я использую smcFanControl, но есть ли способ получить доступ к его информации с терминала? Это то, что меня больше всего интересует.
Джозеф
Вы можете использовать инструмент smcкомандной строки smcFanControl, чтобы получить скорость вентилятора; github.com/hholtmann/smcFanControl/tree/master/smc-command
Грэм Милн
Вы почти там. У spindump есть manpage ( man spindump), и вы можете установить время, необходимое для его запуска. Ответ ниже.
Кузен Кокаин

Ответы:

22

smcFanControl

Вы упоминаете в своих комментариях, что установлен smcFanControl ; Этот проект с открытым исходным кодом включает в себя инструмент командной строки smc. Вы можете использовать smcдля получения информации о скорости вращения вентилятора через Terminal.app:

smc -f

Смотрите страницу руководства smc для большего количества опций.

Начиная с Mac OS X 10.5, вам нужно использовать стороннее программное обеспечение для доступа к информации о скорости вращения вентилятора. Похоже, никакой инструмент, установленный по умолчанию в OS X, предоставляет эту информацию через терминал.

Проект с открытым исходным кодом Fan Control включает в себя инструмент командной строки, который предоставляет информацию о скорости вентилятора. В этой статье 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требует прав администратора и при запуске вручную 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/
адресу
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: получить строку с надписью «Скорость вентилятора»

Очень жаль, что нам нужны права sudo для запуска этого скрипта.


> 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
CousinCocaine
источник
Я использую 10.8.5 на iMac, и в моем отчете о спиндумпе не упоминается «Скорость вентилятора» или даже «Вентилятор».
Аайдан
Я бегу 10.9.1. Я не могу найти свою «версию» spindump, но моя скорость вентилятора находится в первых 20 строках.
двоюродный брат Кокаин
ты на ноутбуке или на рабочем столе?
aaaidan
@aaaidan Я использую Mac Mini (аппаратная модель: Macmini5,3) и сетчатку MBP (аппаратная модель: MacBookPro11,1). Оба имеют переменную «Скорость вентилятора» на своем выходе.
двоюродный брат Кокаин
1
Не нахожу это надежным. на моем Macbook я должен вынуть сенсорную часть, чтобы она работала, но тогда rm не работает. Также, если я бегу: sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txtодна попытка работает, следующая попытка не работает
markhunte
6

На Мохаве, spindump, похоже, не перечисляет скорость вращения вентилятора. Заметил, что powermetrics делает, хотя. Попробуйте бежать, sudo powermetrics | grep Fanесли вы находитесь на Мохаве.

Supersheep
источник
Я только попробовал, но не получил никакого вывода относительно скорости вращения вентилятора, также страница руководства ничего не указывает. Как именно это работает на вашем Mac?
холме
Powermetrics действительно занимает несколько секунд, чтобы сгенерировать скорость вращения вентилятора, поэтому дайте ему поработать, пока он не выполнит выборку SMC. На странице руководства для powermetrics в 10.14.4 я вижу следующее в разделе «Описание вывода»: «SMC: сэмплер smc отображает информацию, предоставляемую контроллером управления системой. На поддерживаемых платформах это включает скорость вращения вентилятора и информацию от различных датчиков температуры «. Моя система - MacBook Pro15,18.
Супергиш
Ах, по какой-то причине он не может прочитать значения SMC на моем Mac Mini ( unable to get smc values).
холме
2

Поэтому я недавно проверил возможные команды с терминала (удерживайте esc до появления приглашения на терминале) и нашел команду, которая может проверять скорость вращения вентилятора. Тепловой уровень ЦП и т. Д., И это команда "powermetrics", и для этого требуется sudo. Если вам нужна только скорость вращения вентилятора, вы можете включить опцию smapling, например, "powermetrics -s smc". Обновление происходит медленно, но его можно изменить с помощью параметра -i и указать время в миллисекундах.

Джексон Чен
источник
0

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

Я надеюсь, что работа для вас тоже

gnorkanburg
источник
-5

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

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

Он должен выводить скорость вращения вентилятора.

Greg
источник
3
В вопросе он говорит, что не хочет делать именно эту вещь.
Прожектор
3
Плюс на этот вопрос был дан полный ответ в прошлом году.
Иосиф
Я хотел бы добавить свой голос в @ Spotlight's.
DA Винсент
2
@Greg - Добро пожаловать, чтобы спросить другого. Сообщество может показаться здесь немного жестоким, что может быть немного неприятно для новых пользователей, таких как вы. Я приветствую ваше стремление внести свой вклад и хотел бы обратить ваше внимание на наш справочный центр: «Как ответить» в качестве ресурса для написания ответов, который привлечет внимание и количество голосов. Не позволяйте отрицательным голосам за ваш первый ответ отговорить вас от участия в будущем.
Аллан