mackerintel Posted November 18, 2008 Share Posted November 18, 2008 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 Chameleonsm.zip 1 Link to comment Share on other sites More sharing options...
roidm Posted November 18, 2008 Share Posted November 18, 2008 this patch contains your previous DSDT patch? gracias amigo Link to comment Share on other sites More sharing options...
mackerintel Posted November 18, 2008 Author Share Posted November 18, 2008 this patch contains your previous DSDT patch? Compiled version: yes diff-file: no Link to comment Share on other sites More sharing options...
roidm Posted November 18, 2008 Share Posted November 18, 2008 Compiled version: yes diff-file: no ok, thanks... I´ll try it... edit: works fine with my Asus P5W-DH C2D-E6750 ....congrats 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 Link to comment Share on other sites More sharing options...
THe KiNG Posted November 19, 2008 Share Posted November 19, 2008 this patch contains your previous DSDT patch? gracias amigo 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 Link to comment Share on other sites More sharing options...
Slice Posted November 19, 2008 Share Posted November 19, 2008 Please look here http://forum.insanelymac.com/index.php?sho...20&start=21 it appears after DSDT patch with chameleon. I am not alone with this bug. Any ideas? Link to comment Share on other sites More sharing options...
mackerintel Posted November 19, 2008 Author Share Posted November 19, 2008 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 Please look herehttp://forum.insanelymac.com/index.php?sho...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 Link to comment Share on other sites More sharing options...
Slice Posted November 19, 2008 Share Posted November 19, 2008 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 dsdt_fixed.txt Link to comment Share on other sites More sharing options...
mackerintel Posted November 19, 2008 Author Share Posted November 19, 2008 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. Link to comment Share on other sites More sharing options...
BlackCH Posted November 19, 2008 Share Posted November 19, 2008 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... Link to comment Share on other sites More sharing options...
mackerintel Posted November 19, 2008 Author Share Posted November 19, 2008 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] Link to comment Share on other sites More sharing options...
Slice Posted November 19, 2008 Share Posted November 19, 2008 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... Link to comment Share on other sites More sharing options...
mackerintel Posted November 19, 2008 Author Share Posted November 19, 2008 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? Link to comment Share on other sites More sharing options...
robertoSTUDIOS Posted November 19, 2008 Share Posted November 19, 2008 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! Link to comment Share on other sites More sharing options...
mackerintel Posted November 19, 2008 Author Share Posted November 19, 2008 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. Link to comment Share on other sites More sharing options...
hoyanf Posted November 20, 2008 Share Posted November 20, 2008 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 Link to comment Share on other sites More sharing options...
Superhai Posted November 20, 2008 Share Posted November 20, 2008 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. Link to comment Share on other sites More sharing options...
Slice Posted November 20, 2008 Share Posted November 20, 2008 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. Link to comment Share on other sites More sharing options...
milanca Posted November 20, 2008 Share Posted November 20, 2008 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. Link to comment Share on other sites More sharing options...
Slice Posted November 20, 2008 Share Posted November 20, 2008 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. Link to comment Share on other sites More sharing options...
mackerintel Posted November 20, 2008 Author Share Posted November 20, 2008 Next attempt <key>SMexternalclock</key> <string>133</string> My bus speed must be 200. Then why do you set your SMexternalclock to 133? Link to comment Share on other sites More sharing options...
roidm Posted November 20, 2008 Share Posted November 20, 2008 i´m using this info <key>Graphics Mode</key> <string>1680x1050x32</string> <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string></string> <key>SMbiosversion</key> <string>MP31.88Z.00C1.B00.080209154</string> <key>SMmanufacter</key> <string>Apple Inc.</string> <key>SMmemmanufacter</key> <string>0x80CE</string> <key>SMmempart</key> <string>0x0000FFFF</string> <key>SMmemserial</key> <string>0x48092D503537345336304350362D09352020</string> <key>SMmemspeed</key> <string>800</string> <key>SMmemtype</key> <string>19</string> <key>SMproductname</key> <string>MacPro3,1</string> <key>SMserial</key> <string>W88261E7YP4</string> <key>SMsystemversion</key> <string>1.0</string> <key>Timeout</key> <string>5</string> Link to comment Share on other sites More sharing options...
mackerintel Posted November 20, 2008 Author Share Posted November 20, 2008 i´m using this info <key>SMmemmanufacter</key> <string>0x80CE</string> <key>SMmempart</key> <string>0x0000FFFF</string> <key>SMmemserial</key> <string>0x48092D503537345336304350362D09352020</string> SMmemmanufacter. SMmempart and SMmemserial are strings. If I have some free time I'll look which values macbook uses. Update: data from macbook's ioreg found on the net: <key>SMbiosversion</key> <string>MB41.88Z.00C1.B00.0802091535</string> <key>SMmanufacter</key> <string>Apple Inc.</string> <key>SMproductname</key> <string>MacBook4,1</string> <key>SMsystemversion</key> <string>1.0</string> <key>SMserial</key> <string>W8813MMN0P2</string> <key>SMexternalclock</key> <string>200</string> <key>SMmaximalclock</key> <string>2400</string> <key>SMmemmanufacter_1</key> <string>0xAD00000000000000</string> <key>SMmemserial_1</key> <string>0x00001020</string> <key>SMmemtype_1</key> <string>19</string> <key>SMmemspeed_1</key> <string>667</string> <key>SMmemdevloc_1</key> <string>DIMM0</string> <key>SMmembankloc_1</key> <string>BANK 0</string> <key>SMmempart_1</key> <string>0x48594D503131325336344350362D59352020</string> <key>SMmemmanufacter_2</key> <string>0xAD00000000000000</string> <key>SMmemserial_2</key> <string>0x00003021</string> <key>SMmemtype_2</key> <string>19</string> <key>SMmemspeed_2</key> <string>667</string> <key>SMmemdevloc_2</key> <string>DIMM1</string> <key>SMmembankloc_2</key> <string>BANK 1</string> <key>SMmempart_2</key> <string>0x48594D503131325336344350362D59352020</string> Here is complete dmidecode of macmini: http://www.kernel.org/pub/linux/kernel/peo...ni1_1-dmidecode P.S. If I have some type I'll post vanilla AppleSMBIOS from 10.5.4 Link to comment Share on other sites More sharing options...
Slice Posted November 20, 2008 Share Posted November 20, 2008 Then why do you set your SMexternalclock to 133? Ir is my mistake. Corrected. I have new effect | +-o AppleEFIRuntime <class AppleEFIRuntime, registered, matched, active, busy 0, retain 7> | | { | | "IOProviderClass" = "AppleACPIPlatformExpert" | | "IOMatchCategory" = "AppleEFIRuntime" | | "IOProbeScore" = 0x0 | | "IOClass" = "AppleEFIRuntime" | | "CFBundleIdentifier" = "com.apple.driver.AppleEFIRuntime" | | "IOResourceMatch" = "ACPI" | | } | | | +-o AppleEFINVRAM <class AppleEFINVRAM, registered, matched, active, busy 0, retain 6> | { | "platform-uuid" = <00000000000010008000001d09590ee9> | "SystemAudioVolume" = <40> As never before :censored2: Link to comment Share on other sites More sharing options...
Slice Posted November 21, 2008 Share Posted November 21, 2008 I am sorry about vanilla SMBIOS. Newest version is 1.0.14. But new observation: with version 1.0.9 I have some info about memory with version 1.0.14 I have no any RAM info with the same Boot.plist. I can inject custom values but I want to correct AppleSMBIOS for automatic RAM detection. Is it possible? Link to comment Share on other sites More sharing options...
Recommended Posts