Usi il terminale per ottenere la velocità attuale della ventola?


27

Vorrei visualizzare le attuali velocità della ventola del mio MacBook e iMac tramite terminale. Ho scoperto che in esecuzione spindumpallora cat /tmp/spindump.txt | grep "Fan speed"mostrerà, ma questo è molto lento e intensivo del processore. Vorrei un modo più rapido ed efficiente per farlo.

Preferirei non installare software di terze parti, ma lo farò se è l'unico modo.

Qualcuno ha qualche suggerimento su come potrei realizzare questo?

Grazie


2
Il punto è che, a partire da Mavericks, Apple non fornisce un modo per interrogare le informazioni gestite da SMC. Quindi, il modo migliore sarebbe usare smcFanControl, che in realtà è molto più di un semplice controllo fac.
Max Ried il

1
Uso smcFanControl, ma esiste un modo per accedere alle sue informazioni dal terminale? È quello che mi interessa di più.
Joseph

È possibile utilizzare lo smcstrumento da riga di comando di smcFanControl per ottenere la velocità della ventola; github.com/hholtmann/smcFanControl/tree/master/smc-command
Graham Miln

Ci sei quasi. spindump ha una manpage ( man spindump) e puoi impostare il tempo necessario per l'esecuzione. La risposta è sotto.
Cugina Cocaina,

Risposte:


22

smcFanControl

Nei tuoi commenti hai menzionato l' installazione di smcFanControl ; questo progetto open source include lo strumento da riga di comando smc. È possibile utilizzare smcper ottenere informazioni sulla velocità della ventola tramite Terminal.app:

smc -f

Vedere la pagina del manuale di smc per ulteriori opzioni.

Da Mac OS X 10.5, è necessario utilizzare un software di terze parti per accedere alle informazioni sulla velocità della ventola. Sembra che nessuno strumento, installato di default su OS X, esponga queste informazioni attraverso il terminale.

Il progetto Open Source Fan Control include uno strumento da riga di comando che fornisce informazioni sulla velocità della ventola. Questo articolo, OS X: temperatura attuale della CPU sulla riga di comando , parla del progetto e di come estrarre la velocità della ventola:

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";'

Evitare spindump

spindumprichiede i privilegi di amministratore e quando eseguito manualmente, spindump campiona stack utente e kernel per ogni processo nel sistema. Questo è un processo computazionalmente costoso, anche se eseguito per un secondo.

alternative

Esistono altri strumenti e applicazioni, incluso il monitoraggio della temperatura . Vedi Posso ottenere la temperatura della CPU e la velocità della ventola dalla riga di comando in OS X?

Pre-Mac OS X 10.5

Questo articolo, ottenere informazioni sui sensori , mostra come utilizzare ioregper estrarre le informazioni sulla velocità della ventola con:

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

L'articolo sopra e lo script che contiene è stato progettato per Mac OS X 10.4.3.

Guarda anche:


1
Il monitor della temperatura di Bresink (che utilizzo) è gratuito per la lettura della temperatura, ma necessita di una licenza per leggere altri sensori (ad esempio la velocità della ventola).
Gilby,

È buono, ma funziona solo tramite riga di comando, per trovare l'applicazione vai a:cd /Applications/smcFanControl.app/Contents/Resources/
dr.dimitru

3
brew install Caskroom/cask/smcfancontrole il suo utilizzo richiede anche una password.
Nakilon,

7

Oneliner : fornisce un output dopo 1 secondo usando spindump

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

Ogni parte separata ha spiegato:

SD=~/.spindump.txt: crea una variabile con il registro .spindump.txt

sudo rm $SD: ripulisci il tuo file tmp usando i diritti sudo, poiché il file è stato creato da sudo spindump.

sudo spindump 1 1 -file $SD: esegui spindump come root (funziona solo come root) per 1 secondo in 1 intervallo e invia il file al tuo $ SD

grep "Fan speed" $SD: ottieni la riga che dice "Velocità ventola"

È davvero un peccato che abbiamo bisogno dei diritti sudo per eseguire questo script.


> 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

Sto eseguendo il 10.8.5 su un iMac e il mio rapporto su spindump non include alcuna menzione di "Fan speed" o persino "fan".
aaaidan,

Sto correndo il 10.9.1. Non riesco a trovare la mia "versione" di spindump, ma la velocità della mia ventola è nelle prime 20 righe.
Cugina Cocaina,

sei su un laptop o desktop?
aaaidan,

@aaaidan Sono in esecuzione un Mac Mini (modello hardware: Macmini5,3) e una retina MBP (modello hardware: MacBookPro11,1). Entrambi hanno la variabile "Velocità ventola" nella loro uscita.
Cugina Cocaina,

1
Non trovandolo affidabile. sul mio Macbook devo estrarre la parte Touch per farlo funzionare ma poi l'rm non funziona. Anche se corro: sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txtun tentativo funziona dopo, non provare
markhunte

6

Su Mojave, spindump non sembra elencare la velocità della ventola. Ho notato che Powermetrics, però. Prova a correre sudo powermetrics | grep Fanse sei su Mojave.


Ho appena provato, ma non ho ottenuto alcun risultato in merito alla velocità della ventola, inoltre la pagina man non indica nulla. Come funziona esattamente sul tuo Mac?
nohillside

powermetrics impiega alcuni secondi per generare la velocità della ventola, quindi lasciala funzionare fino a quando non campiona l'SMC. Nella pagina man di powermetrics del 10.14.4, vedo quanto segue nella sezione Descrizione dell'output: "SMC: il campionatore smc visualizza le informazioni fornite dal controller di gestione del sistema. Su piattaforme supportate, questo include la velocità della ventola e le informazioni di vari sensori di temperatura ". Il mio sistema è un MacBookPro 15,1 del 2018.
Supersheep

Ah, per qualsiasi motivo non riesce a leggere i valori SMC sul mio Mac Mini ( unable to get smc values).
Nohillside

2

Quindi di recente ho controllato i comandi possibili con il terminale (tieni premuto esc fino al prompt nel terminale) e ho trovato un comando che può controllare il livello termico della CPU della velocità della ventola, ecc. E il comando è "powermetrics" e richiede sudo per farlo. Se hai solo bisogno della velocità della ventola, puoi includere un'opzione di smapling come "powermetrics -s smc". Si aggiorna lentamente, ma può essere modificato utilizzando l'opzione -i e include un tempo in millisecondi.



-5

Fare triplo clic su quanto segue, copiarlo e incollarlo nel Terminale:

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

Dovrebbe emettere la velocità della ventola.


3
Nella domanda, dice che non vuole fare questa cosa esatta.
Spotlight

3
Inoltre, alla domanda è stata data una risposta completa l'anno scorso.
Joseph,

Vorrei aggiungere la mia voce a @ Spotlight.
DA Vincent,

2
@Greg - Benvenuti a Ask Different. La comunità può sembrare un po 'brutale qui a volte, il che può essere un po' scoraggiante per i nuovi utenti come te. Mi congratulo per il tuo impegno nel contribuire e ho voluto indirizzarti verso il nostro Centro assistenza: come rispondere come risorsa per scrivere risposte che attireranno opinioni e voti positivi. Non lasciare che i voti negativi sulla tua prima risposta ti dissuadano dal contribuire in futuro.
Allan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.