Jump to content

How to install 10.5.6/7 retail on GA-EP43-UD3L rev 1.0 with 9400GT for HTPC duties


4 posts in this topic

Recommended Posts

Very much in the same vein as installing my GA-P35-DS3R rev 2.0 which I use as my main desktop. The EP43 & 9400GT will be used as HTPC.

 

Again, these notes are aimed at people comfortable with the relevant technical concepts (boot loaders, kernel drivers etc) and have thorough experience on UNIX. Nonetheless I hope I can give back to the community and save others many frustrating hours :)

 

I started with BIOS F3 and then upgraded to F4, it is unclear if this made any difference, the only reason I did it was to see if the DSDT.aml was fixed (it wasn't but it was slightly less broken, so it's probably worth it).

 

"Optimized defaults" in the BIOS are fine, only things I really changed are enabling AHCI SATA mode, enabling USB keyboard & mouse and setting the HPET to 64 bit.

 

Installation of the bare OS is pretty much the same as the link above, outline:

  • put the target drive in an existing osx system
  • format GPT, creating 1 partition in disk utility, it should create the EFI partition automatically
  • installation chameleon as per their installation instructions
  • cp chameleon/optional extras/* /Volumes/EFI/Extra/
  • mount your retail DVD (or image) and run the OSInstall.mpkg and install the OS on the new target drive
  • put the target drive back in the new machine, boot up and complete the installation (probably in 1024x768 using VESA)
  • use Software Update to update to 10.5.7

I also added the following kernel modules to EFI/Extra/Extensions:

 

OpenHaltRestart.kext

 

Audio ALC888 (or ALC1200?)

 

and to /System/Library/Extensions (I'll experiment later with moving them to EFI/Extra/Extensions):

 

HDAEnabler.kext

AppleHDA.kext (patched)

 

which I got from here (ALC1200_1057_SLIM.zip). My motherboard definitely has an ALC888 chip soldered to it (just below the PCIe x16 slot) but this was the only driver of many I've tried that worked. Thanks to Auksjunkie for the tip!

 

This results in only a few outputs, I haven't tried any of the inputs. The only thing I'm interested in is a bit perfect coax SPDIF output, which this driver gave me.

 

Graphics XFX 9400 GT 1GB

 

Now to get the 9400GT working. There is a lot of information out there, some old and deprecated, some new and some just plain wrong so it can take a while to sift through it all. None of the premade 9400GT kexts floating out there worked for me. I think if you have a dual DVI card it will probably work easier, this card has DVI + VGA + svideo. Initially I found that when I got the vanilla kexts to load (by adding my PCI IDs) the DVI port did not work, only the VGA, unacceptable.

 

As with my P35 & 8800GT install, I found the best way is using an EFI string, keep the installation as clean as possible. This page is a good source of information, even though it is for SLI. Start with the sample plist found in the package linked in my P35 & 8800GT notes. Edit the text details if you like, changing 8800GT to 9400GT etc. Follow the instructions that came with the package to put in the right PCI device path etc.

 

Next you have to find your NVCAP string, this decribes your port & channel layout to the kernel driver. If you get it wrong it will just show you a black screen after the gfx has been initialized even though your PCI device got matched and the right driver got loaded.

 

Prepare a DOS USB key (or CD) and put nvflash util on there (two .exe files), dump your ROM and get it back to your OSX installation. Use NVCAP maker utility on the ROM to give you your NVCAP string. It looks something like this:

 

0400000000000100060000000000000700000000

 

Although many "guides" says that you can use this string as is in the <data></data> field for NVCAP it has never worked for me. (I do wonder if it will work if using <string> rather than <data>, I'll try sometime). You need the "hex" (really doesn't look like hex to me, more like a hash or something :) ). This post has some common options you could try if you don't want to dump your ROM.

 

Some kind soul posted the equivalent for my NVCAP:

 

BAAAAAAAAQAGAAAAAAAABwAAAAA=

 

Use gfxutil as explained above and in my other install to create a hex string from the plist containing your details and add it to /Library/Preferences/SystemConfiguration/com.apple.Boot.plist. Mine looks like this:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
       <key>Kernel</key>
       <string>mach_kernel</string>
       <key>Kernel Flags</key>
       <string></string>
       <key>device-properties</key>
       <string>e60300000100000001000000da0300001500000002010c00d041030a010000000101060000010
01060000007fff040014000000400032002c006e0061006d00650000001100000073656e736f722d
06172656e74220000005600520041004d002c0074006f00740061006c00730069007a00650000001
0000000a0909307834303030303030300a090936000000400032002c00680077006300740072006c
02d0070006100720061006d0073002d00760065007200730069006f006e000000080000000000000
1c0000006400650076006900630065005f0074007900700065000000100000004e5644412c476546
f7263650e0000006e0061006d00650000000f0000004e5644412c506172656e74220000004000300
2c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000
06d006f00640065006c0000001d0000004e5649444941204765466f7263652039343030475420314
4222000000400031002c006400650076006900630065005f00740079007000650000000b00000064
973706c617912000000400032002c007200650067000000080000000000000222000000400032002
006400650076006900630065005f0074007900700065000000120000004e5644412c6770752d6469
f646520000000400032002c0063006f006d00700061007400690062006c0065000000160000004e5
44412c73656e736f722d706172656e7422000000400032002c002300730069007a0065002d006300
5006c006c0073000000080000000000000020000000400031002c0063006f006d007000610074006
0062006c00650000000e0000004e5644412c4e564d616314000000400030002c006e0061006d0065
00000120000004e5644412c446973706c61792d413a000000400032002c0068007700730065006e0
73006f0072002d0070006100720061006d0073002d00760065007200730069006f006e0000000800
0000000000226000000400032002c0023006100640072006500730073002d00630065006c006c007
000000080000000000000114000000400031002c006e0061006d0065000000120000004e5644412c
46973706c61792d4220000000400030002c0063006f006d00700061007400690062006c006500000
0e0000004e5644412c4e564d61631e00000072006f006d002d007200650076006900730069006f00
e0000001300000076312e30206279206e6566696c696d100000004e0056004300410050000000180
000004000000000001000600000000000007000000000e0000004e00560050004d00000020000000
1000000000000000000000000000000000000000000000000000000</string>
       <key>Graphics Mode</key>
       <string>1920x1080x32</string>
</dict>
</plist>

 

If you're not a command line warrior :) you could use OSX86Tools to do this, it should result in the same end result, a hex string in your com.apple.Boot.plist.

 

Other

 

Restart works fine with OpenHaltRestart.kext. Sleep does not work yet, it goes to sleep but reboots upon waking up. Please comment if you have any ideas on this. I have started fixing my DSDT but no results yet.

 

UPDATE: Sleep works now, see this tip. Makes no sense but no complaints here :)

 

Tools and Tricks that helped me along the way

  • Making a bootable DOS USB key when you only have OSX & linux. I used makebootfat and freedos initially. It worked fine but it's very manual and cumbersome. I think a better way would be to create a system rescue boot USB key and modify one of the included dos images (mount over the loopback device and put utils such as nvflash.exe in).
  • Some posts claim you cannot make changes to plists using a text editor and recommends PlistEdit Pro. I used vi for everything and it worked just fine.

  • 3 weeks later...

Upgraded the 9400GT to a fanless 9800GT . The 9400GT worked fine for video but seemed a bit sluggish on certain UI operations like quicksilver's animation.

 

Just using my EFI string from my desktop's 8800GT to start with, worked fine as they are really the same cards internally, need to fix the RAM (currently showing 512mb) at some point.

 

I tried Chameleon RC2 but the NVidia detection did not work at all, even turning it off and supplying the EFI string failed, so I reverted back to RC1.

  • 2 weeks later...
Very much in the same vein as installing my GA-P35-DS3R rev 2.0 which I use as my main desktop. The EP43 & 9400GT will be used as HTPC.

 

Again, these notes are aimed at people comfortable with the relevant technical concepts (boot loaders, kernel drivers etc) and have thorough experience on UNIX. Nonetheless I hope I can give back to the community and save others many frustrating hours :)

 

I started with BIOS F3 and then upgraded to F4, it is unclear if this made any difference, the only reason I did it was to see if the DSDT.aml was fixed (it wasn't but it was slightly less broken, so it's probably worth it).

 

"Optimized defaults" in the BIOS are fine, only things I really changed are enabling AHCI SATA mode, enabling USB keyboard & mouse and setting the HPET to 64 bit.

 

Installation of the bare OS is pretty much the same as the link above, outline:

  • put the target drive in an existing osx system
  • format GPT, creating 1 partition in disk utility, it should create the EFI partition automatically
  • installation chameleon as per their installation instructions
  • cp chameleon/optional extras/* /Volumes/EFI/Extra/
  • mount your retail DVD (or image) and run the OSInstall.mpkg and install the OS on the new target drive
  • put the target drive back in the new machine, boot up and complete the installation (probably in 1024x768 using VESA)
  • use Software Update to update to 10.5.7

I also added the following kernel modules to EFI/Extra/Extensions:

 

OpenHaltRestart.kext

 

Audio ALC888 (or ALC1200?)

 

and to /System/Library/Extensions (I'll experiment later with moving them to EFI/Extra/Extensions):

 

HDAEnabler.kext

AppleHDA.kext (patched)

 

which I got from here (ALC1200_1057_SLIM.zip). My motherboard definitely has an ALC888 chip soldered to it (just below the PCIe x16 slot) but this was the only driver of many I've tried that worked. Thanks to Auksjunkie for the tip!

 

This results in only a few outputs, I haven't tried any of the inputs. The only thing I'm interested in is a bit perfect coax SPDIF output, which this driver gave me.

 

Graphics XFX 9400 GT 1GB

 

Now to get the 9400GT working. There is a lot of information out there, some old and deprecated, some new and some just plain wrong so it can take a while to sift through it all. None of the premade 9400GT kexts floating out there worked for me. I think if you have a dual DVI card it will probably work easier, this card has DVI + VGA + svideo. Initially I found that when I got the vanilla kexts to load (by adding my PCI IDs) the DVI port did not work, only the VGA, unacceptable.

 

As with my P35 & 8800GT install, I found the best way is using an EFI string, keep the installation as clean as possible. This page is a good source of information, even though it is for SLI. Start with the sample plist found in the package linked in my P35 & 8800GT notes. Edit the text details if you like, changing 8800GT to 9400GT etc. Follow the instructions that came with the package to put in the right PCI device path etc.

 

Next you have to find your NVCAP string, this decribes your port & channel layout to the kernel driver. If you get it wrong it will just show you a black screen after the gfx has been initialized even though your PCI device got matched and the right driver got loaded.

 

Prepare a DOS USB key (or CD) and put nvflash util on there (two .exe files), dump your ROM and get it back to your OSX installation. Use NVCAP maker utility on the ROM to give you your NVCAP string. It looks something like this:

 

0400000000000100060000000000000700000000

 

Although many "guides" says that you can use this string as is in the <data></data> field for NVCAP it has never worked for me. (I do wonder if it will work if using <string> rather than <data>, I'll try sometime). You need the "hex" (really doesn't look like hex to me, more like a hash or something :) ). This post has some common options you could try if you don't want to dump your ROM.

 

Some kind soul posted the equivalent for my NVCAP:

 

BAAAAAAAAQAGAAAAAAAABwAAAAA=

 

Use gfxutil as explained above and in my other install to create a hex string from the plist containing your details and add it to /Library/Preferences/SystemConfiguration/com.apple.Boot.plist. Mine looks like this:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
       <key>Kernel</key>
       <string>mach_kernel</string>
       <key>Kernel Flags</key>
       <string></string>
       <key>device-properties</key>
       <string>e60300000100000001000000da0300001500000002010c00d041030a010000000101060000010
01060000007fff040014000000400032002c006e0061006d00650000001100000073656e736f722d
06172656e74220000005600520041004d002c0074006f00740061006c00730069007a00650000001
0000000a0909307834303030303030300a090936000000400032002c00680077006300740072006c
02d0070006100720061006d0073002d00760065007200730069006f006e000000080000000000000
1c0000006400650076006900630065005f0074007900700065000000100000004e5644412c476546
f7263650e0000006e0061006d00650000000f0000004e5644412c506172656e74220000004000300
2c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000
06d006f00640065006c0000001d0000004e5649444941204765466f7263652039343030475420314
4222000000400031002c006400650076006900630065005f00740079007000650000000b00000064
973706c617912000000400032002c007200650067000000080000000000000222000000400032002
006400650076006900630065005f0074007900700065000000120000004e5644412c6770752d6469
f646520000000400032002c0063006f006d00700061007400690062006c0065000000160000004e5
44412c73656e736f722d706172656e7422000000400032002c002300730069007a0065002d006300
5006c006c0073000000080000000000000020000000400031002c0063006f006d007000610074006
0062006c00650000000e0000004e5644412c4e564d616314000000400030002c006e0061006d0065
00000120000004e5644412c446973706c61792d413a000000400032002c0068007700730065006e0
73006f0072002d0070006100720061006d0073002d00760065007200730069006f006e0000000800
0000000000226000000400032002c0023006100640072006500730073002d00630065006c006c007
000000080000000000000114000000400031002c006e0061006d0065000000120000004e5644412c
46973706c61792d4220000000400030002c0063006f006d00700061007400690062006c006500000
0e0000004e5644412c4e564d61631e00000072006f006d002d007200650076006900730069006f00
e0000001300000076312e30206279206e6566696c696d100000004e0056004300410050000000180
000004000000000001000600000000000007000000000e0000004e00560050004d00000020000000
1000000000000000000000000000000000000000000000000000000</string>
       <key>Graphics Mode</key>
       <string>1920x1080x32</string>
</dict>
</plist>

 

If you're not a command line warrior ;) you could use OSX86Tools to do this, it should result in the same end result, a hex string in your com.apple.Boot.plist.

 

Other

 

Restart works fine with OpenHaltRestart.kext. Sleep does not work yet, it goes to sleep but reboots upon waking up. Please comment if you have any ideas on this. I have started fixing my DSDT but no results yet.

 

UPDATE: Sleep works now, see this tip. Makes no sense but no complaints here :)

 

Tools and Tricks that helped me along the way

  • Making a bootable DOS USB key when you only have OSX & linux. I used makebootfat and freedos initially. It worked fine but it's very manual and cumbersome. I think a better way would be to create a system rescue boot USB key and modify one of the included dos images (mount over the loopback device and put utils such as nvflash.exe in).
  • Some posts claim you cannot make changes to plists using a text editor and recommends PlistEdit Pro. I used vi for everything and it worked just fine.

 

http://www.techpowerup.com/gpuz/ couldt you have used this program to get the nvcap for your card? is the rom file the same is the bios .bin file?

×
×
  • Create New...