Jump to content

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


  • Please log in to reply
88 replies to this topic

#41
Aesop69

Aesop69

    InsanelyMac Protégé

  • Members
  • PipPip
  • 63 posts
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.insanelym...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.

#42
dacheat

dacheat

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts

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.insanelym...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

Attached Files



#43
Dith

Dith

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
  • Gender:Male
  • Location:Netherlands
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
							},


#44
callumj09

callumj09

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 115 posts

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!

#45
Dith

Dith

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
  • Gender:Male
  • Location:Netherlands

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.

#46
AppleIIGuy

AppleIIGuy

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 349 posts
  • Gender:Male
  • Location:San Diego, CA
I gave up on working ALC888 on my UD3r and bought a Griffin Firewave

#47
Dith

Dith

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
  • Gender:Male
  • Location:Netherlands

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.

Attached Files



#48
callumj09

callumj09

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 115 posts
Glad to see you got it working. And that's a great guide by the way, nice work!

#49
thiathias

thiathias

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 264 posts
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 ?

#50
Dith

Dith

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
  • Gender:Male
  • Location:Netherlands

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. ;)

#51
ryansimms

ryansimms

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts
  • Gender:Male
  • Location:Brooklyn

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 Patcher

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 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 rebuild caches and reboot.

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


Thanks Dith,
These instruction got sound working on my UD3R as well. I couldn't get the Patcher to which you linked to work, but I achieved the same end using an app called DSDTSE. Also, it looks like the three audio kexts you provided work just as well from /Extra as from S/L/E for the OCD types like me that hate to put anything in S/L/E that doesn't have to be there.

Ryan

#52
parcival39

parcival39

    InsanelyMac Protégé

  • Members
  • PipPip
  • 58 posts
Hi all,
Need your assistance.
I do not find the correct place for ACL888 (dsdt.dsl). My MoBo am an p5e ws-pro and have ACL-888
8 channel. Can someone extend my dsdt.dsl by ACL888? ;)

Many thanks for each assistance. :D

parcival

my dsdt.dsl:
Attached File  dsdt_fixed.dsl.zip   25.45KB   28 downloads

#53
Dith

Dith

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
  • Gender:Male
  • Location:Netherlands

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

Device (HDEF)
			{
			........
	}
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 ?

To be honest I don't know, but you can always try. I believe CPARM is running a different motherboard(it's his device hdef section) so it might work for you. Just follow the instructions and build your own DSDT and patch it according to the instructions, if you do not find HDEF or Azal definitions in your dsdt_fixed it probably won't work.

I should mention there's a good chance it will work as the PDF with patching instructions upon which my post is based lists the ALC888 for Gigabyte motherboards and does not distinguish between different Gigabyte boards. However I can not say for certain and it's something you should try.

Just make sure you backup your original DSDT.aml so you can always place it back using single mode boot(-s) if it refuses to boot.

Thanks Dith,
These instruction got sound working on my UD3R as well. I couldn't get the Patcher to which you linked to work, but I achieved the same end using an app called DSDTSE. Also, it looks like the three audio kexts you provided work just as well from /Extra as from S/L/E for the OCD types like me that hate to put anything in S/L/E that doesn't have to be there.

Ryan

Alright good to hear, I'll add it to my original post. I just downloaded the patcher(DSDT_Patcher1.0.1e) myself and ran it, works fine for me. My original instructions didn't mentioned the dsdt_fixed.txt is located in the Debug directory so I tweaked the instructions some more.

EDIT: Amazing I just used 1.0.1e and it automatically fixes HDEF, LAN and CMOS Reset so it seems. I will have to tweak my instructions. I'm kind of baffled by it. Perhaps it's because I'm running a patched DSDT already. Yup, seems to be because my DSDT is already patched.

Hi all,
Need your assistance.
I do not find the correct place for ACL888 (dsdt.dsl). My MoBo am an p5e ws-pro and have ACL-888
8 channel. Can someone extend my dsdt.dsl by ACL888? :rolleyes:

Many thanks for each assistance. :D

parcival

my dsdt.dsl:
Attached File  dsdt_fixed.dsl.zip   25.45KB   28 downloads

I viewed your dsdt_fixed.dsl and I'm not finding any Azal/HDEF entries. So the instructions won't work for you. I can not help you further as I have only figured it out for my EX58-UD3R using the patching instructions and cparm's device(HDEF).

#54
virtudude

virtudude

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts

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.


Do you have 5.1 working? I tried your DSL modifications and kexts but I end up with one output for each channel.

So, I have something in Sound Preferences called "Line Out" which appears to be my front 2 speakers which are plugged into green, and something called "Internal Speakers" which appears to be my back 2 speakers plugged into black. They're both analog. I can switch between them and hear it go from front-only to back-only.

Any idea how make both of them into one output?

Thanks.

#55
Dith

Dith

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
  • Gender:Male
  • Location:Netherlands

Do you have 5.1 working? I tried your DSL modifications and kexts but I end up with one output for each channel.

So, I have something in Sound Preferences called "Line Out" which appears to be my front 2 speakers which are plugged into green, and something called "Internal Speakers" which appears to be my back 2 speakers plugged into black. They're both analog. I can switch between them and hear it go from front-only to back-only.

Any idea how make both of them into one output?

Thanks.

I wish I could help you, I only compiled the instructions from different sources, so I'm nowhere near to understanding how all this works exactly. What I think though is that this has to do with the PIN configuration section. But I'm not certain about that.

You can try replacing the Pin Configuration with the information from "How to patch DSDT with LAN and HDEF functions.pdf" see below:
"PinConfigurations", 
							Buffer (0x28)
							{
								/* 0000 */	0x10, 0x90, 0xA1, 0x01, 0x20, 0x90, 0xA1, 0x02, 
								/* 0008 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02, 
								/* 0010 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x40, 0x01, 0x01, 
								/* 0018 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01, 
								/* 0020 */	0x70, 0x61, 0x4B, 0x01, 0xA0, 0x01, 0xCB, 0x01
							},
I would advise you to backup your DSDT.aml though.

I use the single Stereo line-out to my Logitech Z-5500 control pod myself.

#56
callumj09

callumj09

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 115 posts

Do you have 5.1 working? I tried your DSL modifications and kexts but I end up with one output for each channel.

So, I have something in Sound Preferences called "Line Out" which appears to be my front 2 speakers which are plugged into green, and something called "Internal Speakers" which appears to be my back 2 speakers plugged into black. They're both analog. I can switch between them and hear it go from front-only to back-only.

Any idea how make both of them into one output?

Thanks.


I'm no expert but I would imagine it would take quite a lot of tweaking to get 5.1 working correctly. I would assume cparm's pin configuration is fairly standardised and would work across many boards using ALC888, but was probably only intended for a few specific boards. It also wouldn't surprise me if those configs were only intended for 2 channel audio. Saying that, most boards do have at least 6 channel audio nowadays...

#57
rizzopro

rizzopro

    InsanelyMac Protégé

  • Members
  • PipPip
  • 60 posts
Hi,
I have a gigabyte ga-ep45-ds3l mobo and have tried everything I could find on this website to get the audio to work in SL.
Im a very hands on type of guy and have tried every kext and recommendation I could find and still no audio..it shows up in about this mac ...
Intel High Definition Audio:

Device ID: 0x1458A002
Audio ID: 12
Available Devices:
Line Out:
Connection: 1/8-Inch Jack
External Microphone:
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
but does not show up in audio/midi or settings. I think I'm close but don't really know.I am really trying but need help..is there an EASY (some are and some arnt)to follow guide for setting up audio on this mobo with alc888 audio chip? any help or pointers would be appreciated as I would love to use the optical out to my amp. I have another gigabyte system that I upgraded to 10.6.1 and all audio working fine.
Thanks in Advance for any pointers!!

#58
MACinized

MACinized

    Addicted to InsanelyMac

  • Members
  • PipPipPipPipPipPipPip
  • 559 posts
  • Gender:Male
  • Location:OSx86 Community

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 :thumbsup_anim:
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.

wooow...! now i got mic-in working with snowleo! my alc888 audio onboard my ep31-ds3l board works great!

tnx a lot Dith for the guide.

but allow me to still ask though. in patching/compiling my dsdt, i get these two errors:
./dsdt_fixed.txt   321:			 Store (Local0, Local0)
Error	4050 -								 ^ Method local variable is not initialized (Local0)

./dsdt_fixed.txt   326:			 Store (Local0, Local0)
Error	4050 -								 ^ Method local variable is not initialized (Local0)

ASL Input:  ./dsdt_fixed.txt - 4684 lines, 153170 bytes, 1671 keywords
AML Output: ./dsdt.aml - 14119 bytes, 539 named objects, 1132 executable opcodes

Compilation complete. 2 Errors, 0 Warnings, 0 Remarks, 36 Optimizations
would u have an idea how to fix it?

#59
VCH888

VCH888

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 585 posts

wooow...! now i got mic-in working with snowleo! my alc888 audio onboard my ep31-ds3l board works great!

tnx a lot Dith for the guide.

but allow me to still ask though. in patching/compiling my dsdt, i get these two errors:

./dsdt_fixed.txt   321:			 Store (Local0, Local0)
Error	4050 -								 ^ Method local variable is not initialized (Local0)

./dsdt_fixed.txt   326:			 Store (Local0, Local0)
Error	4050 -								 ^ Method local variable is not initialized (Local0)

ASL Input:  ./dsdt_fixed.txt - 4684 lines, 153170 bytes, 1671 keywords
AML Output: ./dsdt.aml - 14119 bytes, 539 named objects, 1132 executable opcodes

Compilation complete. 2 Errors, 0 Warnings, 0 Remarks, 36 Optimizations
would u have an idea how to fix it?


change both to Store ("Local0", Local0)

#60
rizzopro

rizzopro

    InsanelyMac Protégé

  • Members
  • PipPip
  • 60 posts

For the EP45-DS3L I swear by DSDT (Koalala's ACPI Patcher - Selecting Realtek ALC888-0, and checking HDEF box) then adding one of these attached LegacyHDA's, from tmongkol's thread, in to /E/E. Easy as that :)


Hi I'm using the same motherboard and have tried so many diff patches for dsdt plus kexts...still no go. is it possible you could post your alc888 patch from your dsdt file? Thanks!





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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