Jump to content

Getting Snow Leopard to recognize your CPU


  • Please log in to reply
226 replies to this topic

#121
ccg

ccg

    InsanelyMac Protégé

  • Members
  • Pip
  • 47 posts

Hmm, tried to add SMcputype manually - still doesn't work :)
I just had a quick look at the code: I'm afraid chameleon has difficulties to detect my number of cores. I remember when I installed chameleon it reverted back to MacPro although it should have set the defaults for iMac (regarding to this: )

switch (Platform.CPU.NoCores)
		{
			case 1: sm_defaults=sm_macmini_defaults; break;
			case 2: sm_defaults=sm_imac_defaults; break;
		   default: sm_defaults=sm_macpro_defaults; break;
		}


Hi Eberts,
I have been looking at the AppleSMBIOS.kext for SL code today. What I have found is that the code that fetches the cputype from the SMBIOS tables is not working for the Type 131 and 132 tables. The code tries to find the tables and then fetch the contents. However, the code can't find the table. Therefore the cputype is returned as 0x0000.

If you are interested take a look in the AppleSMBIOS.cpp code as follows:

// Fetch Processor Type from Type 131 structure (optional).

SMB_ANCHOR_RESET(&anchor);
if (findSMBIOSStructure(&anchor, kSMBTypeOemProcessorType,
sizeof(SMBOemProcessorType)))
{
const SMBOemProcessorType * processorType =
(const SMBOemProcessorType *) anchor.header;

cpuType = processorType->ProcessorType;
DEBUG_LOG("SMBIOS: processor type = 0x%04x\n", cpuType);
}

This is all I have been able to find out.

The reason that the CPUInjector.kext works, is that it directly injects the cputype into the IO registry.

Have fun,
ccg

#122
eberts

eberts

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 138 posts
Thanks a lot ccg! After looking at smbios_patcher.c I remebered that I set "SMBIOSdefaults" to "No" in com.apple.Boot.plist.
After removing the entry it recognises my cpu type again. That's brilliant ^_^

Thx again for the hint!

#123
DigitalDJ

DigitalDJ

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts

The reason that the CPUInjector.kext works, is that it directly injects the cputype into the IO registry.

Have fun,
ccg


The bootloader injects these 131 and 132 tables ;)

#124
Pandar

Pandar

    InsanelyMac Protégé

  • Members
  • Pip
  • 40 posts
Hi

I'd definitely like to give your modified Chameleon a try, as their are a couple of installers in my setup that get stymied by the "unknown" processor syndrome.

Unfortunately, I'm unaware of how to do a manual install of Chameleon. Can you give me a run down on the steps needed to install your modified Chameleon?

Thanks

pandar

#125
THe KiNG

THe KiNG

    InsanelyMac Legend

  • Gurus
  • 674 posts
  • Gender:Male

The bootloader injects these 131 and 132 tables :)

Any idea how to add/fix Type 2 table?
Seems our table is not correct or is diff then apple one:

void AppleSMBIOS::processSMBIOSStructureType2(
	const SMBBaseBoard * baseBoard,
	SMBPackedStrings * strings )
{
	if (baseBoard->header.length < sizeof(SMBBaseBoard))
	{
		kprintf("AppleSMBIOS: invalid type 2 record size: %d, expected %ld\n",
				baseBoard->header.length, sizeof(SMBBaseBoard)+1);
		return;
	}

	// If this type 2 record is for the processor and memory board then it is
	// a riser card. Grab the serial number and publish it to the registry.
	if ((baseBoard->boardType & kSMBBaseBoardProcessorMemoryModule) == kSMBBaseBoardProcessorMemoryModule)
	{
		UInt8 length = 0;
		strings->stringAtIndex(baseBoard->serialNumber, &length);
		if (length == 0)
			IOLog("AppleSMBIOS: processor/memory board serial number is empty\n");
		else
			strings->setStringProperty(fRoot, "processor-memory-board-serial-number", baseBoard->serialNumber);
	}
}

Notice "processor-memory-board-serial-number" I've looked on mine and is Base Board(or Module) Information (Type 2):

Posted Image

This is apple one:

Handle 0x0039, DMI type 2, 16 bytes
Base Board Information
	Manufacturer: Apple Inc.
	Product Name: Mac-F221BEC8
	Version: Not Specified
	Serial Number: J590802LC4ACB	 
	Asset Tag: 0
	Features:
		Board is a hosting board
		Board is removable
		Board is replaceable
	Location In Chassis: Part Component
	Chassis Handle: 0x003A
	Type: Processor+Memory Module
	Contained Object Handles: 0

Any idea how to fix this to get: Serial Number (processor tray)?

#126
Pandar

Pandar

    InsanelyMac Protégé

  • Members
  • Pip
  • 40 posts
Hi

Boy, do I want to fix this issue. My problem is that I have an otherwise clean installation. I had so much difficulty getting that installation, that I don't want to f*** it up. Can you tell me what file to change without using a new bootloader? I have a q6600. There are a few apps that seem to react negatively to the unknown processor problem.

Sure would appreciate any help.

Thanks

Pandar

#127
ccg

ccg

    InsanelyMac Protégé

  • Members
  • Pip
  • 47 posts
To everyone,

In order for the cpu detection to function using the modified Chameleon RC3 "boot" file, the following key must be removed from the "com.apple.Boot.plist" file in /Extra:

<key>SMBIOSdefaults</key>
<string>No</string>

Enjoy,
ccg

#128
rednous

rednous

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 345 posts
  • Gender:Male
  • Location:Galaxy: Milky Way
  • Interests:graphic design, mac, progressive and house
thanx, Digital DJ :(, nice job you've done

your modified boot works fine for me

#129
kitmac

kitmac

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 209 posts
  • Gender:Male
Boot file works great.... Reporting intel core 2 duo.
The kext reported intel xenon for some reason.... :)
One question:
Y does Leopard report my overclock correctly in system profiler / about this mac / CPU-X but Snow doesn't????

#130
MrKim

MrKim

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts
Hi,

Kext works superbly on my SL 10.6.1. Thank you.

Despite this being in SL section, I went and tried to use it on Leopard because I wanted this function in Leopard and it didn't work at all. (once in /E/E and once in /S/L/E)

I was wondering if you can make a version for leopard....?


I'd use SL if it was stable.. but it's giving me nothing but troubles even though installation was painless.

#131
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male

The bootloader injects these 131 and 132 tables :D

Which boot loader? There are many so please be clear about it. After all... not everyone is using Chameleon RC3. I can't because of bugs in it.

The question now is: do I need a boot loader which injects SMBIOS tables, or will your kext take care of it?

#132
DigitalDJ

DigitalDJ

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts

Boot file works great.... Reporting intel core 2 duo.
The kext reported intel xenon for some reason.... :D
One question:
Y does Leopard report my overclock correctly in system profiler / about this mac / CPU-X but Snow doesn't????


You didn't edit the Info.plist in the injector to change your CPU type to Core2 Duo (the default is Xeon). The bootloader auto detected 2 cores and set Core2 Duo.

I was wondering if you can make a version for leopard....?


I don't have Leopard installed. You can use the modified Chameleon RC3 that I provided with Leopard.


Which boot loader? There are many so please be clear about it. After all... not everyone is using Chameleon RC3. I can't because of bugs in it.


I think I'm pretty clear about it if you read the topic. It says a "modified Chameleon RC3 with netkas' PC_EFI 10.3" right under the bold text. If for some weird reason you can't use Chameleon, use the kext. Correct me if I'm wrong but there aren't that many bootloaders. Chameleon, PC_EFI (which practically is Chameleon) and BootThink. 2 of which are open source, and essentially the same...so I wonder which I modified :P

#133
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male

I think I'm pretty clear about it if you read the topic. It says a "modified Chameleon RC3 with netkas' PC_EFI 10.3" right under the bold text.

Sorry. Just woke up. Missed it. I used the kext and it works.

If for some weird reason you can't use Chameleon, use the kext.

Weird reasons? Well, if it only recognized all 1TB SAMSUNG drives properly... which I tell it doesn't.

Correct me if I'm wrong but there aren't that many bootloaders. Chameleon, PC_EFI (which practically is Chameleon) and BootThink. 2 of which are open source, and essentially the same...so I wonder which I modified :D

I meant many as in many different version, not types – there are many different version of Chameleon :P

Back to hacking the TSSTcorp drive fix. Later!

p.s. I forgot to say: "Good Job". Here ya go. Good Job!

#134
DigitalDJ

DigitalDJ

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts

for those who are as anal as I am about the system profiler and If you are still not satisfied, you can follow AquaMac's guide on how to modify the systemprofiler:

http://www.s15515867....rofilermo.html

All you need to add this line to override the Xeon processor name displayed in system profiler. For my case, it would be:

"Quad-Core Intel Xeon" = "Intel Core 2 Quad Q9550";

Repair permission and then logout/reboot


Macs don't report model numbers. So you being "anal" about this would in fact be rather contradictory. But yeah, completely pointless edit because that model will only show up in System Profiler, no where else in the operating system.

#135
pitap

pitap

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 146 posts
EDIT: Opps... deleted my original post with the attempt of editing the post....

For those who are as anal as I am about the system profiler and If you are still not satisfied with "Quad-Core Intel Xeon", you can follow AquaMac's guide on how to modify the systemprofiler:

http://www.s15515867....rofilermo.html

All you need to add this line to override the Xeon processor name displayed in system profiler. For my case, it would be:

"Quad-Core Intel Xeon" = "Intel Core 2 Quad Q9550";

Repair permission and then logout/reboot

Macs don't report model numbers. So you being "anal" about this would in fact be rather contradictory. But yeah, completely pointless edit because that model will only show up in System Profiler, no where else in the operating system.


Ya, seriously, it was just for my own sicko obsession of making things "display" "correctly" :P

Attached Files



#136
THe KiNG

THe KiNG

    InsanelyMac Legend

  • Gurus
  • 674 posts
  • Gender:Male

Weird reasons? Well, if it only recognized all 1TB SAMSUNG drives properly... which I tell it doesn't.

I really don't get why you are so "weird" sometimes, do you think chameleon dev's have time and can fix all PC industry {censored}?
Spamming and complaining on all threads you can about how bad is chameleon you think will get your bug fixed, or ignored?
Instead that why not acting like a normal guy(like DigitalDJ and others) fix it by yourself and post the diff?
That is how it should be on open source project, don't expect from others to fix your mess, sometimes you may be lucky some times not.
Not to mention, from what I understand you didn't even bother to reformat the drive and see if the problem persist...

#137
sylvester328

sylvester328

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts
update the boot file and get it working for my Q6600 immediately, nice.. BUT it broke the video autodetection for my nvidia 8400GS so only one monitor working (I have dual display)! It also broke the DSDT hack of changing ICH10 to ESB2 SATA controller (eliminate the need of IOAHCIBlockStorageInjector.kext for orange icon). Nothing under SATA in the SystemProfiler...

Restore back to original boot file, back to normal...

[Edit] compile chameleon myself with only the CPU injector code change. work ok for me now.

#138
yeehaa

yeehaa

    InsanelyMac Protégé

  • Members
  • PipPip
  • 81 posts
  • Gender:Male
  • Location:FL, USA
@DijitalDJ: would you mind updating the chameleon source over there on their project page? or how is that done? i've no clue how these projects work :pirate2:

otherwise everytime chameleon gets updated the patch will need to be re-applied right? just a suggestion

#139
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,050 posts
  • Gender:Male
  • Location:UK

@DijitalDJ: would you mind updating the chameleon source over there on their project page? or how is that done? i've no clue how these projects work :D

otherwise everytime chameleon gets updated the patch will need to be re-applied right? just a suggestion

He has and Zef has said that the changes are committed. :)

#140
EGOvoruhk

EGOvoruhk

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 259 posts
Do you think this is something that can be patched into Boot Think as well? I prefer it over Chameleon

http://www.insanelym...howtopic=168500





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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