2015-02-17 8 views
6

Gibt es eine Referenz für SMC-Schlüssel Bedeutung?Beschreibung für Apple's SMC Keys

Ich fand diese http://www.parhelia.ch/blog/statics/k3_keys.html

aber es ist nicht vollständig.

Ich bin besonders interessiert an Tasten im Zusammenhang mit Temperatursensoren.

Zum Beispiel auf einem MacMini ich die Schlüssel für Temperatur erhalten:

TA0P TC0P TCSC TM0S 
TA0p TC0c TCSc TM0p 
TA1P TC0d TCTD TMBS 
TA1p TC0p TCXC TP0P 
TC0C TC1C TCXc TP0p 
TC0D TC1c TI0P TPCD 
TC0E TCFC TI0p TPCd 
TC0F TCGC TI1P TW0P 
TC0G TCGc TI1p TW0p 
TC0J TCPG TM0P Tp0C 

Antwort

9

Update:

ich jetzt einen Rahmen haben für die SMC und andere nützliche Systeminformationen zugreifen, die Sie wahrscheinlich stattdessen verwenden sollten o f Schreiben Sie den Code für den Zugriff auf die SMC selbst: SystemInfoKit.


Die alte Antwort ist unten, falls jemand mehr Details benötigt.


Here ist mein Führer auf den SMC programmatisch Zugriff auf die diese komplette Liste der Schlüssel in Objective-C bilden zusammen aus vielen Quellen und meine streng geheime Experimente setzen beinhaltet:

// All SMC temperature, voltage, current, and power keys 

// Set up keys and human-readable names for keys 
smcTempKeys = [[NSArray alloc] initWithObjects: @"TCXC", @"TCXc", @"TC0P", @"TC0H", @"TC0D", @"TC0E", @"TC0F", @"TC1C", @"TC2C", @"TC3C", @"TC4C", @"TC5C", @"TC6C", @"TC7C", @"TC8C", @"TCAH", @"TCAD", @"TC1P", @"TC1H", @"TC1D", @"TC1E", @"TC1F", @"TCBH", @"TCBD", @"TCSC", @"TCSc", @"TCSA", @"TCGC", @"TCGc", @"TG0P", @"TG0D", @"TG1D", @"TG0H", @"TG1H", @"Ts0S", @"TM0P", @"TM1P", @"TM8P", @"TM9P", @"TM0S", @"TM1S", @"TM8S", @"TM9S", @"TN0D", @"TN0P", @"TN1P", @"TN0C", @"TN0H", @"TP0D", @"TPCD", @"TP0P", @"TA0P", @"TA1P", @"Th0H", @"Th1H", @"Th2H", @"Tm0P", @"Tp0P", @"Ts0P", @"Tb0P", @"TL0P", @"TW0P", @"TH0P", @"TH1P", @"TH2P", @"TH3P", @"TO0P", @"Tp0P", @"Tp0C", @"TB0T", @"TB1T", @"TB2T", @"TB3T", @"Tp1P", @"Tp1C", @"Tp2P", @"Tp3P", @"Tp4P", @"Tp5P", @"TS0C", @"TA0S", @"TA1S", @"TA2S", @"TA3S", nil]; 

smcVoltageKeys = [[NSArray alloc] initWithObjects:@"VC0C", @"VC1C", @"VC2C", @"VC3C", @"VC4C", @"VC5C", @"VC6C", @"VC7C", @"VV1R", @"VG0C", @"VM0R", @"VN1R", @"VN0C", @"VD0R", @"VD5R", @"VP0R", @"Vp0C", @"VV2S", @"VR3R", @"VV1S", @"VH05", @"VV9S", @"VD2R", @"VV7S", @"VV3S", @"VV8S", @"VeES", @"VBAT", @"Vb0R", nil]; 

smcCurrentKeys = [[NSArray alloc] initWithObjects:@"IC0C", @"IC1C", @"IC2C", @"IC0R", @"IC5R", @"IC8R", @"IC0G", @"IC0M", @"IG0C", @"IM0C", @"IM0R", @"IN0C", @"ID0R", @"ID5R", @"IO0R", @"IB0R", @"IPBR", nil]; 

smcPowerKeys = [[NSArray alloc] initWithObjects:@"PC0C", @"PC1C", @"PC2C", @"PC3C", @"PC4C", @"PC5C", @"PC6C", @"PC7C", @"PCPC", @"PCPG", @"PCPD", @"PCTR", @"PCPL", @"PC1R", @"PC5R", @"PGTR", @"PG0R", @"PM0R", @"PN0C", @"PN1R", @"PC0R", @"PD0R", @"PD5R", @"PH02", @"PH05", @"Pp0R", @"PD2R", @"PO0R", @"PBLC", @"PB0R", @"PDTR", @"PSTR", nil]; 

NSMutableDictionary *smcKeyHumanReadableNames = [[NSMutableDictionary alloc] init]; 

[smcKeyHumanReadableNames setValue:@"PECI CPU" forKey:@"TCXC"]; 
[smcKeyHumanReadableNames setValue:@"PECI CPU" forKey:@"TCXc"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1 Proximity" forKey:@"TC0P"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1 Heatsink" forKey:@"TC0H"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1 Package" forKey:@"TC0D"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1" forKey:@"TC0E"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1" forKey:@"TC0F"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 1" forKey:@"TC1C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 2" forKey:@"TC2C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 3" forKey:@"TC3C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 4" forKey:@"TC4C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 5" forKey:@"TC5C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 6" forKey:@"TC6C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 7" forKey:@"TC7C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 8" forKey:@"TC8C"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1 Heatsink Alt." forKey:@"TCAH"]; 
[smcKeyHumanReadableNames setValue:@"CPU 1 Package Alt." forKey:@"TCAD"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2 Proximity" forKey:@"TC1P"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2 Heatsink" forKey:@"TC1H"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2 Package" forKey:@"TC1D"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2" forKey:@"TC1E"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2" forKey:@"TC1F"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2 Heatsink Alt." forKey:@"TCBH"]; 
[smcKeyHumanReadableNames setValue:@"CPU 2 Package Alt." forKey:@"TCBD"]; 

[smcKeyHumanReadableNames setValue:@"PECI SA" forKey:@"TCSC"]; 
[smcKeyHumanReadableNames setValue:@"PECI SA" forKey:@"TCSc"]; 
[smcKeyHumanReadableNames setValue:@"PECI SA" forKey:@"TCSA"]; 

[smcKeyHumanReadableNames setValue:@"PECI GPU" forKey:@"TCGC"]; 
[smcKeyHumanReadableNames setValue:@"PECI GPU" forKey:@"TCGc"]; 
[smcKeyHumanReadableNames setValue:@"GPU Proximity" forKey:@"TG0P"]; 
[smcKeyHumanReadableNames setValue:@"GPU Die" forKey:@"TG0D"]; 
[smcKeyHumanReadableNames setValue:@"GPU Die" forKey:@"TG1D"]; 
[smcKeyHumanReadableNames setValue:@"GPU Heatsink" forKey:@"TG0H"]; 
[smcKeyHumanReadableNames setValue:@"GPU Heatsink" forKey:@"TG1H"]; 

[smcKeyHumanReadableNames setValue:@"Memory Proximity" forKey:@"Ts0S"]; 
[smcKeyHumanReadableNames setValue:@"Mem Bank A1" forKey:@"TM0P"]; 
[smcKeyHumanReadableNames setValue:@"Mem Bank A2" forKey:@"TM1P"]; 
[smcKeyHumanReadableNames setValue:@"Mem Bank B1" forKey:@"TM8P"]; 
[smcKeyHumanReadableNames setValue:@"Mem Bank B2" forKey:@"TM9P"]; 
[smcKeyHumanReadableNames setValue:@"Mem Module A1" forKey:@"TM0S"]; 
[smcKeyHumanReadableNames setValue:@"Mem Module A2" forKey:@"TM1S"]; 
[smcKeyHumanReadableNames setValue:@"Mem Module B1" forKey:@"TM8S"]; 
[smcKeyHumanReadableNames setValue:@"Mem Module B2" forKey:@"TM9S"]; 

[smcKeyHumanReadableNames setValue:@"Northbridge Die" forKey:@"TN0D"]; 
[smcKeyHumanReadableNames setValue:@"Northbridge Proximity 1" forKey:@"TN0P"]; 
[smcKeyHumanReadableNames setValue:@"Northbridge Proximity 2" forKey:@"TN1P"]; 
[smcKeyHumanReadableNames setValue:@"MCH Die" forKey:@"TN0C"]; 
[smcKeyHumanReadableNames setValue:@"MCH Heatsink" forKey:@"TN0H"]; 
[smcKeyHumanReadableNames setValue:@"PCH Die" forKey:@"TP0D"]; 
[smcKeyHumanReadableNames setValue:@"PCH Die" forKey:@"TPCD"]; 
[smcKeyHumanReadableNames setValue:@"PCH Proximity" forKey:@"TP0P"]; 

[smcKeyHumanReadableNames setValue:@"Airflow 1" forKey:@"TA0P"]; 
[smcKeyHumanReadableNames setValue:@"Airflow 2" forKey:@"TA1P"]; 
[smcKeyHumanReadableNames setValue:@"Heatpipe 1" forKey:@"Th0H"]; 
[smcKeyHumanReadableNames setValue:@"Heatpipe 2" forKey:@"Th1H"]; 
[smcKeyHumanReadableNames setValue:@"Heatpipe 3" forKey:@"Th2H"]; 

[smcKeyHumanReadableNames setValue:@"Mainboard Proximity" forKey:@"Tm0P"]; 
[smcKeyHumanReadableNames setValue:@"Powerboard Proximity" forKey:@"Tp0P"]; 
[smcKeyHumanReadableNames setValue:@"Palm Rest" forKey:@"Ts0P"]; 
[smcKeyHumanReadableNames setValue:@"BLC Proximity" forKey:@"Tb0P"]; 

[smcKeyHumanReadableNames setValue:@"LCD Proximity" forKey:@"TL0P"]; 
[smcKeyHumanReadableNames setValue:@"Airport Proximity" forKey:@"TW0P"]; 
[smcKeyHumanReadableNames setValue:@"HDD Bay 1" forKey:@"TH0P"]; 
[smcKeyHumanReadableNames setValue:@"HDD Bay 2" forKey:@"TH1P"]; 
[smcKeyHumanReadableNames setValue:@"HDD Bay 3" forKey:@"TH2P"]; 
[smcKeyHumanReadableNames setValue:@"HDD Bay 4" forKey:@"TH3P"]; 
[smcKeyHumanReadableNames setValue:@"Optical Drive" forKey:@"TO0P"]; 

[smcKeyHumanReadableNames setValue:@"Battery TS_MAX" forKey:@"TB0T"]; 
[smcKeyHumanReadableNames setValue:@"Battery 1" forKey:@"TB1T"]; 
[smcKeyHumanReadableNames setValue:@"Battery 2" forKey:@"TB2T"]; 
[smcKeyHumanReadableNames setValue:@"Battery" forKey:@"TB3T"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 1" forKey:@"Tp0P"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 1 Alt." forKey:@"Tp0C"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 2" forKey:@"Tp1P"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 2 Alt." forKey:@"Tp1C"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 3" forKey:@"Tp2P"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 4" forKey:@"Tp3P"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 5" forKey:@"Tp4P"]; 
[smcKeyHumanReadableNames setValue:@"Power Supply 6" forKey:@"Tp5P"]; 

[smcKeyHumanReadableNames setValue:@"Expansion Slots" forKey:@"TS0C"]; 
[smcKeyHumanReadableNames setValue:@"PCI Slot 1 Pos 1" forKey:@"TA0S"]; 
[smcKeyHumanReadableNames setValue:@"PCI Slot 1 Pos 2" forKey:@"TA1S"]; 
[smcKeyHumanReadableNames setValue:@"PCI Slot 2 Pos 1" forKey:@"TA2S"]; 
[smcKeyHumanReadableNames setValue:@"PCI Slot 2 Pos 2" forKey:@"TA3S"]; 


[smcKeyHumanReadableNames setValue:@"CPU Core 1" forKey:@"VC0C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 2" forKey:@"VC1C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 3" forKey:@"VC2C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 4" forKey:@"VC3C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 5" forKey:@"VC4C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 6" forKey:@"VC5C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 7" forKey:@"VC6C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 8" forKey:@"VC7C"]; 
[smcKeyHumanReadableNames setValue:@"CPU VTT" forKey:@"VV1R"]; 

[smcKeyHumanReadableNames setValue:@"GPU Core" forKey:@"VG0C"]; 

[smcKeyHumanReadableNames setValue:@"Memory" forKey:@"VM0R"]; 

[smcKeyHumanReadableNames setValue:@"PCH" forKey:@"VN1R"]; 
[smcKeyHumanReadableNames setValue:@"MCH" forKey:@"VN0C"]; 

[smcKeyHumanReadableNames setValue:@"Mainboard S0 Rail" forKey:@"VD0R"]; 
[smcKeyHumanReadableNames setValue:@"Mainboard S5 Rail" forKey:@"VD5R"]; 
[smcKeyHumanReadableNames setValue:@"12V Rail" forKey:@"VP0R"]; 
[smcKeyHumanReadableNames setValue:@"12V Vcc" forKey:@"Vp0C"]; 
[smcKeyHumanReadableNames setValue:@"Main 3V" forKey:@"VV2S"]; 
[smcKeyHumanReadableNames setValue:@"Main 3.3V" forKey:@"VR3R"]; 
[smcKeyHumanReadableNames setValue:@"Main 5V" forKey:@"VV1S"]; 
[smcKeyHumanReadableNames setValue:@"Main 5V" forKey:@"VH05"]; 
[smcKeyHumanReadableNames setValue:@"Main 12V" forKey:@"VV9S"]; 
[smcKeyHumanReadableNames setValue:@"Main 12V" forKey:@"VD2R"]; 
[smcKeyHumanReadableNames setValue:@"Auxiliary 3V" forKey:@"VV7S"]; 
[smcKeyHumanReadableNames setValue:@"Standby 3V" forKey:@"VV3S"]; 
[smcKeyHumanReadableNames setValue:@"Standby 5V" forKey:@"VV8S"]; 
[smcKeyHumanReadableNames setValue:@"PCIe 12V" forKey:@"VeES"]; 

[smcKeyHumanReadableNames setValue:@"Battery" forKey:@"VBAT"]; 
[smcKeyHumanReadableNames setValue:@"CMOS Battery" forKey:@"Vb0R"]; 


[smcKeyHumanReadableNames setValue:@"CPU Core" forKey:@"IC0C"]; 
[smcKeyHumanReadableNames setValue:@"CPU VccIO" forKey:@"IC1C"]; 
[smcKeyHumanReadableNames setValue:@"CPU VccSA" forKey:@"IC2C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Rail" forKey:@"IC0R"]; 
[smcKeyHumanReadableNames setValue:@"CPU DRAM" forKey:@"IC5R"]; 
[smcKeyHumanReadableNames setValue:@"CPU PLL" forKey:@"IC8R"]; 
[smcKeyHumanReadableNames setValue:@"CPU GFX" forKey:@"IC0G"]; 
[smcKeyHumanReadableNames setValue:@"CPU Memory" forKey:@"IC0M"]; 

[smcKeyHumanReadableNames setValue:@"GPU Rail" forKey:@"IG0C"]; 

[smcKeyHumanReadableNames setValue:@"Memory Controller" forKey:@"IM0C"]; 
[smcKeyHumanReadableNames setValue:@"Memory Rail" forKey:@"IM0R"]; 

[smcKeyHumanReadableNames setValue:@"MCH" forKey:@"IN0C"]; 

[smcKeyHumanReadableNames setValue:@"Mainboard S0 Rail" forKey:@"ID0R"]; 
[smcKeyHumanReadableNames setValue:@"Mainboard S5 Rail" forKey:@"ID5R"]; 
[smcKeyHumanReadableNames setValue:@"Misc. Rail" forKey:@"IO0R"]; 

[smcKeyHumanReadableNames setValue:@"Battery Rail" forKey:@"IB0R"]; 
[smcKeyHumanReadableNames setValue:@"Charger BMON" forKey:@"IPBR"]; 


[smcKeyHumanReadableNames setValue:@"CPU Core 1" forKey:@"PC0C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 2" forKey:@"PC1C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 3" forKey:@"PC2C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 4" forKey:@"PC3C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 5" forKey:@"PC4C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 6" forKey:@"PC5C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 7" forKey:@"PC6C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Core 8" forKey:@"PC7C"]; 
[smcKeyHumanReadableNames setValue:@"CPU Cores" forKey:@"PCPC"]; 
[smcKeyHumanReadableNames setValue:@"CPU GFX" forKey:@"PCPG"]; 
[smcKeyHumanReadableNames setValue:@"CPU DRAM" forKey:@"PCPD"]; 
[smcKeyHumanReadableNames setValue:@"CPU Total" forKey:@"PCTR"]; 
[smcKeyHumanReadableNames setValue:@"CPU Total" forKey:@"PCPL"]; 
[smcKeyHumanReadableNames setValue:@"CPU Rail" forKey:@"PC1R"]; 
[smcKeyHumanReadableNames setValue:@"CPU S0 Rail" forKey:@"PC5R"]; 

[smcKeyHumanReadableNames setValue:@"GPU Total" forKey:@"PGTR"]; 
[smcKeyHumanReadableNames setValue:@"GPU Rail" forKey:@"PG0R"]; 

[smcKeyHumanReadableNames setValue:@"Memory Rail" forKey:@"PM0R"]; 

[smcKeyHumanReadableNames setValue:@"MCH" forKey:@"PN0C"]; 
[smcKeyHumanReadableNames setValue:@"PCH Rail" forKey:@"PN1R"]; 

[smcKeyHumanReadableNames setValue:@"Mainboard S0 Rail" forKey:@"PC0R"]; 
[smcKeyHumanReadableNames setValue:@"Mainboard S0 Rail" forKey:@"PD0R"]; 
[smcKeyHumanReadableNames setValue:@"Mainboard S5 Rail" forKey:@"PD5R"]; 
[smcKeyHumanReadableNames setValue:@"Main 3.3V Rail" forKey:@"PH02"]; 
[smcKeyHumanReadableNames setValue:@"Main 5V Rail" forKey:@"PH05"]; 
[smcKeyHumanReadableNames setValue:@"12V Rail" forKey:@"Pp0R"]; 
[smcKeyHumanReadableNames setValue:@"Main 12V Rail" forKey:@"PD2R"]; 
[smcKeyHumanReadableNames setValue:@"Misc. Rail" forKey:@"PO0R"]; 
[smcKeyHumanReadableNames setValue:@"Battery Rail" forKey:@"PBLC"]; 
[smcKeyHumanReadableNames setValue:@"Battery Rail" forKey:@"PB0R"]; 

[smcKeyHumanReadableNames setValue:@"DC In Total" forKey:@"PDTR"]; 
[smcKeyHumanReadableNames setValue:@"System Total" forKey:@"PSTR"]; 
+0

Vielen Dank. Schade, dass sie nicht offiziell dokumentiert sind ... – Paolo

+0

Ein Teil davon kam tatsächlich aus dem Quellcode von iStat Pro, der versehentlich im Widget zurückgelassen wurde. –

+0

Ja, das habe ich in Ihrem interessanten Führer gelesen. Scheint die einzige verfügbare Information von zufälligen Lecks von Apple zu kommen. – Paolo

0

Leider gibt es nichts vollständiger als parhelia.ch Liste (ich bin 100% sicher, ich genug Zeit auf der Suche ausgegeben. ..)

+0

Und für Daten-Parsing Sehen Sie sich http://github.com/fmorrow/SMCWrapper an – Perceval

+1

Vielen Dank, ich werde einen Blick darauf werfen. Ich war Previuolsy mit dieser einfachen C-Version: https://github.com/hholtmann/smcFanControl/tree/master/smc-command – Paolo