Jump to content
mohdumar

SMBIOS Parser

20 posts in this topic

Recommended Posts

xyyTF.pngSMBIOS Parser

Cocoa application to fetch the current loaded SMBIOS configuration from IORegistry.

 

  • Raw Output tab shows the binary obtained data from ioreg.
  • Parsed Output tab shows parsed data in the form of a table, with key names conforming to those used in smbios.plist. There is also an option to save this parsed data as .plist to disk, for using as smbios.plist after modding. The UUID however is obtained using gethostuuid.

This originally intended to have built-in patcher, but you can use the one in the Lizard app.

 

Usage: open up the app and click "Fetch SMBIOS from IORegistry".

 

Download : v1.0.1 b248 SMBIOS_Parser.app.zip

Older releases

v1.0.0 b231 SMBIOS_Parser.app.zip

post-696481-1314543992_thumb.png

post-696481-1314544018_thumb.png

Share this post


Link to post
Share on other sites
Advertisement

Thanks, works well from genuine Mac too.

 

Might be good to build up some SMBIOS.plists made from genuine Macs. I have contributed mine here from a new MacBook Air. I have xxxx'd out my serial number and uuid for obvious reasons....

 

smbiosMBA.zip

Share this post


Link to post
Share on other sites

Great, thanks.

 

Someone please run this on a MacPro3,1.

 

The output could be useful for those of us who are unable to fool Geekbench when using the MacPro3,1 model identifier.

Not that it matters much of course, I'm just very curious to learn why it doesn't work. iMac9,1 and other model identifiers will work, just not MacPro3,1.

 

For completions sake, there's also smbios tool by fxtentacle (uses dmidecode):

http://www.insanelymac.com/forum/index.php?showtopic=153582

Share this post


Link to post
Share on other sites

Thanks Mal, awesome.

 

Turns out I had the order of smbiosdate wrong and a space in "Mac Pro"...I wonder if the four spaces in front of bootrom version are important. Probably not but I added them anyway.

 

Of course after fixing these minor details, Geekbench still reports it as a Hackintosh. But you would know that already :-)

merda.jpeg

Could you run this on the MacPro3,1 as well?

http://www.insanelymac.com/forum/index.php?showtopic=153582

Share this post


Link to post
Share on other sites

good here.

 

geekbench says i have a real macpro...hehe

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>SMUUID</key>

<string>802643EF-D517-5048-845B-E82CD964D6EB</string>

<key>SMbiosdate</key>

<string>11/06/2009</string>

<key>SMbiosvendor</key>

<string>Apple Inc.</string>

<key>SMbiosversion</key>

<string>MP41.88Z.0081.B07.0910130729</string>

<key>SMboardmanufacturer</key>

<string>Apple Inc.</string>

<key>SMboardproduct</key>

<string>Mac-F221BEC8</string>

<key>SMexternalclock</key>

<string>136</string>

<key>SMfamily</key>

<string>MacPro</string>

<key>SMmanufacturer</key>

<string>Apple Inc.</string>

<key>SMmaximalclock</key>

<string>2760</string>

<key>SMmembankloc_1</key>

<string></string>

<key>SMmembankloc_2</key>

<string></string>

<key>SMmembankloc_3</key>

<string></string>

<key>SMmembankloc_4</key>

<string></string>

<key>SMmemdevloc_1</key>

<string></string>

<key>SMmemdevloc_2</key>

<string></string>

<key>SMmemdevloc_3</key>

<string></string>

<key>SMmemdevloc_4</key>

<string></string>

<key>SMmemmanufacter_1</key>

<string>Kingston</string>

<key>SMmemmanufacter_2</key>

<string>Kingston</string>

<key>SMmemmanufacter_3</key>

<string>Kingston</string>

<key>SMmemmanufacter_4</key>

<string>Kingston</string>

<key>SMmempart_1</key>

<string>99U5471-002.A00LF</string>

<key>SMmempart_2</key>

<string>9905458-009.A00LF</string>

<key>SMmempart_3</key>

<string>99U5471-002.A00LF</string>

<key>SMmempart_4</key>

<string>9905458-009.A00LF</string>

<key>SMmemserial_1</key>

<string></string>

<key>SMmemserial_2</key>

<string></string>

<key>SMmemserial_3</key>

<string></string>

<key>SMmemserial_4</key>

<string></string>

<key>SMmemspeed_1</key>

<string>1366</string>

<key>SMmemspeed_2</key>

<string>1366</string>

<key>SMmemspeed_3</key>

<string>1366</string>

<key>SMmemspeed_4</key>

<string>1366</string>

<key>SMmemtype_1</key>

<string>24</string>

<key>SMmemtype_2</key>

<string>24</string>

<key>SMmemtype_3</key>

<string>24</string>

<key>SMmemtype_4</key>

<string>24</string>

<key>SMproductname</key>

<string>MacPro4,1</string>

<key>SMserial</key>

<string>G89093TK4PC</string>

<key>SMsystemversion</key>

<string>1.0</string>

</dict>

</plist>

post-140310-1314611787_thumb.png

Share this post


Link to post
Share on other sites
The output could be useful for those of us who are unable to fool Geekbench when using the MacPro3,1 model identifier.

Not that it matters much of course, I'm just very curious to learn why it doesn't work. iMac9,1 and other model identifiers will work, just not MacPro3,1.

I have found the source code of the library which Geekbench uses. The list of the original Mac models is in the file:

http://code.google.com/p/geekinfo/source/b...macosxmodel.inc

 

On line 300 of this file, you can see that MacPro3,1 is part of Hackintosh list. So the library when uses this list, if your SMProductName is MacPro3,1, then it will report Hackintosh.

 

Moreover, the library checks the model number based on two things (This you can see from line 228 of the file http://code.google.com/p/geekinfo/source/b...acosxsystem.cpp):

  • Product Name - you can check this by running
    sysctl -a | grep "hw.model"


  • Processor Brand Name - you can check this by running
    sysctl -a | grep "machdep.cpu.brand_string"


 

If these two together match a model in the list file I mentioned above, only then you get a valid model. Otherwise, you can see from line 120 of http://code.google.com/p/geekinfo/source/b...macosxmodel.cpp that it will report Hackintosh.

 

I hope this resolves your curiosity.

Share this post


Link to post
Share on other sites
I hope this resolves your curiosity.

 

thanks mann!! this was also one of my questions as why the hell i'm getting hackintosh only with macpro3,1

so clear now! thanks!

Share this post


Link to post
Share on other sites

Hi,

 

I run a hackintosh - Os X 10.6.6

My System Profiler shows wrong info about my memory modules manufacturer and speed. When I fetch smbios from IOresources using this app it also shows that same wrong memory manufacturer and speed.

I know that i have originally changed that info myself a year ago, but I can't remember where and how?

 

So my noob question is: where is this smbios info fetched from?

Share this post


Link to post
Share on other sites

The Chameleon boot loader is responsible for passing DMI data and overrides in smbios.plist to the IORegistry. Memory detection was added and improved during the RC5 dev cycle but it doesn't work correctly on all platforms. Laptops seem to have the most issues.

 

Edit /Extra/smbios.plist.

 

First make sure you are running a reasonably modern version of Chameleon. It's up to 2.1 now.

If you upgrade to 2.0 final or 2.1 you must replace all instances of "manufacter" with "manufacturer" in smbios.plist.

 

For example

 

SMmemmanufacter/manufacturer_1 - Kingston Technologies

SMmempart_1 - KHX8500D2K2

SMmemspeed_1 - 1066

SMmemserial_1 - 3526AE2B

SMmemtype_1 - 19 (18 = DDR, 19 = DDR2, 20 = DDR2 FB-DIMM, 24 = DDR3)

 

The trailing _1 in the example above defines the occupied slot number:

 

SMmemblabla_1

SMmemblabla_3

 

...for two modules in dual channel configuration.

 

You can get the correct data from Everest or CPU-z on Windows.

 

Also see post #7 above.

 

You should know that all of this is purely cosmetical, it does not affect performance in any way.

Share this post


Link to post
Share on other sites

Anybody have a 2011 Mac Mini Server Smbios? I have a ASUS P8Z68-V PRO, Core i7 2600K and GeForce GTX 560 Ti, and I read that for Z68 motherboards the MacMini5,3 Smbios work very well. The problem is that I only found one smbios.plist with this, and I don't know if it's correct. Here it's the one I'm using.

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SMbiosvendor</key>
<string>Apple Inc.</string>
<key>SMbiosversion</key>
<string>MM51.88Z.0077.B0A.1109091226</string>
<key>SMboardmanufacturer</key>
<string>Apple Inc.</string>
<key>SMboardproduct</key>
<string>Mac-7BA5B2794B2CDB12</string>
<key>SMfamily</key>
<string>Macmini</string>
<key>SMmanufacter</key>
<string>Apple Inc.</string>
<key>SMmanufacturer</key>
<string>Apple Inc.</string>
<key>SMproductname</key>
<string>Macmini5,3</string>
<key>SMserial</key>
<string>C02GHFCWDKDJ</string>
<key>SMsystemversion</key>
<string>1.0</string>
</dict>
</plist>

Share this post


Link to post
Share on other sites

Not sure if it matters, but your SMbiosdate is missing. It's the trailing part of SMbiosversion (YYMMDD format) - 110909. SMbiosdate is MM/DD/YY so that would make it 09/09/11.

 

In a perfect world you would Google MacMini5,3 DMI and follow links to Linux bug report sites to verify your smbios.plist.

 

But I did that, also searched on the older June boot ROM string (MM51.88Z.0075.B00.1106271442) and I couldn't find DMI data for any of the MacMini5.x models. The best I could find was a Red Hat boot log but there was no DMI info in it.

Share this post


Link to post
Share on other sites
Anybody have a 2011 Mac Mini Server Smbios? I have a ASUS P8Z68-V PRO, Core i7 2600K and GeForce GTX 560 Ti, and I read that for Z68 motherboards the MacMini5,3 Smbios work very well. The problem is that I only found one smbios.plist with this, and I don't know if it's correct. Here it's the one I'm using.

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SMbiosvendor</key>
<string>Apple Inc.</string>
<key>SMbiosversion</key>
<string>MM51.88Z.0077.B0A.1109091226</string>
<key>SMboardmanufacturer</key>
<string>Apple Inc.</string>
<key>SMboardproduct</key>
<string>Mac-7BA5B2794B2CDB12</string>
<key>SMfamily</key>
<string>Macmini</string>
<key>SMmanufacter</key>
<string>Apple Inc.</string>
<key>SMmanufacturer</key>
<string>Apple Inc.</string>
<key>SMproductname</key>
<string>Macmini5,3</string>
<key>SMserial</key>
<string>C02GHFCWDKDJ</string>
<key>SMsystemversion</key>
<string>1.0</string>
</dict>
</plist>

 

The last 4 from serial match: http://www.everymac.com/ultimate-mac-looku...h_keywords=DKDJ

And is what makes the diff b/w models :(

 

You can make your own serial number and keep only last 4.

Share this post


Link to post
Share on other sites

Tumbs up for this nice & useful app/idea,

 

Just one suggestion:

You could start the app and already fetch the smbios to display by using the cocoa awakeFromNib method :)

Inside it you could call your fetch callback method.

awakeFromNib gives you the guaranty by design that all your GUI objects are already constructed and initialized before it gets called...

 

Hope that helps.

-Rek

Share this post


Link to post
Share on other sites

Hi guys,

 

Should we add DMI to smbios.plist ? Since the newer processors has DMI instead of FSB what key should we use instead of

 

 

<key>SMexternalclock</key>

<string></string>

 

Which we were using for FSB ?

Share this post


Link to post
Share on other sites

can anyone run this on a macbook air 5,1 (MD223d/a) or (MD223LL/A). I have an asus with hm76 chipset and that macbook air has the same chipset. Thanks

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×