Jump to content

D945GCLF2 Snow Leopard

248 posts in this topic

Recommended Posts

System components:

  • D945GCLF2D Mainboard

    Intel Corporation 82945G/GZ Integrated Graphics Controller [8086:2772] (rev 02) (prog-if 00 [VGA controller])

    Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 02)

    Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8]

    Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01) (prog-if 8a [Master SecP PriP])

    Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller [8086:27c0] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])

  • SATA 250GB SAMSUNG SP2504C (only one partition GUID)
  • ASUS VK222 connected through VGA, 1680x1050@60Hz
  • USB keyboard and mouse


BIOS Settings:

1. Main:

  • Intel Hyper-Threading Technology <Disable> 1

2. Advanced - Boot Configuration:

  • Numlock <On>
  • System Fan Control <Disable>
  • System Fan Speed <50%>
  • Max CPUID Value Limit <Disable>
  • Display Setup Prompt <On>

3. Advanced - Peripheral Configuration:

  • Serial Port <Disable>
  • Parallel Port <Disable>
  • Audio <Enable>
  • High Definition Front Panel Audio <Enable>
  • Legacy Front Panel Audio <Enable>
  • On-board LAN <Enable>

4. Advanced - Drive Configuration:

  • Use Automatic Mode <Enable> 2
  • ATA/IDE Mode <Native>
  • S.M.A.R.T. <Enable>
  • Hard Disk Pre-Relay <0>

5. Advanced - Event Log:

  • Clear Event Log <Disable>
  • Event Logging <Disable>
  • Mark Events As Read <Disable>

6. Advanced - Video Configuration:

  • DVMT Mode <DVMT>
  • IGT DVMT Memory <128 MB>
  • IGT Aperture Size <256 MB>
  • Primary Video Adaptor <Auto>

7. Advanced - Memory Configuration:

  • PCI Latency Timer <32>
  • HPET <Enable> 3

8. Advanced - Management Configuration:

  • ASF Support <Enable>

9. Advanced - USB Configuration:

  • USB Ports <Enable>
  • USB 2.0 <Enable>
  • USB Legacy <Enable>

10. Security:

  • Expansion Card Text <Disable>
  • XD Technology <Enable>

11. Power:

  • After Power Failure <Stay Off>
  • Wake on LAN from S5 <Power On>
  • ACPI Suspend State <S3 State>
  • Wake on LAN from S5 <Disable>
  • Wake on LAN from S5 <Keyboard 1>

11. Boot - configure by yourself


Known issues with BIOS settings

1. "Should have 2 cores, but only found 1":

try to disable HyperThreading in BIOS. Also NullCPUPowerManagement.kext can help you.

2. Kernel panic with "... IOATAFamily ..." & "Secondary IDE channel is disabled":

a. you can set Use Automatic Mode to <Disable> under Drive Configuration section in BIOS, then Primary Channel option will be enabled and you should set it to <Disable>. Warning! Disabling primary channel in BIOS will disable any device attached to IDE port - use it only if you have SATA optical drive or you are installing from USB.

b. also you can place DSDT.aml to the root of your drive and it will overcome that error.

3. "HPET device is not available":

set HPET to <Enable> in Chipset Configuration

4. "...IOACPIFamily..." & "...IOPCIFamily..." kernel panic:

your DSDT is probably broken - I had an issue with Store(Package (0xA7) { ... } when only 3 child nodes were inserted, therefore Package(0x06) must be written. Funny, but same DSDT was working until I updated my system to 10.6.2.


Where to start

Well, I know that everyone loves retail, but be honest - without knowledge of subject (OS X in case) you will never set up retail, so try to install custom distributives for first time. I recommend Mac OS X Snow Leopard Universal by dan1234.

Search for earlier versions with 10.6.0 only, because testing of his latest 10.6.2 build shows some minor errors and you will be forced to apply 10.6.2 update again to get rid of them.

So, you have downloaded and burned iso to single-layer DVD. Start with HyperThreading disabled in BIOS and with USB peripherals, PS/2 is to old for OS X. Now you should boot and right after choosing setup language go to Utilities - Disk Utility. Now you should repartition your hard drive. If you are a newbie - just select hard drive (not partition), go to Partition tab and change Volume Scheme: "1 Partition" with Format: "Mac OS Extended (Journaled)". All data is erased, you know have a clean volume and can move on. Close Disk Utility and follow wizard's steps.

*Under Options... button in Partition tab you can choose GUID (OS X native) or MBR (Windows-compatible, use if you plan to dual-boot) disk types.

Attention! "Customize" your installation before pressing "Install" because system will not boot after reboot. In Customize window you should select NullCPUPowerManagement -or- Disabler (will be removed after applying DSDT), IOATAFamily (again, doesn't really needed if you already have DSDT.aml in root of your hard drive), fakeSMC -or- dsmos (do not ever remove this, replace with newer version instead). There you have it. After reboot you can reach desktop so just drop DSDT.aml in root of your hard drive and update your kexts along with your kernel. All job will be done by DSDT but for restart you should use EvOrestart.kext, VoodooHDA.kext will give you sound, and com.apple.Boot.plist with smbios.plist placed in /Extra will turn your Unidentified PC to MacMini.

If you want HyperThreading - place new kernel (links below) in /, update your system and boot with kernel=your_HT_kernel_name flag.


Things explained

Why do I recommend distributives? I want you to reach OS X desktop as soon as possible. System will not start without DSDT+patched kernel or NullCPUPowerManagement+IOATAFamily. So you install distributive and choose those two extra kexts. After installation you can place your DSDT and move those kexts away and maybe delete them if you know what you're doing. Then you can update kernel, turn HyperThreading in BIOS and install additional kexts (VoodooHDA, EvOreboot).


Why you should not replace your kernel or delete some kexts

Do not replace kernel! Name your kernel as you wish except mach_kernel and place it in /. Why?

Say Apple releases new update 10.6.3 for example. You apply this update which contains a new kernel and it replaces kernel you already have. You reboot your hack and nothing works. But if you have your kernel named my_kernel then you can set


in com.apple.Boot.plist or pass kernel=my_kernel command at boot. Then you boot your kernel even if vanilla mach_kernel updated.

For that reason, it is good to have your kexts in /Extra/Extensions folder. Because /System/Library/Extensions gets updated by Apple from time to time.


What to do if system gives you kernel panic

D945GCLF2 is guaranteed to work with NullCPUPowerManagement, IOATAFamily patches and HyperThreading disabled in BIOS. If you want HyperThreading - get appropriate kernel (do not name it as mach_kernel - read paragraph above). If you want to get rid from NullCPUPowerManagement - place DSDT.aml in / and move NullCPUPowerManagement to /Backup for example. Then if things go wrong you can always boot from DVD and go to Utilities - Terminal. Then you can execute following commands:

cd /Volumes/{your_volume_name_here}
cd Backup
mv NullCPUPowerManagement.kext /Volumes/{your_volume_name_here}/System/Library/Extensions

In that way you can place your kext back where it was.


Useful kexts

I will try to keep links up-to-date but your better follow blogs of authors. I will credit them later.

  1. I highly recommend PC_EFI 10.6 bootloader and fakeSMC.kext by netkas. This stuff gets updated from time to time so you better follow his blog instead of using direct links. Those two things will give your proper boot and decrypting of some "do not ever steal mac operating system" kexts. It is critical to have that installed.
  2. NullCPUPowerManagement.kext, EVOReboot,kext, SleepEnabler.kext & VoodooHDA.kext are available at kexts.com. Keep in mind that not all of those kexts are needed. For example, NullCPUPowerManagement is no longer needed in 10.6.2 because of teateam's kernel and SleepEnabler no longer needed because we got native AppleIntelCPUPowerManagement support and system sleeps fine in 32-bit mode.
  3. Patched 10.6.2 kernel (with Intel Atom support and HyperThreading) is available here.



teateam, prasys, netkas, The KiNG, ugokind, nok6230, modbin, StellaRola



Far from perfect, but many things fixed. Intel Atom doesn't support SpeedStep but I've got one in DSDT - just to evaluate some warnings at boot. Also there is WiFi injected - you may delete that too.

Solution doesn't include 10.6.2 HyperThreading kernel - get it from tea's blog. place kexts to /Extra/Extensions, other files to /Extra.


Link to comment
Share on other sites

hy. I don't know if you read the older but still alive topic about that great motherboard but..


It's 3 days I've been started hacking.


really, I used all the info in that topic, and wrote to ask some info or share some experiences.

now, I tried to stard clean, got dsdt of that mobo using a linux distribution and mod it. Then I achieved the same dsdt as declared in that topic.

Attention: Intel give a bios, the last is dated at the end of july and fix some error at boot detection and at sleep managing, but Intel tell that the bios is THE SAME as the dg945lf motherboard.

then the dg945lf and the dg945lf2 have the same code, dsdt and patches.


The dsdt has only the capability of fixing the famous hpet, rtc, wak errors and inject video card data, nothing more but is very powerful.


so, with NO mods in the s/l/e folder, you can boot with nullcpu, disabler, fakesmc and ata/sata injectors, with voodoohda at verbose boot you read about alc662.


If you don't put openhaltrestart and sleepenabler you don't manage sleep properly.. so if you use them you have sleep in about 1 second, and resume at mouse click


in the end.. now I boot from a MBR partition in a usb verbatim pendrive, 8gb. so this is a 20mb transfer rate pen.. no slow but no fast.. snow boots in 70..75 seconds. I cannot stay in the skin, waiting for the hdd and seeing the boot on it!


I confirm that HyperThreading causes a crash.. so in Leopard NO. why??


the only limit I see is the 533 ram speed. but I like that motherboard.. and you?

Link to comment
Share on other sites

It is not necessary to swap a hard drive. You can always access your filesystem by booting Snow Leopard DVD, then got to Terminal and under cd /Volumes/ you will find your hard drive. The problem is where you will store fixed kexts - I mean you cannot copy them from flash via DVD boot.


As for DSDT, I will try to extract full DSDT with Ubuntu. Currently my DSDT has network (LAN0), sound (HDEF), wake/sleep/power (_WAK, SLPB, PWRB) fixes, but not all of them works. So I want to get full DSDT, patch it and try it on Leopard 10.5.5 with minimum of extra kexts and then move to Snow OS X.


I guess I will post my DSDT in more-less 10 hours :P.

Link to comment
Share on other sites

hdef is only a replace of text.. is not needed

lan0.. but my lan works as is!

pwrb.. I prefer at this time not to use because I like not to choose when I press the button to see the


window but to stop immediately!

my dsdt works fine!

Link to comment
Share on other sites

Hi, I am currently running OSX 10.5.8 on this board D945GCLF2. I have a retail copy of Snow Leopard and would like to ask if one of you can do a more detailed install tutorial for this board PLEASE!!!! I am still quite new to this and some stuff is totally new and confusing like DSDT etc. This would be greatly appreciated as I would really like to try run Snow Leopard as my main OS on this board, hoping for slight speed improvements. I have another hard disk to install Snow Leopard on as well. I have gone through the above information but cannot make sense of how to do this on this board with a new retail copy of SL and a new hard disk.


Thanks for the great help to the members of this board as reading this forum was a great help in getting my original hackintosh with this board running perfectly.


Cheers all.

Link to comment
Share on other sites

Following this thread.


I have tried to get snow leopard on this board with following some of the tutorials on the forums, but i kept getting kernel panics. I had no idea hyperthreading had to be disabled in bios.. lol


Regarding dsdt i was using the dsdt.aml which i created for leopard, but maybe i'll try the one ugokind posted. I guess you just need to change the name to dsdt.aml once you extract it?

Link to comment
Share on other sites

bios? are you crazy?


press F2 at boot. . 1st page the 1 voice you can change is HT.. disable it


goto last page

1st voice.. save and exit


if you don't boot without ht.. you have kp

Link to comment
Share on other sites

ya, i know how to disable HT in bios, i just didn't know it had to be disabled in order to run snow leopard. No wonder i was getting kernel panics.. Thanks for the info though..


I just find some of the tutorials are not very clear, but i guess its more or less trial and error.


What bootloaders are you guys using to boot snow leopard?

Link to comment
Share on other sites

What bootloaders are you guys using to boot snow leopard?

:P This is not a tutorial. This is just success and fail of some people. When we got all we want then we will make a tutorial. As for bootloader - PC EFI 10.2 I guess. Not sure about version but must be 10.x. You can install Chameleon and then just grab a copy of boot file from netkas.org.




Okey. Tests results based on iDeneb Leopard 10.5.5 on GUID SATA hard drive with Chameleon RC2 bootloader and FakeSMC.kext from netkas (nothing more installed, no modified kexts, added UUIDs etc):


my current DSDT

Video - Success

LAN - Success

HyperThreading - Fail

Halt/restart/sleep - Success/Fail/Fail


ugokind's DSDT

Video - Success

LAN - Success

HyperThreading - Success

Halt/restart/sleep - Success/Success/Success


Now will extract DSDT from Ubuntu, then fix it with my method and then compare to ugokind's DSDT to get Sleep and HyperThreading. So, ugokind, many thanks and stay in touch.

Link to comment
Share on other sites

hyper threading?

in snow I can't!!


remember .. in boot.plist we've arch=i386.. is a limit but is good as is!

Tests were performed in Leopard 10.5.5. Snow Leopard 10.6.0 I will test today. Only one thing to say - I never edited com.apple.boot.plist. And my Snow Leopard works in 64 bit mode except GMA950 kexts and legacy IOATAFamily + AppleIntelPIIXATA of course.

Link to comment
Share on other sites

Thanks to the kext files provided above I was able to get my Snow OS X v3.5 distro without any major hiccups and I used a somewhat different procedure to copy the files onto system/library/extensions using MacDrive 8.0 on Windows 7 and then booted with -x -v -f because after successfully installing SL I would get stuck at no information set about this mac or something but with the kexts provided I was able to resolve and get a working install. Thanks a lot.


Now the only problem that I am having is to install my eVga Nvidia 9500 Gt 512 card and the instructions provided in the nvidia graphics section worked perfect for me on Leopard 10.5.8 and installation was as easy as anything before. Now the only issue that I am having is when I try to run OSX86 Tools to execute Efi Strings I get a boolean error and if I am able to get rid of that then I am quite sure I can get the drivers to install. Any help in this regard will be highly welcomed.

Link to comment
Share on other sites

The error is "Can't make '0' into type boolean. (-1700)". Seems like typecasting from zero to false is not working. I guess OSX86Tools is discontinued, so you better use EFIStudio rather then wait for a fix. They have outdated version so you google for EFIStudio 1.1



I have got the problem resolved finally and have a fully working install with no problems whatsoever.

Link to comment
Share on other sites

I'v managed to get snow leopard installed on my machine. I am using ugokinds dsdt.aml and put uuid as mentioned. I formated my snow leopard drive as mbr and used the modifed osinstall.mkpg available on the net. I put all my kext files in Extra/Extensions.


for me this is whats happening


- Full resolution with dsdt.aml with some artifacts

- shutdown/restart/sleep - when i hit shutdown the computer just restarts, restart works as normal, for sleep it will hibernate my computer and when i wake it, it will just start as normal.

- Audio and LAN work fine

- Hyperthreading is not working, i get a kernel panic when its enabled. When i disable it works fine.

-My hard drives are not mounting. Applications and usb key mount fine, but my leopard and snow leopard drive won't mount. Leopard drive is on sata hd and snow leopard is on ide hd. In order to access the info, i can either go into terminal or finder, but not showing up on desktop.


Thanks everyone for their help and any suggestions are welcome...





My drives are mounting now. Just wanted to update anyone in case they had the same problem. To view the volumes on my desktop i had to open finder and right clicked on one of my volumes and select "Open Sidebar Preferences". Under the general tab select 'Hard Disk' to show on desktop. For me this wasn't selected...

Link to comment
Share on other sites

... I put all my kext files in Extra/Extensions ...

Can you list all of used extensions? I am just curious if you use SleepEnabler.kext and OpenHaltRestart.kext, because I don't use them and restart and sleep not working for me, shutdown works.

Also, how about Flash Player performance? Youtube.com is very slow for me.

Link to comment
Share on other sites

Can you list all of used extensions? I am just curious if you use SleepEnabler.kext and OpenHaltRestart.kext, because I don't use them and restart and sleep not working for me, shutdown works.

Also, how about Flash Player performance? Youtube.com is very slow for me.


I am on my work machine right now, but when i get home i can list the kexts i put into Extra/Extensions. But, i know i used SleepEnabler.kext and OpenHaltRestart.kext. I made a point in installing these kexts as i though thats how snow leopard manages sleep. Restart works, but shutdown and sleep don't.


On all my distros of Leopard, i have never installed SleepEnabler.kext and sleep has always worked. I beleive i had OpenHaltRestart.kext on my leopard machine though. I have also tried to set my hibernatemode.


In Terminal i entered:


sudo pmset -a hibernatemode 3 (this is what i had to do in leopard to get sleep working, but didn't work in snow leopard).


I am also having slow performance on flash as well.

Link to comment
Share on other sites

Just doing some more testing. Here are the kexts currently in my Extra/Extensions/


- AppleRTC.kext

- fakesmc.kext

- IOAHCIBlockStorageInjector.kext

- IOAHCIshow.kext

- IOATAFamily.kext

- NullCPUPowerManagement.kext

- OpenHaltRestart.kext

- PlatformUUID.kext

- SleepEnabler.kext


With these kexts only restart works for me, shutdown and sleep do not work.


Since i have never used SleepEnabler in any of my leopard installs to get sleep working i decided to delete SleepEnabler.kext to see what happens, i left everything else as it.


Once i removed SleepEnabler.kext i am now able to shutdown and restart successfully. Sleep still doesn't work. So, for now i am going to leave SleepEnabler.kext not installed so at least i can shutdown and restart fine..


Just a little update.


Also, i am pretty sure i put IOATAFamily.kext in Extra/Extensions and in System/Library/Extensions. Now i don't want the same kext in both locations, but wasn't sure where i should keep this kext or if it even matters??



Ok, so looks like once i deleted and SleepEnabler.kext and repaired my permissions i was able to restart and shutdown my computer no problems. Well, looks like that was a 1 time deal and i spoke to soon. :) Now i am back to where i was where shutdown doesn't work, jsut restarts my computer. And i can't reproduce the scenario where i had shutdown working..


I also notice once you delete SleepEnabler.kext i can't boot up with -f command becuase i get kernel panic. Once i put the sleepenabler.kext back i can boot with -f....


Back to the drawing boards..

Link to comment
Share on other sites

In Leopard HyperThreading don't works too. Leopard 10.5.5 is little obsolete, so I am talking about 10.5.8 where HT is working only with old kernel. Also I believe MacPro based on Xeon (???) have HyperThreading, so seems like HT must work in Snow Leopard. I guess we need P-States and C-States be appended to DSDT.aml, but I can't get them - SSDT is not present, checked in Linux. Also there are some tutorials on how to get *-States from native Macs working on Hacks.


I tried to move _PR scope in dsdt to _SB scope.


1. This works on Acer Aspire 5720Z - I can use native AppleIntelCPUPowerManagement (*-States is needed too because of overheating, currently not fixed, laptop halts when playing YouTube or other flash for 30 minutes; otherwise works very good).


2. On D945GCLF2 this trick results in following (currently I cannot reproduce this on Snow Leopard but in 10.5.8 this works):

  • removing NullCPUPowerManagement gives Kernel Panic with "Unsupported processor ..."
  • leaving NullCPUPM as is, turning on HT in BIOS gives Kernel Panic with "Should have 2 cores, but only found one ..."
  • leaving NullCPUPM as is, turning HT and BIOS and booting with cpus=3 gives 3 cores in Activity Monitor and "4 Ghz Unknown" in System Profiler. WTF?

I think we should get AppleIntelCPUPowerManagement working. Oh. I tried to copy this from Leopard 10.5.8 but only got "version mismatch".




SleepEnabler.kext, OpenHaltRestart.kext not installed. Extra folder don't even exists. IOATAFamily.kext and fakesmc.kext along with NullCPUPowerManagement.kext are stored in /S/L/E.


Shutdown works, restart not, sleep not. But recently shutdown really worked like restart for two times maybe. So it is not manipulation with kexts raise such behaviour, because I do not have them and sympthoms are the same. Must be something else, I play only with dsdt and bios settings (HT). So it must be NullCPUPowerManagement+HT restarting CPU instead of halting. Will try to reproduce later.

Link to comment
Share on other sites

Hey DamienValentine,


I agree we should get AppleIntelCPUPowerManagement working.


I didn't realize you had so few kexts installed to get snow leopard working. You don't have an extra folder and only have IOATAFamily.kext and fakesmc.kext along with NullCPUPowerManagement.kext installed in S/L/E.


I think i am going to try it your way and get ride of as many kexts as possible, this will help to troubleshoot.


Thanks for the info.




Ok, so decided to clean up the kexts on my snow leopard install. I removed my extra folder. Now the only kexts i have are in S/L/E


- IOATAFamily.kext

- fakesmc.kext

- NullCPUPowerManagement.kext

- VoodooHDA.kext


I also deleted AppleHDA.kext in S/L/E from before. Then i repaired my permissions and started up snow leopard with -f -v. It booted fine.


Once i did the following, shutdown works, restart/sleep dont, just as like DamienValentine. Tried the shutdown and few times and worked.


Then i decided to install OpenHaltRestart.kext into s/l/e. Once i did that my shutdown wasn't working. Then installed SleepEnabler.kext again nothing was working. So, i decided to remove both OpenHaltRestart.kext and SleepEnabler.kext, repaired my permissions and now my shutdown doesn't work anymore, just restarts the computer. Restart/sleep don't work either.


So, now i don't have an extra folder and only have the 4 kexts listed above (no sleepenabler or openhaltrestart) and i have no shutdown/restart/sleep. So, now i am just trying to reproduce the problem, but so far no luck..

Link to comment
Share on other sites

Ok, I have tried following the best directions available on this thread but I am stuck at "Still waiting for root device"

I loaded the SL install DVD onto an external USB drive, used Chameleon RC3 to make it bootable, booted to the USB drive and installed SL to Hard Drive 1.

After SL installed on HD1 I booted back into Leopard, added the kexts and DSDT from ugokind's post. Repaired permissions, tried to boot into HD1 (the SL drive) with -f -x -v and got this when it stopped.

Can anyone tell where I went wrong?

 waiting for boot volume with UUID  2C16030C-C237-311C-AC98-98A5DEEEC148
 Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</sting><key>IOResourceMatch</key><string ID="2">boot-uuid-media<string></dict>
 com.apple.appleFScompressionTypeZlib load succeeded
 USBMSC Identifier (non-unique): 20043513400EFDE11EEF 0x781 0x5150 0x10
 USBMSC Identifier (non-unique): 1200E000022127469 0xd49 0x3000 0x1101
 Still waiting for root device
 Still waiting for root device
 Still waiting for root device

I hope this helps in the troubleshooting process.


I tried it bcotnam's way, deleted the Extras folder and put those 4 kexts in S/L/E, still no change. I get the same error listed above. I went back and took out the UUID from ugokind's bootlist and then SL booted up just fine.

Link to comment
Share on other sites


  • Create New...