Menggunakan terminal untuk mendapatkan kecepatan kipas saat ini?

27

Saya ingin melihat kecepatan kipas MacBook dan iMac saya saat ini menggunakan terminal. Saya telah menemukan bahwa menjalankan spindumpkemudian cat /tmp/spindump.txt | grep "Fan speed"akan menunjukkannya, tetapi itu sangat lambat dan intensif prosesor. Saya ingin cara yang lebih cepat dan lebih efisien untuk melakukannya.

Saya lebih suka tidak menginstal perangkat lunak pihak ke-3, tetapi saya akan melakukannya jika itu satu-satunya cara.

Adakah yang punya saran untuk bagaimana saya bisa mencapai ini?

Terima kasih

Yusuf
sumber
2
Intinya, pada Mavericks, Apple tidak menyediakan cara untuk menanyakan informasi yang dikelola SMC. Dengan demikian, cara terbaik adalah menggunakan smcFanControl, yang sebenarnya jauh lebih dari sekadar kontrol fac.
Max Ried
1
Saya memang menggunakan smcFanControl, tetapi apakah ada cara mengakses informasinya dari terminal? Itulah yang paling saya minati.
Joseph
Anda dapat menggunakan smcalat baris perintah smcFanControl untuk mendapatkan kecepatan kipas; github.com/hholtmann/smcFanControl/tree/master/smc-command
Graham Miln
Anda hampir sampai. spindump memiliki manual ( man spindump) dan Anda dapat mengatur waktu yang dibutuhkan untuk menjalankan. Jawabannya ada di bawah ini.
CousinCocaine

Jawaban:

22

smcFanControl

Anda menyebutkan dalam komentar Anda bahwa smcFanControl telah diinstal; proyek sumber terbuka ini termasuk alat baris perintah smc. Anda dapat menggunakan smcuntuk mendapatkan informasi kecepatan kipas melalui Terminal.app:

smc -f

Lihat halaman manual smc untuk opsi lebih lanjut.

Sejak Mac OS X 10.5, Anda perlu menggunakan perangkat lunak pihak ketiga untuk mengakses informasi kecepatan kipas. Tampaknya tidak ada alat, diinstal secara default pada OS X, memaparkan informasi ini melalui terminal.

Proyek sumber terbuka Kontrol Kipas mencakup alat baris perintah yang memberikan informasi kecepatan kipas. Artikel ini, OS X: Suhu CPU saat ini di baris perintah , berbicara tentang proyek dan cara mengekstrak kecepatan kipas:

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

Hindari spindump

spindumpmembutuhkan hak administrator dan ketika dijalankan secara manual, sampel spindump pengguna dan tumpukan kernel untuk setiap proses dalam sistem. Ini adalah proses yang mahal secara komputasi, bahkan ketika dijalankan selama satu detik.

Alternatif

Alat dan aplikasi lain ada, termasuk Monitor Suhu . Lihat Bisakah saya mendapatkan suhu CPU dan kecepatan kipas dari baris perintah di OS X?

Pra-Mac OS X 10.5

Artikel ini, dapatkan informasi sensor , menunjukkan cara menggunakan ioreguntuk mengekstrak informasi kecepatan kipas dengan:

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

Artikel di atas dan skrip yang dikandungnya dirancang untuk Mac OS X 10.4.3.

Lihat juga:

Graham Miln
sumber
1
Monitor Suhu Bresink (yang saya gunakan) gratis untuk membaca suhu, tetapi perlu lisensi untuk membaca sensor lain (misalnya kecepatan kipas).
Gilby
Itu bagus, tetapi hanya berfungsi melalui baris perintah, untuk menemukan aplikasi, buka:cd /Applications/smcFanControl.app/Contents/Resources/
dr.dimitru
3
brew install Caskroom/cask/smcfancontroldan menggunakannya juga membutuhkan kata sandi.
Nakilon
7

Oneliner - memberikan output setelah 1 detik menggunakan spindump

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

Setiap bagian terpisah menjelaskan:

SD=~/.spindump.txt: buat variabel dengan log .spindump.txt

sudo rm $SD: bersihkan file tmp Anda menggunakan sudo rights, karena file tersebut dibuat oleh sudo spindump.

sudo spindump 1 1 -file $SD: jalankan spindump sebagai root (hanya berjalan sebagai root) selama 1 detik dalam 1 interval dan output file ke $ SD Anda

grep "Fan speed" $SD: dapatkan garis yang bertuliskan "Kecepatan kipas"

Sangat disayangkan bahwa kita memerlukan hak sudo untuk menjalankan skrip ini.


> 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
SepupuCocaine
sumber
Saya menjalankan 10.8.5 pada iMac dan laporan spindump saya tidak menyertakan penyebutan "kecepatan kipas" atau bahkan "kipas".
aaaidan
Saya menjalankan 10.9.1. Saya tidak dapat menemukan 'versi' spindump saya, tetapi kecepatan kipas saya ada di 20 baris pertama.
CousinCocaine
apakah Anda menggunakan laptop atau desktop?
aaaidan
@aaaidan Saya menjalankan Mac Mini (Model perangkat keras: Macmini5,3) dan retina MBP (model perangkat keras: MacBookPro11, 1). Keduanya memiliki variabel "kecepatan kipas" dalam output mereka.
CousinCocaine
1
Tidak menemukan ini dapat diandalkan. di Macbook saya, saya harus mengambil bagian Touch agar berfungsi tetapi kemudian rm tidak berfungsi. Juga jika saya menjalankan: sudo spindump 1 1 -file /tmp/spindump.txt > /dev/null 2>&1;grep "Fan speed" /tmp/spindump.txtSatu coba berfungsi selanjutnya coba tidak
markhunte
6

Di Mojave, spindump tampaknya tidak mencantumkan kecepatan kipas. Melihat bahwa powermetrics melakukannya. Coba jalankan sudo powermetrics | grep Fanjika Anda menggunakan Mojave.

Supersheep
sumber
Saya baru saja mencoba, tetapi tidak mendapatkan output mengenai kecepatan kipas, juga halaman manual tidak menunjukkan apa-apa. Bagaimana tepatnya ini bekerja di Mac Anda?
nohillside
Powermetrics membutuhkan waktu beberapa detik untuk menghasilkan kecepatan kipas, jadi biarkan beroperasi sampai sampel SMC. Di halaman manual untuk powermetrics pada 10.14.4, saya melihat yang berikut di bawah bagian Deskripsi uraian: "SMC: Smc sampler menampilkan informasi yang disediakan oleh System Management Controller. Pada platform yang didukung, ini termasuk kecepatan kipas dan informasi dari berbagai sensor suhu . " Sistem saya adalah 2018 MacBookPro15,1.
Supersheep
Ah, untuk alasan apa pun gagal membaca nilai SMC di Mac Mini ( unable to get smc values).
nohillside
2

Jadi saya baru-baru ini memeriksa perintah yang mungkin dengan terminal (tahan esc sampai prompt di terminal) dan saya menemukan perintah yang dapat memeriksa kecepatan kipas CPU Thermal level, dll. Dan perintahnya adalah "powermetrics" dan memerlukan sudo untuk melakukannya. Jika Anda hanya membutuhkan kecepatan kipas, Anda dapat menyertakan opsi smapling smc seperti "powermetrics -s smc". Itu memperbarui lambat, tetapi dapat diubah menggunakan opsi -i dan memasukkan waktu dalam milidetik.

Jackson Chen
sumber
0

Saya mendapat gelar MBA dengan masalah SMC dan aplikasi ini menyelesaikan masalah saya. SmcFanControl tidak berfungsi untuk saya dan saya sudah mencoba FanControl juga. Di GNU / Linux saya dapat mengatur nilai max dan min melalui terminal jadi jika saya bisa di GNU / Linux, saya harus melakukan hal yang sama dalam sistem Unix. Aplikasi ini adalah Macs Fan Control https://github.com/crystalidea/macs-fan-control/releases/download/v1.4.12/macsfancontrol.zip

Saya harap bekerja untuk Anda juga

Gnorkanburg
sumber
-5

Klik tiga kali berikut ini, salin, dan tempel ke Terminal:

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

Seharusnya menghasilkan kecepatan kipas.

Greg
sumber
3
Dalam pertanyaannya, dia bilang dia tidak ingin melakukan hal yang tepat ini.
Spotlight
3
Ditambah pertanyaan dijawab sepenuhnya tahun lalu.
Joseph
Saya ingin menambahkan suara saya ke @ Spotlight's.
DA Vincent
2
@Reg - Selamat Datang di Ask Different. Komunitas bisa terlihat sedikit brutal di sini pada waktu-waktu tertentu yang mungkin agak mengecewakan bagi pengguna baru seperti Anda. Saya menghargai upaya Anda untuk berkontribusi dan ingin mengarahkan Anda ke Pusat Bantuan kami : Cara Menjawab sebagai sumber untuk menulis jawaban yang akan menarik pandangan dan menaikkan suara. Jangan biarkan suara negatif pada jawaban pertama Anda menghalangi Anda untuk berkontribusi di masa depan.
Allan