Jump to content
DiaboliK

Asus P5N7A-VM

1,295 posts in this topic

Recommended Posts

I have the same problems as some others....my system won't boot unless I use the -f flag at the darwin prompt.

 

i use the netkas boot file that does -f on every load (i believe its the early snow boot w/ dsdt)

 

-D-

Share this post


Link to post
Share on other sites
Advertisement
are you really using AHCI as setting and not sata?

 

Yes - AHCI

 

i use the netkas boot file that does -f on every load (i believe its the early snow boot w/ dsdt)

 

-D-

 

I edited /Library/Preferences/SystemConfiguration/com.apple.boot.plist to add the -f argument under the kernal flags.

Share this post


Link to post
Share on other sites

Interesting observations RE sleep and shutdown. On my system, when I use the iGPU and only a a PCI card in slot 1, it shuts down and sleeps fine. However, when I used an external GPU and/or use PCI slot 2, when i goto sleep or shutdown it only powers the monitor off, and the fans keep spinning.

 

Does anybody have any ideas how to fix this? Something to do with the DSDT table or any other ideas?

Share this post


Link to post
Share on other sites

It took me quite some time to figure out all this DSDT stuff, so here are my notes in the hope it might help someone.

I have no issues at all with this DSDT and bios 0407; no problems with sleep, restart or shutdown, no need for a (intelcpupm)disabler and no need for a video or audio injector. Let's start with the excellent post of Signal64:

 

An issue with the ASUS is when you have Legacy USB Enabled in BIOS, EHCI handoff isn't done and it generates errors.

It's another reason why shutdown/reboot doesn't work with openhaltrestart.

USB EHCI handoff is sometimes an option in bios, but it's missing on the ASUS.

You can see the errors on boot with -v, dmesg, or grep for them in the /var/log/system.log.

 

If you turn off legacy USB in BIOS then shutdown/reboot works with the openhaltrestart kext and the errors go away.

Of course that means a usb keyboard/mouse doesn't work until you get into the OS.

 

The one USB EHCI kext fix I've used in the past didn't work either (there's a usb ehci fix thread that I got that fix from)

I was looking for another workaround but it's been very low on the priority list at the moment.

 

Fix this by disabling Legacy USB support, or by setting the USB 2.0 Controller Mode to FullSpeed instead of HiSpeed if you need legacy support. Set SATA to AHCI.

 

These are my notes for the P5N7A-VM - for others, don't confuse it with the Gigabyte I already posted above.

Credits to DiaboliK.

 

DSDT modifications for P5N7A-VM - BIOS Release 407
updated Dec-7-2008

Basic Changes

1. CPU Section requires removing alias's otherwise you have a CPUS=1 scenario on your hands. 
Rename the P001 section to have the cpus show up correctly in ioregistry

 

Don't change the CPU names. They need to match with the names in the SSDT for the power states to work. Otherwise AppleLPC will start complaining about the C-states. Alternatively you can add the SSDT tables to DSDT and drop the originals during loading. Do remove the aliases!

 

After:

		Scope (_PR)
	{
		Processor (P001, 0x01, 0x00004010, 0x06) {}
		Processor (P002, 0x02, 0x00000000, 0x00) {}
		Processor (P003, 0x03, 0x00000000, 0x00) {}
		Processor (P004, 0x04, 0x00000000, 0x00) {}
	}

 

	
2. HPET needs no modification

 

HPET does need modification. What needs to be fixed is method _STA that must return status 0x0F for AppleHPET to load. The DSDT has:

					Method (_STA, 0, NotSerialized)
				{
					If (LEqual (OSFL (), Zero))
					{
						If (LEqual (NVID, 0x10DE))
						{
							Return (0x0F)
						}
						Else
						{
							Return (Zero)
						}
					}
					Else
					{
						Return (Zero)
					}
				}

So we can change _STA to always return 0x0F or we can make sure it gets to the right if clause. The first if statements is a check for the OS, and it is true if the OS is Windows XP SP2 or Vista, so that one fails. The second checks for NVIDA and therefore succeeds. I choose to adapt the DSDT to always return the same as in the case of Vista. Do this by adding the following to method OSYS:

 

before:

		If (_OSI ("Windows 2006")) {
		Store (0x15, Local0)
	}

after:

		If (_OSI ("Windows 2006"))
	{
		Store (0x15, Local0)
	}

	If (_OSI ("Darwin"))
	{
		Store (0x15, Local0)
	}

 

 

	
3. RTC modified - removed IRQNoFlags

 

No need for the RTC fix, it will always choose the CSR1 case.

 

After the CPU and HPET fix, you should be able to boot Leopard without the need for a disabler (IntelCPUPMDisabler.kext or Disabler.kext). My system initialises AppleIntelCPUPowerManagement fine, but I haven't checked if any power management is actually taking place.

 

	
4. Search and Replace _T_ with T_

5. Search and Replace Acquire (MUTE, 0x03E8) with Acquire (MUTE, 0xFFFF)

6. Search and Replace Acquire (MUTE, 0x0FFF) with Acquire (MUTE, 0xFFFF)

7. Compile with iasl 

--- Note: At this point aml is enough to boot ----

Further Changes:

1. HDEF

	a. Search and Replace HDAC with HDEF

2. USB

	a. Search and Replace USB0 with OHC1
	b. Search and Replace US15 with OHC2
	c. Search and Replace USB2 with EHC1
	d. Search and Replace US12 with EHC2

3. SATA

	a. Search and Replace ATA0 with SATA
	b. Will need to add dev id to AppleAHCIPort.kext - MCP79AHCI - IOPrimaryPCIMatch
		<string>0x0ab810de</string>

 

As an alternative you can use the attached LegacyAppleAHCIPort.kext with does the same thing, but without the need to edit the original file, so it is safe to update Leopard. I also added LegacyIOAHCIBlockStorage.kext to make all SATA drives internal.

 

	
4. SBUS

	a. Search and Replace SMB0 with SBUS

5. TRIM

	a. Search and Replace TRM0 with TRIM

6. P4MI, NVPM

	These don't have a matching entry in the default DSDT
	We add stubs so they are recognized.

	Place the following above Device (OHC1)

		Device (P4MI)
			{
				Name (_ADR, 0x00030003)
			}

		Device (NVPM)
			{
				Name (_ADR, 0x00030005)
			}

7. GIGE

	a. Search and Replace NMAC with GIGE


8. RP04

	a. Search and Replace P0P6 with RP04

	(that's P zero P6 and RP zero 4)

9. LPC

	a. Search and Replace SBRG with LPCB

	b. Will need to add dev id to AppleLPC.kext
		<string>pci10de,aac</string>

 

Same here: as an alternative you can use the attached LegacyAppleLPC.kext

 

	
10. LPC Devices

	a. Search and Replace DMAD with DMAC
	b. Search and Replace RTC0 with RTC
	c. Search and Replace OMSC with LDRC
	d. Search and Replace COPR with MATH
	e. Search and Replace (PIC) with (IPIC)
	f.  Search and Replace TMR with TIMR

11. MCH 

	a. add the following above RP04 section

			Device (MCH2)
			{
				 Name (_ADR, 0x00000001)
			}

			Device (MCHC)
			{
				 Name (_ADR, Zero)
			}

 

Guess I'm not helping in keeping this thread to a E7AUM-DS2H topic :(

 

BTW - The one thing we haven't discussed is the advantage/disadvantage to the various Windows/Linux settings that can be set in either DSDT.

 

There's a section in both DSDT's (grep for Windows) that determine some settings based on the OS loaded.

This is the OSI Darwin "or" option that dsdt patcher can set.

 

I've been hardcoding various options and haven't seen any advantage/disadvantage to either so far.

Curious what others find.

 

So I chose to add the OSI Darwin option to fix HPET. Haven't checked the other consequences of this, but everything is running fine.

 

Furthermore, we can add graphics and audio to the DSDT so we don't need injectors anymore. Apple itself is used a method to inject info from the DSDT into the IORegistry. Add this method before Scope (_SB):

 

12. DTDG

 

a. add above Scope (_SB) section

			Method (DTGP, 5, NotSerialized)
		{
			If (LEqual (Arg0, Buffer (0x10)
					{
						/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
						/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
					}))
			{
				If (LEqual (Arg1, One))
				{
					If (LEqual (Arg2, Zero))
					{
						Store (Buffer (0x01)
							{
								0x03
							}, Arg4)
						Return (One)
					}

					If (LEqual (Arg2, One))
					{
						Return (One)
					}
				}
			}

			Store (Buffer (0x01)
				{
					0x00
				}, Arg4)
			Return (Zero)
		}

 

Graphics injection: The following is for integrated graphics only. You can do the same thing for discrete graphics. As you can see it adds exactly the same thing to the IORegistry as the injectors do, so you can also adapt it in the same way (although you should not need to do that for the integrated graphics).

 

13. Add graphics injection

 

a. Find Scope (_SB.PCI0.IXVE.IGPU)

b. Scroll down to method Method (_DSM, 4, NotSerialized)

c. Substitute Return (Zero) at the end of the _DSM method with:

					Store (Package (0x16)
					{
						"device_type", 
						Buffer (0x0C)
						{
						   "NVDA,Parent"
						}, 
						"model", 
						Buffer (0x15)
						{
							"NVIDIA GeForce 9300M"
						}, 
						"rom-revision", 
						Buffer (0x06)
						{
							"OSX86"
						}, 
						"NVCAP", 
						Buffer (0x14)
						{
							/* 0000 */	0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
							/* 0008 */	0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
							/* 0010 */	0x00, 0x00, 0x00, 0x00
						}, 
						"@0,device_type", 
						Buffer (0x08)
						{
							"display"
						}, 
						"@0,compatible", 
						Buffer (0x0B)
						{
							"NVDA,NVMac"
						}, 
						"@0,name", 
						Buffer (0x0F)
						{
							"NVDA,Display-A"
						}, 
						"@0,fboffset", 
						Buffer (0x04)
						{
							0x00, 0x00, 0x01, 0x00
						}, 
						"@1,device_type", 
						Buffer (0x08)
						{
							"display"
						}, 
						"@1,compatible", 
						Buffer (0x0B)
						{
							"NVDA,NVMac"
						}, 
						"@1,name", 
						Buffer (0x0F)
						{
							"NVDA,Display-B"
						} 
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)

 

Audio injection: same thing as graphics. Only layout-id is needed. PinConfigurations takes care of what is shown in System Profiles, if not overwritten by CodecVerbs. The shown data actually corresponds to the CodecVerbs needed to get audio fully working (more about that tomorrow).

 

14. Add audio injection

 

a. Find Device (HDEF)

b. Add the folowing at the end after Method (_PRW...} :

					Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x06)
						{
							"layout-id", 
							Buffer (0x04)
							{
							   0x78, 0x03, 0x00, 0x00 // the hex layout ID (reverse order)
								// 0x40, 0x00, 0x00, 0x00 // the hex layout ID (reverse order)
							}, 
							"model", 
							Buffer (0x10) // the hex count + 1 for null terminated ascii string
							{
								"Realtek ALC1200" // the string identifier
							}, 
							"PinConfigurations", 
							Buffer (0x34) // the actual hex count
							{
								// the PinConfigurations data as it appears.
								/* 0000 */	0x10, 0x40, 0x11, 0x01, 0x20, 0x10, 0x01, 0x01,
								/* 0008 */	0x30, 0x60, 0x01, 0x01, 0x40, 0x20, 0x01, 0x01,
								/* 0010 */	0x80, 0x90, 0xa1, 0x01, 0x90, 0x30, 0x81, 0x01,
								/* 0018 */	0x50, 0x40, 0x21, 0x02, 0xa0, 0x90, 0xa1, 0x02,
								/* 0020 */	0x60, 0x61, 0x45, 0x01, 0x70, 0x11, 0x43, 0x19,
								/* 0028 */	0xf0, 0x11, 0x33, 0x19, 0xf0, 0x01, 0xff, 0x50,
								/* 0030 */	0xf0, 0x01, 0xc0, 0x50
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}

 

I attached the dsl with all the changes above. Together with a compiled dsdt.aml and a OS X version of the intel compiler iasl. Most info here was found by searching insanelymac, the rest by looking at the spec and trial and error :wallbash:. Enjoy!

LegacyAppleAHCIPort.kext.zip

LegacyIOAHCIBlockStorage.kext.zip

LegacyAppleLPC.kext.zip

Asus_P5N7A_VM.dsl.zip

iasl.zip

dsdt.aml.zip

Share this post


Link to post
Share on other sites

What does it all mean FrodoKenny? :)

 

I'm confused.. hehe

 

--

 

Will the General Cartman jmicron fix help with my sudden, random reboots (no kernel panic)?

I'm using a SATA harddisk.

 

Will all the FrodoKenny stuff help maybe?

 

;)

Share this post


Link to post
Share on other sites

@Ayla

 

If you just want to use it, just take the dsdt.aml and place it in the root with EFIv9 or the new Chameleon 2.0. Put the Legacy*.kext files in /System/Library/Extensions or Extra/Extension (You also need AppleDecrypt.kext, no other kexts necessary).

If you want to know why it works, use the notes of Signal64 and me together with google.

 

I'm not using the jmicron fix and no random reboots here. Then again, I only use 2GB ram.

 

@metzz71

You can compile the dsl file into the dsdt.aml binary with:

./iasl Asus\ P5N7A-VM.dsl

 

As you can also use iasl to decompile and as dsdt.aml is included, they are just for convenience.

Share this post


Link to post
Share on other sites
before:

		If (_OSI ("Windows 2006")) {
		 Store (0x15, Local0)
	 }

after:

		If (_OSI ("Windows 2006"))
	 {
		 Store (0x15, Local0)
	 }

	 If (_OSI ("Darwin"))
	 {
		 Store (0x15, Local0)
	 }

 

No need for the RTC fix, it will always choose the CSR1 case.

 

 

if your using the windows osi you dont have to fix the hpet since it works already.

 

also Signal64 is working on the audio, where just about all ports work w/ jack sense and audio thru hdmi!

 

-D-

Share this post


Link to post
Share on other sites

thankss to all of you!

 

recently i've bought asus p5n7a-vm and the little baby.. the zotac geforce9300-wifi mini-atx

 

yesterday i've applied the guide in those pages.. and the little help in some topics..

in order:

modded a dvd original (fresh recent leopard.. bought 1 month ago.. it's just a 10.5.4)

(mod is to boot and not to check for hw, to erase printers from setup, to erase lang <> italian and to erase mediafiles!)

 

1.. connected a usb hdd.. 1st partition 10gb called macboot.

2.. do a osinstall.mkpg and applied to the usb hdd

3.. applied 10.5.6 combo update intel original

4.. launched last Uinstaller.. with parameters and the zip audio driver

5.. applied last chameleon 2.0rc1 boot manager setup

6.. removed intel cpu power mgm..

7.. modded mcp79 entry as described in this topics to detect the proper ID

8.. put last dsdt.aml

 

finish!!

all is working fine!! thanks

Share this post


Link to post
Share on other sites
It took me quite some time to figure out all this DSDT stuff, so here are my notes in the hope it might help someone.

I have no issues at all with this DSDT and bios 0407; no problems with sleep, restart or shutdown, no need for a (intelcpupm)disabler and no need for a video or audio injector. Let's start with the excellent post of Signal64:

Fix this by disabling Legacy USB support, or by setting the USB 2.0 Controller Mode to FullSpeed instead of HiSpeed if you need legacy support. Set SATA to AHCI.

Don't change the CPU names. They need to match with the names in the SSDT for the power states to work. Otherwise AppleLPC will start complaining about the C-states. Alternatively you can add the SSDT tables to DSDT and drop the originals during loading. Do remove the aliases!

 

 

Good work Frodo! I got rid of NVkush and the PMDisabler and it works. Except the audio. Waiting anxiously to hear from you tomorrow!

Share this post


Link to post
Share on other sites
thankss to all of you!

 

recently i've bought asus p5n7a-vm and the little baby.. the zotac geforce9300-wifi mini-atx

 

yesterday i've applied the guide in those pages.. and the little help in some topics..

in order:

modded a dvd original (fresh recent leopard.. bought 1 month ago.. it's just a 10.5.4)

(mod is to boot and not to check for hw, to erase printers from setup, to erase lang <> italian and to erase mediafiles!)

 

1.. connected a usb hdd.. 1st partition 10gb called macboot.

2.. do a osinstall.mkpg and applied to the usb hdd

3.. applied 10.5.6 combo update intel original

4.. launched last Uinstaller.. with parameters and the zip audio driver

5.. applied last chameleon 2.0rc1 boot manager setup

6.. removed intel cpu power mgm..

7.. modded mcp79 entry as described in this topics to detect the proper ID

8.. put last dsdt.aml

 

finish!!

all is working fine!! thanks

 

ugokind, did you get the zotac geforce9300-wifi mini-at working?

 

And how did you do it?

Share this post


Link to post
Share on other sites

not yet!

i've bought those 2 mobo because of they are very similar.

but the zotac arrived only last friday.. and in the weekend i've assemlbed the first mobo (asus)

now.. waiting for ram/cpu/little case I'm testing the first!

today i carboncopy the usb hdd on the internal.. and when arrive the material to create the zotac mini pc.. I think ANDD HOPE that it'll be very easy.. just attaching the usb hdd and start!

 

if so.. i'll write into this topics the results!! and we have a super easy solution!

then.. be patience!! til arrive materials..

 

and with the usb bluetooth minidongle (trust or sitecom) with 9,99€ we have a bluetooth very ast and with native drivers!

Share this post


Link to post
Share on other sites

So here are my notes on getting the audio to work. I think almost everything is working with the latest (10.5.6) AppleHDA, but I have not tested the inputs nor the internal SPDIF. HDMI and the internal CD-in is not working. I did test the optical output, all four (7.1) analog outputs and a front headphone including auto switching between a rear output and the headphone. Also, there are no assertion errors besides from the HDMI.

 

Thanx for all the info on insanelymac, especially from THe KiNG and tmongkol.

 

So this is what I did. Start with the codecdump from ubuntu. I also got the codecverbs from vista as an extra check. If you strip everything except the pin complexes, you get:

Node 0x11 [Pin Complex] Pin Default 0x99430140: [Fixed] SPDIF Out at Int ATAPI - Unknown
Node 0x14 [Pin Complex] Pin Default 0x01014010: [Jack] Line Out at Ext Rear - Green
Node 0x15 [Pin Complex] Pin Default 0x01011012: [Jack] Line Out at Ext Rear - Black
Node 0x16 [Pin Complex] Pin Default 0x01016011: [Jack] Line Out at Ext Rear - Orange
Node 0x17 [Pin Complex] Pin Default 0x01012014: [Jack] Line Out at Ext Rear - Grey
Node 0x18 [Pin Complex] Pin Default 0x01a19850: [Jack] Mic at Ext Rear - Pink
Node 0x19 [Pin Complex] Pin Default 0x02a19c60: [Jack] Mic at Ext Front - Pink
Node 0x1a [Pin Complex] Pin Default 0x0181305f: [Jack] Line In at Ext Rear - Blue
Node 0x1b [Pin Complex] Pin Default 0x02214c20: [Jack] HP Out at Ext Front - Green
Node 0x1c [Pin Complex] Pin Default 0x593301f0: [N/A] CD at Int ATAPI - Unknown
Node 0x1d [Pin Complex] Pin Default 0x4015e601: [N/A] Speaker at Ext N/A
Node 0x1e [Pin Complex] Pin Default 0x01456130: [Jack] SPDIF Out at Ext Rear - Orange
Node 0x1f [Pin Complex] Pin Default 0x411111f0: [N/A] Speaker at Ext Rear - Black

 

If you decode the Pin Defaults you get:

				   Port Con[2] Loc[6]   Device[4] Type[4] Color[4] Misc[4] Ass[4] Seq[4]
Pin Default 0x99430140: Fixed  intAT	SPDIFo	ATAPI   Unknown  NoPres  4	  0	  [Fixed] SPDIF Out at Int ATAPI - Unknown
Pin Default 0x01014010: Jack   extRear  LineOut   1/8	 Green	Pres	1	  0	  [Jack] Line Out at Ext Rear - Green
Pin Default 0x01011012: Jack   extRear  LineOut   1/8	 Black	Pres	1	  2	  [Jack] Line Out at Ext Rear - Black
Pin Default 0x01016011: Jack   extRear  LineOut   1/8	 Orange   Pres	1	  1	  [Jack] Line Out at Ext Rear - Orange
Pin Default 0x01012014: Jack   extRear  LineOut   1/8	 Grey	 Pres	1	  4	  [Jack] Line Out at Ext Rear - Grey
Pin Default 0x01a19850: Jack   extRear  MicIn	 1/8	 Pink	 Res3	5	  0	  [Jack] Mic at Ext Rear - Pink
Pin Default 0x02a19c60: Jack   extFront MicIn	 1/8	 Pink	 Res32   6	  0	  [Jack] Mic at Ext Front - Pink
Pin Default 0x0181305f: Jack   extRear  LineIn	1/8	 Blue	 Pres	5	  f	  [Jack] Line In at Ext Rear - Blue
Pin Default 0x02214c20: Jack   extFront HPOut	 1/8	 Green	Res32   2	  0	  [Jack] HP Out at Ext Front - Green
Pin Default 0x593301f0: No	 intAt	CD		ATAPI   Unknown  NoPress f	  0	  [N/A] CD at Int ATAPI - Unknown
Pin Default 0x4015e601: No	 extNA	Speaker   Optical White	Res21   0	  1	  [N/A] Speaker at Ext N/A - White
Pin Default 0x01456130: Jack   extRear  SPDIFo	Optical Orange   NoPress 3	  0	  [Jack] SPDIF Out at Ext Rear - Orange
Pin Default 0x411111f0: No	 extRear  Speaker   1/8	 Black	NoPress f	  0	  [N/A] Speaker at Ext Rear - Black

 

However, nodes 0x1d and 0x1f have a strange pinconfig and the Misc field also has some weird values set for a number of nodes. This is causing sound assertions. Looking at a ALC888 datasheet (the ALC1200 is just a ALC888), you can see that node 0x1d is actually a beep generator input and 0x1f is a SPDIF in, which is not connected on the Asus. For OS X the only values allowed for Misc are 0 in case of jack detection and 1 in case of no detection. So I change the SPDIF and internal nodes 01x11, 0x1c, 0x1d, 0x1e and 0x1f to 1 for Misc and the rest to 0. Furthermore, I changed the port connection and color of CD-in and the correct info for 0x1d and 0x1f.

Now if you use it like that, only the green line out will work. This is because Seq can not be anything other than 0 for OS X. So I change all Seq to 0 and make all Ass(ociastions) unique, except for Ass f, of which you can have as many as you'd like.

Other changes include: the green line out must be made speaker for auto switch with headphone to work, the CD-in and internal SPDIF are not integrated but jacks, and the color of the internal SPDIF and CD-in is set to black.

 

This results in:

					Port Con[2] Loc[6]   Device[4] Type[4] Color[4] Misc[4] Ass[4] Seq[4]
Node 0x11 PD 0x19431170: Jack   intAT	SPDIFo	ATAPI   Black	NoPres  7	  0	  [Jack] SPDIF Out at Int ATAPI - Black
Node 0x14 PD 0x01114010: Jack   extRear  Speaker   1/8	 Green	Pres	1	  0	  [Jack] Speaker at Ext Rear - Green
Node 0x15 PD 0x01011020: Jack   extRear  LineOut   1/8	 Black	Pres	2	  0	  [Jack] Line Out at Ext Rear - Black
Node 0x16 PD 0x01016030: Jack   extRear  LineOut   1/8	 Orange   Pres	3	  0	  [Jack] Line Out at Ext Rear - Orange
Node 0x17 PD 0x01012040: Jack   extRear  LineOut   1/8	 Grey	 Pres	4	  0	  [Jack] Line Out at Ext Rear - Grey
Node 0x18 PD 0x01a19080: Jack   extRear  MicIn	 1/8	 Pink	 Pres	8	  0	  [Jack] Mic at Ext Rear - Pink
Node 0x19 PD 0x02a190a0: Jack   extFront MicIn	 1/8	 Pink	 Pres	a	  0	  [Jack] Mic at Ext Front - Pink
Node 0x1a PD 0x01813090: Jack   extRear  LineIn	1/8	 Blue	 Pres	9	  0	  [Jack] Line In at Ext Rear - Blue
Node 0x1b PD 0x02214050: Jack   extFront HPOut	 1/8	 Green	Pres	5	  0	  [Jack] HP Out at Ext Front - Green
Node 0x1c PD 0x193311f0: Jack   intAt	CD		ATAPI   Black	NoPress f	  0	  [Jack] CD at Int ATAPI - Black
Node 0x1d PD 0x50ff01f0: No	 intNA	Other	 Other   Unknown  NoPress f	  0	  [N/A] Other at Int N/A - Unknown
Node 0x1e PD 0x01456160: Jack   extRear  SPDIFo	Optical Orange   NoPress 6	  0	  [Jack] SPDIF Out at Ext Rear - Orange
Node 0x1f PD 0x50c001f0: No	 intNA	SPDIFi	Unknown Unknown  NoPress f	  0	  [N/A] Speaker at Ext Rear - Black

 

Adding the node codec verb gives:

01471c10 01471d40 01471e11 01471f01 
01571c20 01571d10 01571e01 01571f01 
01671c30 01671d60 01671e01 01671f01 
01771c40 01771d20 01771e01 01771f01 
01871c80 01871d90 01871ea1 01871f01 
01a71c90 01a71d30 01a71e81 01a71f01 
01b71c50 01b71d40 01b71e21 01b71f02 
01971ca0 01971d90 01971ea1 01971f02 
01e71c60 01e71d61 01e71e45 01e71f01 
01171c70 01171d11 01171e43 01171f19 
01c71cf0 01c71d11 01c71e33 01c71f19 
01d71cf0 01d71d01 01d71eff 01d71f50 
01f71cf0 01f71d01 01f71ec0 01f71f50

 

Note, that the order has changed, because this is the order that they show up in System Profiles and I liked this order.

So, that is the codecverb that I added to the attached LegacyAppleHDAController.kext. How to do that you can find in the other guides.

 

Now for the pathmaps:

Go back to the codec dump. For each output pin complex look at the connections (with a star). For node 0x14, the connection is 0x0c, which is a mixer node. That node must be connected to a output node, in our case node 0x02. SPDIF outputs have no mixer node and a digital output node.

This gives us:

Node 0x11/17 (PinD)  -						  Node 0x10/16 (OutputD)	[Jack] SPDIF Out at Int ATAPI - Black
Node 0x14/20 (PinIO) - Node 0x0c/12 (MixerIO) - Node 0x02/02 (Output)	 [Jack] Speaker at Ext Rear - Green
Node 0x15/21 (PinIO) - Node 0x0d/13 (MixerIO) - Node 0x03/03 (Output)	 [Jack] Line Out at Ext Rear - Black
Node 0x16/22 (PinIO) - Node 0x0e/14 (MixerIO) - Node 0x04/04 (Output)	 [Jack] Line Out at Ext Rear - Orange
Node 0x17/23 (PinIO) - Node 0x0f/15 (MixerIO) - Node 0x05/05 (Output)	 [Jack] Line Out at Ext Rear - Grey
Node 0x1b/27 (PinIO) - Node 0x26/38 (MixerIO) - Node 0x25/37 (Output)	 [Jack] HP Out at Ext Front - Green
Node 0x1e/30 (PinD)  -						  Node 0x06/06 (OutputD)	[Jack] SPDIF Out at Ext Rear - Orange

 

For the inputs it is the other way around, start with a input node and follow the connections to the pin complex:

Node 0x18/24 (PinIO) - Node 0x26/22 (MixerI)  - Node 0x09/09 (InputI)	 [Jack] Mic at Ext Rear - Pink
Node 0x19/25 (PinIO) - Node 0x26/22 (MixerI)  - Node 0x09/09 (InputI)	 [Jack] Mic at Ext Front - Pink
Node 0x1a/26 (PinIO) - Node 0x23/35 (MixerI)  - Node 0x08/08 (InputI)	 [Jack] Line In at Ext Rear - Blue
Node 0x1c/28 (Pin)														[N/A] CD at Int ATAPI - Black
Node 0x1d/29 (Pin)														[N/A] Other at Int N/A - Unknown
Node 0x1f/31 (PinD)  - Node 0x0a/10 (InputD)							  [N/A] Speaker at Ext Rear - Black

The front and rear mic share the same mixer and input nodes, so only one of them can be active at the same time. This is because there are only two input nodes we can use.

You can see that node 0x07 [Vendor Defined Widget], 0x0b [Audio Mixer], 0x12 [Vendor Defined Widget], 0x13 [Vendor Defined Widget], 0x20 [Vendor Defined Widget], 0x21 [Vendor Defined Widget], 0x22 [Audio Mixer], and 0x24 [Vendor Defined Widget] are unused.

I tried to use the same nodes from line-in for cd-in, but that did not work.

 

For LegacyAppleHDAPlatformDriver.kext under layouts I have:

<key>Layouts</key>
<array>
<dict>
	<key>LayoutID</key>
	<integer>888</integer>
	<key>PathMapRef</key>
	<array>
		<dict>
			<key>CodecID</key>
			<array>
				<integer>283904136</integer>
			</array>
			<key>Headphone</key>
			<dict></dict>
			<key>Inputs</key>
			<array>
				<string>LineIn</string>
				<string>Mic</string>
			</array>
			<key>IntSpeaker</key>
			<dict></dict>
			<key>LineIn</key>
			<dict></dict>
			<key>LineOut</key>
			<dict>
				<key>MuteGPIO</key>
				<integer>1</integer>
			</dict>
			<key>Mic</key>
			<dict>
				<key>SignalProcessing</key>
				<dict>
				...
				</dict>
			</dict>
			<key>Outputs</key>
			<array>
				<string>IntSpeaker</string>
				<string>Headphone</string>
				<string>LineOut</string>
				<string>SPDIFOut</string>
			</array>
			<key>PathMapID</key>
			<integer>888</integer>
			<key>SPDIFOut</key>
			<dict/>
		</dict>
		<dict>
			<key>CodecID</key>
			<array>
				<integer>282984455</integer>
			</array>
			<key>HDMI</key>
			<dict/>
			<key>Outputs</key>
			<array>
				<string>HDMI</string>
			</array>
			<key>PathMapID</key>
			<integer>282984455</integer>
		</dict>
	</array>
</dict>

 

Some notes here: CodecID is for ALC888. IntSpeaker is needed or else OS X will not boot. LineOut needs a MuteGPIO to get rid of a pathmap assertion error. The signal processing is for ambient noise reduction for the mic (copied from another layout). The second layout dict is for HDMI, which is not working, but this reduces the number of assertion errors.

 

Now for the pathmaps itself: It is layered into three levels of <array> tags. The first level contains all the audio inputs and outputs of that pathmap. The second level groups inputs and outputs that you want to autoswitch, so I put LineOut and HeadPhones together and the two Mics. The third level is unknown, I thought it was for multichannel audio, but I did not get it to work. Then the nodes from above are contained in seperate dicts in the same order. So for digital it is only:

<array>
<array>
	<array>
		<dict>
			<key>NodeID</key>
			<integer>30</integer>
		</dict>
		<dict>
			<key>NodeID</key>
			<integer>6</integer>
		</dict>
	</array>
</array>
</array>

 

Analog nodes also have amp info for the mixer node, which I kept as standard, so for LineOut:

<dict>
<key>NodeID</key>
<integer>20</integer>
</dict>
<dict>
<key>Amp</key>
<dict>
	<key>Channels</key>
	<array>
		<dict>
			<key>Bind</key>
			<integer>1</integer>
			<key>Channel</key>
			<integer>1</integer>
		</dict>
		<dict>
			<key>Bind</key>
			<integer>2</integer>
			<key>Channel</key>
			<integer>2</integer>
		</dict>
	</array>
	<key>MuteInputAmp</key>
	<true/>
	<key>PublishMute</key>
	<true/>
	<key>PublishVolume</key>
	<true/>
	<key>VolumeInputAmp</key>
	<false/>
</dict>
<key>NodeID</key>
<integer>12</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>2</integer>
</dict>

 

Mic nodes have some extra info, ProcessingState for the signal processing, Boost for amplification and VREF for the reference voltage from the datasheet:

<dict>
<key>Amp</key>
<dict>
...
</dict>
<key>NodeID</key>
<integer>9</integer>
<key>ProcessingState</key>
<true/>
</dict>
<dict>
<key>NodeID</key>
<integer>34</integer>
<key>Boost</key>
<integer>3</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>24</integer>
<key>VREF</key>
<integer>80</integer>
</dict>

 

This is all the info you need to construct the LegacyAppleHDAPlatformDriver.kext attached.

 

Now some guides say you don't have to edit AppleHDA.kext. This is fine for analog audio as that all works. However, you can also find that digital AC-3 or DTS pass-through does not work without binary patching AppleHDA.kext. I can confirm this. So download HexEdit, find 8508EC10 and change to 8808EC10 twice for the AppleHDA binary and it works. Patched, but otherwise unmodified, 10.5.6 AppleHDA.kext attached.

Another problem is that you can only have four unshared inputs and outputs. So I commented out the pathmaps four the fourth (rear speakers) line-out and the internal SPDIF.

 

I hope some people will be able to learn from this. Let me know if the inputs work or if you fix HDMI or CD-in...

 

p.s. for some reason the LegacyAppleHDA*.kexts did not work when in my /Extra/Extensions folder. Not even for an mkext. So I put them in /S/L/E. I don't known why it didn't work, but I did not try very hard.

 

 

 

if your using the windows osi you dont have to fix the hpet since it works already.

 

Yep, that is what I tried to say :)

 

also Signal64 is working on the audio, where just about all ports work w/ jack sense and audio thru hdmi!

 

-D-

 

Wow, looking forward to finding out how Signal64 got the hdmi to work!

LegacyAppleHDAController.kext.zip

LegacyAppleHDAPlatformDriver.kext.zip

AppleHDA.kext.zip

Share this post


Link to post
Share on other sites

hy.. may I ask 1 question about tipical ps2 problem?

 

after the welcom screen.. I've the windows with Keyboard not present.

 

then, I tried to put appleps2fix kext and appleps2controller.kext..

1st in E/E and then in S/L/E.. boot with -f

 

but the same window!

 

shall I think it's due to another error or not correct driver of motherboard or am I forgiving some (most tipical) issues that I can't solve?

 

thanks for a little -bit- help!!

Share this post


Link to post
Share on other sites

hy

I've attached the hdd to another machine.. run with -f

then rebooted into the p5n7a-vm machine.. but it say that can't resolve com.jmicronata..

 

what I must do to solve that?

 

thanks!!

Share this post


Link to post
Share on other sites
So here are my notes on getting the audio to work.

 

Hey Frodo, ever since I implemented your new DSDT and audio stuff, sleep stopped working. Did I miss something? Also, do I still need SMBIOSEnabler? Or is that extra now?

Share this post


Link to post
Share on other sites
Hey Frodo, ever since I implemented your new DSDT and audio stuff, sleep stopped working.

 

i found that using a patched dsdt from the newest bios kills the sleep, that's why i use a dsdt from 2 bios revisions back.

 

-D-

Share this post


Link to post
Share on other sites

Interesting. I found that installing FrodoKenny's work without being careful to read and properly backup results in hosing your system and eating up a few hours of your evening.

 

I'm patiently waiting for 5.1 sound. Everything else is gravy.

Share this post


Link to post
Share on other sites
Hey Frodo, ever since I implemented your new DSDT and audio stuff, sleep stopped working. Did I miss something? Also, do I still need SMBIOSEnabler? Or is that extra now?

 

Don't know, sleep is working fine here. Nothing is done with the SMBIOS, so you need the enabler for the system profiler info. I'm not using any SMBIOS enabler though...

 

i found that using a patched dsdt from the newest bios kills the sleep, that's why i use a dsdt from 2 bios revisions back.

 

-D-

 

Maybe it's a bios mismatch problem then. The patched dsdt I posted is from bios 0407. I have not tested it with other bios versions.

 

 

Interesting. I found that installing FrodoKenny's work without being careful to read and properly backup results in hosing your system and eating up a few hours of your evening.

 

I'm patiently waiting for 5.1 sound. Everything else is gravy.

 

Can you add some more info about what went wrong? Maybe I can add some warnings to the post...

5.1 sound working fine here (actually 3x2, I did not create an aggregate device), must be something. Check the kext permissions and rebuilt your caches.

Share this post


Link to post
Share on other sites
Can you add some more info about what went wrong? Maybe I can add some warnings to the post...

5.1 sound working fine here (actually 3x2, I did not create an aggregate device), must be something. Check the kext permissions and rebuilt your caches.

 

FrodoKenny,

 

I used Uinstaller to install the kexts in my system with the new DSDT and didn't pay proper attention. Later I saw I failed to remove NVkush. Maybe that did it. I was careless in my updating and in trying to get back to a stable system, which made things worse.

 

If you want to add a warning, maybe something like: Pay attention and read. Don't be like me(Eastwind). :rolleyes:

 

Maybe call out the kexts you need to remove?

 

I'll give it another shot, but I'll do the kexts one at a time for compatibility. Then I'll try the DSDT. That way if something goes awry, it'll be easier to revert back and know where a problem might lie.

Share this post


Link to post
Share on other sites

FrodoKenny -

 

What happened to your great post about DSDT?

 

Also having trouble with sleep and proper shutdown on this end...

 

Can you let us know what hardware you are using...keyboard, mouse, SATA drives?

 

What BIOS, Kexts? Vanilla, retail, installed from real mac or hack?

 

All my installs, and I mean many, have resulted in Orange HD Icons, using -f in the plist to boot and lack of sleep (both the computer and me) and shutdown that results in the computer shutting down but the fans keep running.

 

I have installed NOPE 10.5.5 with the apple update to 10.5.6. I have installed my retail 10.5.6.

Uinstaller with necessary kext, bootloader, Diabloik DSDT (2/16)

 

BIOS is set to AHCI, no legacy USB support.

Current hardware P5N7A-VM BIOS 4.07

SATA Burner and SATA HD

Have tried wireless keyboard & mouse (logitech), PS2 keyboard with PS2 kexts

 

I keep hearing how compatible this ASUS is but I am not 100% yet.

 

Any ideas.

Share this post


Link to post
Share on other sites
FrodoKenny -

 

What happened to your great post about DSDT?

 

Also having trouble with sleep and proper shutdown on this end...

 

Can you let us know what hardware you are using...keyboard, mouse, SATA drives?

 

What BIOS, Kexts? Vanilla, retail, installed from real mac or hack?

 

All my installs, and I mean many, have resulted in Orange HD Icons, using -f in the plist to boot and lack of sleep (both the computer and me) and shutdown that results in the computer shutting down but the fans keep running.

 

I have installed NOPE 10.5.5 with the apple update to 10.5.6. I have installed my retail 10.5.6.

Uinstaller with necessary kext, bootloader, Diabloik DSDT (2/16)

 

BIOS is set to AHCI, no legacy USB support.

Current hardware P5N7A-VM BIOS 4.07

SATA Burner and SATA HD

Have tried wireless keyboard & mouse (logitech), PS2 keyboard with PS2 kexts

 

I keep hearing how compatible this ASUS is but I am not 100% yet.

 

Any ideas.

 

I haven't been able to get sleep or shutdown working on this board either. And correct me if I'm wrong, but I'm pretty sure the orange icon issue is something you'll experience with any hackintosh. Just give your hard drives custom icons or the default internal icons and they'll always stay that way, unless you erase or repartition them. I installed an orange icon fix when I first installed OS X on mine, but my transfer speeds became horrible.

Share this post


Link to post
Share on other sites

all bells and whistles work on my board. sleep, shutdown, restart, everything. only thing im waiting on is a proper fix for audio. i use the frodokenny pinouts just for digital out. Signal64 has been painfully hacking away at the sound to get everything basically working, (hdmi audio out, front panel and all other fun), few more issues to figure out tho.

 

-D-

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×