Jump to content

fluid | fixed

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

Quote

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
roisoft

roisoft

    InsanelyMac Legend

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

gracias amigo :(

#3
mackerintel

mackerintel

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 128 posts

View Postroisoft, on Nov 18 2008, 08:41 PM, said:

this patch contains your previous DSDT patch?

Compiled version: yes
diff-file: no

#4
roisoft

roisoft

    InsanelyMac Legend

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

View Postmackerintel, on Nov 18 2008, 08:44 PM, said:

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 hw
hw.ncpu: 2
hw.byteorder: 1234
hw.memsize: 2147483648
hw.activecpu: 2
hw.optional.x86_64: 1
hw.optional.sse4_2: 0
hw.optional.sse4_1: 0
hw.optional.supplementalsse3: 1
hw.optional.sse3: 1
hw.optional.sse2: 1
hw.optional.sse: 1
hw.optional.mmx: 1
hw.optional.floatingpoint: 1
hw.packages: 1
hw.tbfrequency: 1000000000
hw.l2cachesize: 4194304
hw.l1dcachesize: 32768
hw.l1icachesize: 32768
hw.cachelinesize: 64
hw.cpufrequency_max: 2664000000
hw.cpufrequency_min: 1998000000
hw.cpufrequency: 1998000000
hw.busfrequency_max: 1332000000
hw.busfrequency_min: 1332000000
hw.busfrequency: 1332000000
hw.pagesize: 4096
hw.cachesize: 2147483648 32768 4194304 0 0 0 0 0 0 0
hw.cacheconfig: 2 1 2 0 0 0 0 0 0 0
hw.cpufamily: 1114597871
hw.cpu64bit_capable: 1
hw.cpusubtype: 4
hw.cputype: 7
hw.logicalcpu_max: 2
hw.logicalcpu: 2
hw.physicalcpu_max: 2
hw.physicalcpu: 2
hw.machine = i386
hw.model = MacPro3,1
hw.ncpu = 2
hw.byteorder = 1234
hw.physmem = 2147483648
hw.usermem = 2013290496
hw.pagesize = 4096
hw.epoch = 0
hw.vectorunit = 1
hw.busfrequency = 1332000000
hw.cpufrequency = 1998000000
hw.cachelinesize = 64
hw.l1icachesize = 32768
hw.l1dcachesize = 32768
hw.l2settings = 1
hw.l2cachesize = 4194304
hw.tbfrequency = 1000000000
hw.memsize = 2147483648
hw.availcpu = 2




#5
THe KiNG

THe KiNG

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 527 posts

View Postroisoft, on Nov 18 2008, 09:41 PM, said:

this patch contains your previous DSDT patch?

gracias amigo :D


View Postmackerintel, on Nov 18 2008, 09:44 PM, said:

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

    InsanelyMac Deity

  • Local Moderators
  • 1,827 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

View PostTHe KiNG, on Nov 19 2008, 09:43 AM, said:

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


View PostSlice, on Nov 19 2008, 09:49 AM, said:

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

    InsanelyMac Deity

  • Local Moderators
  • 1,827 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

View PostSlice, on Nov 19 2008, 10:54 AM, said:

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,570 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

View PostBlackCH, on Nov 19 2008, 04:20 PM, said:

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:

Quote

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


#12
Slice

Slice

    InsanelyMac Deity

  • Local Moderators
  • 1,827 posts
  • Gender:Male
  • Location:Moscow

View Postmackerintel, on Nov 19 2008, 05:01 PM, said:

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

View PostSlice, on Nov 19 2008, 05:31 PM, said:

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
  • 72 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

View PostrobertoSTUDIOS, on Nov 19 2008, 06:53 PM, said:

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:

Quote

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

View Postmackerintel, on Nov 19 2008, 03:25 AM, said:

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

View PostSlice, on Nov 19 2008, 05:31 PM, said:

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

    InsanelyMac Deity

  • Local Moderators
  • 1,827 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.

Quote

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

    InsanelyMac Deity

  • Local Moderators
  • 1,827 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

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