Jump to content

Chameleon with SMBIOS patching


  • Please log in to reply
137 replies to this topic

#1
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts
Hello all. Despite not having much free time I could held myself off coding and wrote an SMBIOS patching for Chameleon. As usual compiled version + patch. Thanks superhai for pointing me which values have to be changed in SMBIOS. This work is really fresh. I didn't test it much yet. After installing it you need to specify the SMBIOS values in com.apple.Boot.plist. Original message by superhai. In square brackets - the names of variables in com.apple.Boot.plist

There are certain things that are more important than others. But the values I change in SMBIOSResolver are the following that smbios uses:

Table Type 0 (bios):
version (MBP41.88Z.00C1.B00.0802091544) [SMbiosversion]

Table Type 1 (system):
manufacturer (Apple Inc.) [SMmanufacter]
productname (MacBookPro4,1) [SMproductname]
version (1.0) [SMsystemversion]
serial-number (SECRETSERIAL) [SMserial]

Table Type 4 (cpu):
external-clock [SMexternalclock]
maximum-clock [SMmaximalclock]

Table Type 17 (memory):
manufacturer (Unknown) [SMmemmanufacter]
memorytype [SMmemtype]
memoryspeed [SMmemspeed]
serialnumber (Unknown) [SMmemserial]
partnumber (Unknown) [SMmempart]
devicelocator [SMmemdevloc]
banklocator [SMmembankloc]

You should check if they contain a sane value, and if not update with a dummy value (what I have in parentesis is what I used). Except clock and memoryspeed, which should be calculated or provided from some kind of input file, for memory you could also make routine to read spd data via smbus, but i dont think that is feasible due to space. Serialnumbers could be made more appleish or just provide whatever is there.


Depending on your BIOS you may not need to modify all theese parameters. If there are multiple tables of the same type then modifications will be applied to all of them. If you want to modify only first table then suffix "_1" to parameter name, "_2" for second, ...
Eg SMmemserial changes serials of all memory banks
SMmemserial_1 changes the serial of first bank
SMmemserial_2 changes the serial of second bank

Here is extract from my com.apple.Boot.plist using superhai's values:
<key>SMbiosversion</key>
		 <string>MBP41.88Z.00C1.B00.080209154</string>
		 <key>SMmanufacter</key>
		 <string>Apple Inc.</string>
		 <key>SMproductname</key>
		 <string>MacBookPro4,1</string>
		 <key>SMsystemversion</key>
		 <string>1.0</string>
		 <key>SMserial</key>
		 <string>SECRETSERIAL</string>

P.S. yeah I know this thread should belong to XLabs but I have no right to create threads there. Could anybody move it?
Thanks for Korrupted for moving thread

Attached Files



#2
roidm

roidm

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,057 posts
  • Gender:Male
  • Location:Spain
this patch contains your previous DSDT patch?

gracias amigo :(

#3
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

this patch contains your previous DSDT patch?


Compiled version: yes
diff-file: no

#4
roidm

roidm

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,057 posts
  • Gender:Male
  • Location:Spain

Compiled version: yes
diff-file: no


ok, thanks... I´ll try it...

edit:

works fine with my Asus P5W-DH C2D-E6750 ....congrats :(



Posted Image
Posted Image
p5w-dh-deluxe-de-roisoft:~ roisoft$ sysctl hwhw.ncpu: 2hw.byteorder: 1234hw.memsize: 2147483648hw.activecpu: 2hw.optional.x86_64: 1hw.optional.sse4_2: 0hw.optional.sse4_1: 0hw.optional.supplementalsse3: 1hw.optional.sse3: 1hw.optional.sse2: 1hw.optional.sse: 1hw.optional.mmx: 1hw.optional.floatingpoint: 1hw.packages: 1hw.tbfrequency: 1000000000hw.l2cachesize: 4194304hw.l1dcachesize: 32768hw.l1icachesize: 32768hw.cachelinesize: 64hw.cpufrequency_max: 2664000000hw.cpufrequency_min: 1998000000hw.cpufrequency: 1998000000hw.busfrequency_max: 1332000000hw.busfrequency_min: 1332000000hw.busfrequency: 1332000000hw.pagesize: 4096hw.cachesize: 2147483648 32768 4194304 0 0 0 0 0 0 0hw.cacheconfig: 2 1 2 0 0 0 0 0 0 0hw.cpufamily: 1114597871hw.cpu64bit_capable: 1hw.cpusubtype: 4hw.cputype: 7hw.logicalcpu_max: 2hw.logicalcpu: 2hw.physicalcpu_max: 2hw.physicalcpu: 2hw.machine = i386hw.model = MacPro3,1hw.ncpu = 2hw.byteorder = 1234hw.physmem = 2147483648hw.usermem = 2013290496hw.pagesize = 4096hw.epoch = 0hw.vectorunit = 1hw.busfrequency = 1332000000hw.cpufrequency = 1998000000hw.cachelinesize = 64hw.l1icachesize = 32768hw.l1dcachesize = 32768hw.l2settings = 1hw.l2cachesize = 4194304hw.tbfrequency = 1000000000hw.memsize = 2147483648hw.availcpu = 2


#5
THe KiNG

THe KiNG

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 642 posts

this patch contains your previous DSDT patch?

gracias amigo :D



Compiled version: yes
diff-file: no

AFAIK it dosen't work for me ;)
Refuse to load my modded DSDT, it dosent like my audio stuff injection then it freeze, freeze also on -s

#6
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,532 posts
  • Gender:Male
  • Location:Moscow
Please look here
http://forum.insanel...o...20&start=21
it appears after DSDT patch with chameleon.
I am not alone with this bug.
Any ideas?

#7
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

AFAIK it dosen't work for me :dev:
Refuse to load my modded DSDT, it dosent like my audio stuff injection then it freeze, freeze also on -s



Please look here
http://forum.insanel...o...20&start=21
it appears after DSDT patch with chameleon.
I am not alone with this bug.
Any ideas?

Does problem also appears if both features (SMBIOS & DSDT) are activated but don't really do anything (smbios version, but no smbios parameters in Boot.plist and unmodified DSDT dump present in DSDT.aml). How exactly was DSDT patched? I think that information in SMBIOS and DSDT is incomplete or contradictory.
@ all: if you have suggestion of what other fields of SMBIOS would be useful to be able to modify post it here

#8
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,532 posts
  • Gender:Male
  • Location:Moscow
I tried.
This is my Boot.plist
<dict>
	<key>Kernel</key>
	<string>mach_kernel</string>
	<key>Kernel Flags</key>
	<string></string>
	<key>Timeout</key>
	<string>5</string>
			<key>SMbiosversion</key>
		 <string>MBP41.88Z.00C1.B03.0802271651</string>
		 <key>SMmanufacter</key>
		 <string>Apple Inc.</string>
		 <key>SMproductname</key>
		 <string>MacBookPro4,1</string>
		 <key>SMsystemversion</key>
		 <string>1.0.14</string>
		 <key>SMserial</key>
		 <string>W88261E7YP4</string>
	<key>device-properties</key>
	<string></string>
</dict>
My pictures and dsdt

Attached Files



#9
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

I tried.
This is my Boot.plist
My pictures and dsdt

I have currently no time to look at you DSDT. However I would suggest using vanilla AppleSMBIOS with SMBIOS-patching chameleon. Also looking at sysctl hw may give an answer.

#10
BlackCH

BlackCH

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,610 posts
  • Gender:Male
  • Location:BCN
It works here; DSDT override and SMBIOS features.
The only problem is that vanilla SMBIOS doesnt pick cpu/bus speeds correctly; so I still have to add a SMBIOS injector (AppleSMBIOSEFI.kext) to get all the info right. So Name and Idetifiers comes from chameleon and the rest are provided by the kext...

Attached Files



#11
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

It works here; DSDT override and SMBIOS features.
The only problem is that vanilla SMBIOS doesnt pick cpu/bus speeds correctly; so I still have to add a SMBIOS injector (AppleSMBIOSEFI.kext) to get all the info right. So Name and Idetifiers comes from chameleon and the rest are provided by the kext...

You have to set theese values:

Table Type 4 (cpu):
external-clock [SMexternalclock]
maximum-clock [SMmaximalclock]



#12
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,532 posts
  • Gender:Male
  • Location:Moscow

I have currently no time to look at you DSDT. However I would suggest using vanilla AppleSMBIOS with SMBIOS-patching chameleon. Also looking at sysctl hw may give an answer.

Yes, I have vanilla SMBIOS without any SMBIOSEFI additions.
Looking for other informations...

#13
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

Yes, I have vanilla SMBIOS without any SMBIOSEFI additions.
Looking for other informations...

Strange. Because serial in properties should be the same as in Boot.plist. Are you sure that you have installed Chameleon correctly?

Have you set your SMmaximalclock and SMexternalclock?
Could you post your ioreg -lw0?

#14
robertoSTUDIOS

robertoSTUDIOS

    InsanelyMac Protégé

  • Members
  • PipPip
  • 76 posts
  • Gender:Male
  • Location:Hungary
Hi!

Grat stuff!
Working serial, modell, etc... but what the format is SMExternalclock and SMMaxclock?
And SMmaxclock is my processor clock without multiplier?
I have Intel CoreDuo 2.17 Memory speed is 667.
How to set this keys?

Help Please!

#15
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

Hi!

Grat stuff!
Working serial, modell, etc... but what the format is SMExternalclock and SMMaxclock?
And SMmaxclock is my processor clock without multiplier?
I have Intel CoreDuo 2.17 Memory speed is 667.
How to set this keys?

Help Please!

Your spelling is incorrect
Everything is in Mhz.
Here the description of the fields in SMBIOS specifications:

Max Speed: Maximum processor speed (in MHz) supported by the
system for this processor socket. 0E9h for a 233MHz
processor. If the value is unknown, the field is set to 0.
Note: This field identifies a capability for the system,
not the processor itself.
External Clock: External Clock Frequency, in MHz. If the value is
unknown, the field is set to 0.

E.g. For Dual-Core 1.86Ghz at 133 FSB you should put:
<key>SMexternalclock</key>
<string>133</string>
<key>SMmaximalclock</key>
<string>1866</string>
to your com.apple.Boot.plist
I haven't tested this myself since theese values are correctly supplied by BIOS on my system.

#16
hoyanf

hoyanf

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts

After installing it you need to specify the SMBIOS values in com.apple.Boot.plist.


How do you install this ChameleonSM ??

Can't seem to find it anywhere in this discussion thread.


Regards,
hoyanf

#17
Superhai

Superhai

    InsanelyMac Legend

  • Retired Developers
  • 1,425 posts

Yes, I have vanilla SMBIOS without any SMBIOSEFI additions.
Looking for other informations...


CK157KMHK5B serial number is from pcefi8 or some other netkas made iirc.

#18
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,532 posts
  • Gender:Male
  • Location:Moscow
Next attempt
<key>SMexternalclock</key>
 <string>133</string>
 <key>SMmaximalclock</key>
 <string>2400</string>

How can I know that my AppleSMBIOS v1.0.14 is true vanilla?

EDITED: My problem is resolved. It is a bug of IntelEnhancedSpeedStep v1.4.0.
After replacing it by Superhai driver processor speed is OK.My bus speed must be 200.

Attached Files



#19
milanca

milanca

    InsanelyMac Protégé

  • Members
  • Pip
  • 34 posts
Working great here as well, on Q6600, all vanilla kexts with fake plists.

Thanks.

How do you install this ChameleonSM ??
Can't seem to find it anywhere in this discussion thread.


its assumed that we already know that. If you have chameleon installed just replace 'boot' file in your leopard root partition with this new one renaming it to 'boot'. If not, install chameleon first (from the installer, the best way) then replace boot file.

#20
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,532 posts
  • Gender:Male
  • Location:Moscow
I build AppleSMBIOS from latest Apple's sources. It appears to be v1.0.9! So all other versions seems to be hacked.
With this Chameleon by mackerintel "my" version works without problem. But some other key needed.

Attached Files







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   Web hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy