Jump to content

What method works best for ALC888 sound....?


kitmac
 Share

89 posts in this topic

Recommended Posts

Hey, wondering if anyone can help me out here. I have a GA-EX58-UD3R (Gigabyte) which as far as I believe uses the ALC888 codec (ICH10R chipset) and so far none of the kexts available from this thread have worked, that is, unless I've installed them to the wrong place... I'm using 32-bit Snow Leopard.

 

Where should the kexts be installed to? I assume they should all go to S/L/E, but then again I'm not entirely sure. I have also tried VoodooHDA.kext which doesn't work correctly for my board - so that option is ruled out.

 

I had a perfectly working set of kexts when I was running 10.5.8 so I'm quite annoyed that they haven't continued to work, but I thought I would upload them for anyone that's really eager to lend a hand in figuring this out.

 

https://dl.getdropbox.com/u/790162/UD3R_10.5_audio_kexts.zip

 

The above download is not Snow Leopard related, so please don't download for that reason!

 

I have looked into patching AppleHDA.kext for SL and patching DSDT (as cparm's post details) which I am way too much of a novice for.

 

If anyone could offer any help/guidance at all and I would be infinitely greatful. I could especially use some advice from people with the same board!

 

Thanks in advance!

Link to comment
Share on other sites

lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things :D

 

if this one work for you in 32bit, u can use vanilla snow leopard applehda , and my legacy kext, with dsdt or the kabyl HDAenabler for 64bit

 

You sir rock! I got it working. I had a few issues but I will show you my HDEF based on your snippit. You must put this in the entire area. I got errors with the code you gave but I figured it out. For the noobs like me:

			Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D, 
					0x05
				})
			}

		  Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"codec-id", 
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						}, 

						"layout-id", 
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						}, 

						"device-type", 
						Buffer (0x07)
						{
							"ALC888"
						}, 

						"PinConfigurations", 
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02, 
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01, 
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02, 
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01, 
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						}, 

						"reg", 
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02, 
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						}, 

						"platformFamily", 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}

			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 (One)
								{
									0x03
								}, Arg4)
							Return (One)
						}

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

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

 

Thanks again for getting me onboard sound!

 

Hey, wondering if anyone can help me out here. I have a GA-EX58-UD3R (Gigabyte) which as far as I believe uses the ALC888 codec (ICH10R chipset) and so far none of the kexts available from this thread have worked, that is, unless I've installed them to the wrong place... I'm using 32-bit Snow Leopard.

 

Where should the kexts be installed to? I assume they should all go to S/L/E, but then again I'm not entirely sure. I have also tried VoodooHDA.kext which doesn't work correctly for my board - so that option is ruled out.

 

I had a perfectly working set of kexts when I was running 10.5.8 so I'm quite annoyed that they haven't continued to work, but I thought I would upload them for anyone that's really eager to lend a hand in figuring this out.

 

https://dl.getdropbox.com/u/790162/UD3R_10.5_audio_kexts.zip

 

The above download is not Snow Leopard related, so please don't download for that reason!

 

I have looked into patching AppleHDA.kext for SL and patching DSDT (as cparm's post details) which I am way too much of a novice for.

 

If anyone could offer any help/guidance at all and I would be infinitely greatful. I could especially use some advice from people with the same board!

 

Thanks in advance!

 

I would use cparm's files and the code he posted to patch your dsdt.aml file. If you need help patching let me know I can point you in the right direction. I did not use VoodooHDA and working with vanilla AppleHDA.kext

 

Put these in your S/L/E folder and rebuild your kextcache with Kext Utility.

 

  • LegacyAppleHDAHardwareConfigDriver.kext
  • LegacyHDAController.kext
  • LegacyHDAPlatformDriver.kext
  • LegacyHDA.kext (not sure about this one)

 

Good Luck!

Link to comment
Share on other sites

here's from my dsdt:

			Device (AZAL)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x05, 
					0x05
				})
			}
		}

		Name (BUFA, ResourceTemplate ()
		{
			IRQ (Level, ActiveLow, Shared, )
				{3,4,5,6,7,9,10,11,12,14,15}
		})
		Name (BUFB, ResourceTemplate ()
		{
			IRQ (Level, ActiveLow, Shared, )
				{}
		})
		CreateWordField (BUFB, One, IRQV)

anyone who can help me how to proceed?

 

i'm using jinnggoff's patched applehda matched w/ the hdaenabler. sounds work better than voodoohda where audio is already shown as built-in and it doesn't get distorted after waking up from sleep. mic-in still won't work though.

 

@jinnggoff

 

do u have ur mic-in working?

Link to comment
Share on other sites

lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things ;)

 

...

 

Oops -- Sorry cparm -- I made a mistake. My audio works after adding the Legacy kexts to S/L/E. However, I can't help but notice that the sound is very harsh, kind of like it is being overdriven. Any ideas?

 

 

Thanks in advance!

Link to comment
Share on other sites

I would use cparm's files and the code he posted to patch your dsdt.aml file. If you need help patching let me know I can point you in the right direction. I did not use VoodooHDA and working with vanilla AppleHDA.kext

 

Put these in your S/L/E folder and rebuild your kextcache with Kext Utility.

 

  • LegacyAppleHDAHardwareConfigDriver.kext
  • LegacyHDAController.kext
  • LegacyHDAPlatformDriver.kext
  • LegacyHDA.kext (not sure about this one)

 

Good Luck!

 

Hey, I've just tried patching my DSDT using iaslMe but it's giving me errors. I did exactly what was said (search for AZAL, replace etc.) and added in the Device (HDEF) section... Here's the log.

 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

/Users/Callum/Desktop/DSDT.dsl   227:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -  Reserved method must return a value ^  (_WAK)

---

/Users/Callum/Desktop/DSDT.dsl  5080:					 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error	4063 -						Object does not exist ^  (DTGP)

---

ASL Input:  /Users/Callum/Desktop/DSDT.dsl - 5657 lines, 182353 bytes, 2216 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 20 Optimizations

 

Apparently this part:

 

					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)

 

Can anyone help me on this?

Link to comment
Share on other sites

you forgot to add Method DTGP :)

just add under HDEF, for example,

		
Device (HDEF)
  {
.....
  }

  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 (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

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

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

Link to comment
Share on other sites

Hey, I've just tried patching my DSDT using iaslMe but it's giving me errors. I did exactly what was said (search for AZAL, replace etc.) and added in the Device (HDEF) section... Here's the log.

 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

/Users/Callum/Desktop/DSDT.dsl   227:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -  Reserved method must return a value ^  (_WAK)

---

/Users/Callum/Desktop/DSDT.dsl  5080:					 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error	4063 -						Object does not exist ^  (DTGP)

---

ASL Input:  /Users/Callum/Desktop/DSDT.dsl - 5657 lines, 182353 bytes, 2216 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 20 Optimizations

 

Apparently this part:

 

					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)

 

Can anyone help me on this?

so u "natively" have both Device (AZAL) and Device (HDEF) in your dsdt?

Link to comment
Share on other sites

voodohda, efi strings, or tarugas patch....???

 

voodoo seems to work nicely until you put the machine to sleep.

Sound distortion upon wake .....

 

Tarugas patch gives me a KP as soon it patches applehda.kext

 

Not too familiar with the efi string method for sound.....

 

 

Here is what I found and use and there is no the crisp sound at the beginning

 

http://www.mediafire.com/download.php?gihnyzggy1z

 

it just work perfet, BUT first remove the same filename kext, before install this ones

 

 

cheers

Link to comment
Share on other sites

I had a hard time finding a working ALC888

My dsdt does not have AZA

 

I removed the AppleHDA from S/L/E and replaced with the one from this file.

http://www.insanelymac.com/forum/index.php...t=#entry1253650

 

I Also used the HDenabler from this file but nothing else.

 

worked for single line out only but i have sound now, better then none.

 

Try these. They work VERY well for my ALC1200 and the ALC888 is supposed to be almost (if not ) exactly the same.

Apparently a lot of other UNIX distro's use the same kernel module for both devices.

 

 

I get the following using these kexts. Sound is better than it was in Leopard.. in fact.. its superior to anything I have had running on the board (ASUS P6T-non-Deluxe)

Intel High Definition Audio:

 

Device ID: 0x10438357

Audio ID: 12

Available Devices:

S/P-DIF Out:

Connection: Internal

Line Out:

Connection: 1/8-Inch Jack

External Microphone:

Connection: 1/8-Inch Jack

Headphone:

Connection: 1/8-Inch Jack

S/P-DIF Out:

Connection: Combo

S/P-DIF In:

Connection: Combo

AppleHDA.kext.zip

LegacyHDA.kext.zip

Link to comment
Share on other sites

I've been trying to get my ALC888 (EX58-UD3R) to work using DSDT. However some things are still unclear to me, I've patched the DSDT with several Device (HDEF) lay-outs and tried multiple kexts to get it working but none resulted in working audio under Snow Leopard.

 

I hope someone here can direct me to information involved on discovering codec-id, layout-id, device-type, pinconfiguration addresses and layout information under Device (HDEF).

 

I assume my issue is caused by trying DSDT meant for other motherboards, I just have no clue on how to gather all this information myself.

 

				  "codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

				   "layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

				"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

Link to comment
Share on other sites

I've been trying to get my ALC888 (EX58-UD3R) to work using DSDT. However some things are still unclear to me, I've patched the DSDT with several Device (HDEF) lay-outs and tried multiple kexts to get it working but none resulted in working audio under Snow Leopard.

 

I hope someone here can direct me to information involved on discovering codec-id, layout-id, device-type, pinconfiguration addresses and layout information under Device (HDEF).

 

I assume my issue is caused by trying DSDT meant for other motherboards, I just have no clue on how to gather all this information myself.

 

				  "codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

				   "layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

				"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

 

The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

 

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!

Link to comment
Share on other sites

The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

 

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!

 

Yeah I tried it. It's good to hear someone with the board has it going, it gives me hope! :D

I'm going to give it another try and start from scratch!

 

At least I know I don't have to lookup all that information.

Link to comment
Share on other sites

The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

 

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!

 

I tried it once more without results.

 

Redid my whole Snow Leopard installation and rebuild the DSDT from scratch once more.

Now I'm up and running with audio, thanks callum and cparm :)

Would still love to know why it wouldn't work earlier as I'm pretty sure my current config is the same as the previous.

 

I have attached my DSDT.dsl which is using cparm's modified Device (HDEF) section, it also includes the CMOS reset fix. I'm not completely familiar with interchanging DSDT's on the same motherboard but it would be advised to build your own. This is working on EX58-UD3R with ALC888.

 

Required tool: DSDT_Patcher1.0.1e

 

In short the instructions are as following, partly provided by the "How to patch DSDT with LAN and HDEF functions".

Since I'm using Digital_Dreamers script to install Snow Leopard I ran the DSDT patcher option from the script.

I took dsdt_fixed.txt from X58_Mobo_Patcher_Installer/~extra/DSDT_Patcher/Debug/ directory and renamed it to DSDT.dsl.

 

If you do not have the script you will need to do the following yourself:

Download DSDT Patcher and unpack, open a terminal and navigate to the directory.

Execute:

./DSDT\ Patcher -newHPET

and press 0, you should now have a dsdt_fixed.txt in your Debug directory, rename to DSDT.dsl.

 

Open up DSDT.dsl and search for the line

Notify (\_SB.PCI0.USB0, Zero)

Make this section look as following(basically you add the Return (Package (0x02) { ... }:

		Notify (\_SB.PCI0.USB0, Zero)
	Notify (\_SB.PCI0.USB1, Zero)
	Notify (\_SB.PCI0.USB2, Zero)
	Notify (\_SB.PCI0.USB3, Zero)
	Notify (\_SB.PCI0.USB4, Zero)
	Notify (\_SB.PCI0.USB5, Zero)
	Return (Package (0x02)
			{
				 0x00, 
				 0x00
			})

 

Now search for AZAL and replace it with HDEF. In my case there are 2 instances.

First one:

			Notify (\_SB.PCI0.AZAL, 0x02)

Change this to:

			Notify (\_SB.PCI0.HDEF, 0x02)

 

Second one:

			Device (AZAL)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D, 
					0x05
				})
			}
		}

 

Replace with the following:

			Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D,
					0x05
				})
			}

			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

						"layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

						"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

						"platformFamily",
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

  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 (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

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

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

 

Unrelated to the audio but a must if you're going to run Snow Leopard is the CMOS Reset Fix. If you're using Digital_Dreamers install script this is already done, this should only be necessary if you manually run DSDT Patcher.

 

Search dsdt.dsl for

Device (RTC)

Change the 0x04 you can see under Name (ATT0, ResourceTemplate () and under Name (ATT1, ResourceTemplate () to 0x02

 

Final result in my case:

				Device (RTC)
			{
				Name (_HID, EisaId ("PNP0B00"))
				Name (ATT0, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // Length
						)
				})
				Name (ATT1, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // Length
						)
				})
				Method (_CRS, 0, NotSerialized)

 

Save and close DSDT.dsl

Open up a terminal and navigate to the directory, make sure you have the iasl executable from DSDT Patcher in the same directory and execute the command: ./iasl -sa DSDT.dsl

 

If everything went oke you should have no errors. Now copy DSDT.aml to your desired location, in my case this is /Extra. Place the included kext files in /S/L/E or /Extra, rebuild caches and reboot.

 

Kexts and Device (HDEF) thanks to CPARM and thanks to tmongkol for the patching instructions.

dsdt.dsl.zip

LegacyHDA_alc888_address_2__for_snow.zip

Link to comment
Share on other sites

I have a question : if i add the part of your dsdt related to audio :

   Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D,
					0x05
				})
			}

			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

						"layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

						"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

						"platformFamily",
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

  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 (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

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

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

is this related to only alc888 or it depends on your motherboard too ?

in fact, will this fix work on a different gigabyte mobo but with alc888 sound chipset ?

Link to comment
Share on other sites

Glad to see you got it working.

 

DSDT/Kexts seem to have improved the volume as well compared to my 10.5.7 install. Slightly louder now so I don't have to crank up the speakers as much anymore.

 

And that's a great guide by the way, nice work!

Thanks! It was just a matter of gathering all the information. The credited people in my post did all the hard work. ;)

Link to comment
Share on other sites

 Share

×
×
  • Create New...