Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,908 posts in this topic

Recommended Posts

YES turns out it's not the iPhone 3Gs nor OSX86.. but what could be the culprit?
Hmmm now that does sound like a problem. I would try another computer all together. That way you could rule out the cable or the iPhone.

 

FYI, I tested and all my iPhones/iPods charge fine as well.

Link to comment
Share on other sites

Hmmm now that does sound like a problem. I would try another computer all together. That way you could rule out the cable or the iPhone.

 

FYI, I tested and all my iPhones/iPods charge fine as well.

 

indeed but what's causing it? i know now that it's not dsdt related (sorry mods for the OT) nor OSX86 since it's also not working on a same machine/hard drive running Win7 64bit..

 

now for the testing i've done quite a few already

 

4 machines

 

1: ES2L mobo 10.6.2 and WIN764bit w/ bios F8/F9/F10 tested

2: uni Macbook Pro

3: Mac Mini

4: HP mini netbook 2140 Win7 32bit

 

3 Apple original USB cable (2 USB cable came from the iPhone and 1 cable from iPod)

 

3 Apple Device

 

1: 32GB 3gs

2: 8gb 2G classic

3: iPod classic 160GB

 

RESULTs:

 

every machine, device and USB cables works except on my OSX86 hack (es2l mobo).. so i'm positively sure it's not the cables.. now what do you think? my motherboard has a somewhat defective USB and it only occurs on the 3Gs iPhone? did some googling too (here) and saw some having the same "charging not supported with this accessory" problem but they were related to their USB cables..

 

@ all - opinions are very much welcome :( and to the mods, i know this is already OT so feel free to delete this post if it deems necessary.

Link to comment
Share on other sites

I don't understand, my vcore vary only a little around the value fixed in Bios and not like i want.

However the 4 steps work well (6x, 7x, 8x, 9x).

 

Here's my definition of my P and C-State:

	Scope (_PR)
  {
	  Processor (CPU0, 0x00, 0x00000410, 0x06)
	  {
		  Name (_CST, Package ()
		  {
			One,  // 1 C-State: C1E
			Package () { ResourceTemplate () { Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,) }, One, One, 0x03E8 },
		  })

		  Name (_PSS, Package() // Performance States (FSB: 380Mhz)
		  {
			  Package () { 3420, 0xFDE8, 10, 10, 0x939, Zero }, // 3,42Ghz 9x 
			  Package () { 3040, 0xD6D8, 10, 10, 0x830, One  }, // 3,04Ghz 8x 
			  Package () { 2660, 0xAFC8, 10, 10, 0x725, 2	}, // 2,66Ghz 7x 
			  Package () { 2280, 0x8CA0, 10, 10, 0x61B, 3	}, // 2,28Ghz 6x 
		  })

		  Name (_PSD, Package (One) // P-State Dependency
		  {
			  Package() { 5, Zero, Zero, 0xFC, 4 } // 5 entries, Revision 0, Domain 0,
												   // OSPM Coordinate Initiate on ALL Proc,
												   // 4 Procs
		  })

		  Method (_PPC, 0, NotSerialized) // Performance Present Capabilities Method
		  {
			  Return (Zero)  // All _PSS States Available
		  }

	  }

	  Processor (CPU1, 0x01, 0x00000410, 0x06)
	  {
		  Alias (^CPU0._CST, _CST)
		  Alias (^CPU0._PSS, _PSS)
		  Alias (^CPU0._PSD, _PSD)
		  Alias (^CPU0._PPC, _PPC)
	  }

	  Processor (CPU2, 0x02, 0x00000410, 0x06)
	  {
		  Alias (^CPU0._CST, _CST)
		  Alias (^CPU0._PSS, _PSS)
		  Alias (^CPU0._PSD, _PSD)
		  Alias (^CPU0._PPC, _PPC)
	  }

	  Processor (CPU3, 0x03, 0x00000410, 0x06)
	  {
		  Alias (^CPU0._CST, _CST)
		  Alias (^CPU0._PSS, _PSS)
		  Alias (^CPU0._PSD, _PSD)
		  Alias (^CPU0._PPC, _PPC)
	  }
  }

 

Can someone help me to resolve my problem ?

Link to comment
Share on other sites

indeed but what's causing it? i know now that it's not dsdt related (sorry mods for the OT) nor OSX86 since it's also not working on a same machine/hard drive running Win7 64bit..

 

now for the testing i've done quite a few already

 

4 machines

 

1: ES2L mobo 10.6.2 and WIN764bit w/ bios F8/F9/F10 tested

2: uni Macbook Pro

3: Mac Mini

4: HP mini netbook 2140 Win7 32bit

 

3 Apple original USB cable (2 USB cable came from the iPhone and 1 cable from iPod)

 

3 Apple Device

 

1: 32GB 3gs

2: 8gb 2G classic

3: iPod classic 160GB

 

RESULTs:

 

every machine, device and USB cables works except on my OSX86 hack (es2l mobo).. so i'm positively sure it's not the cables.. now what do you think? my motherboard has a somewhat defective USB and it only occurs on the 3Gs iPhone? did some googling too (here) and saw some having the same "charging not supported with this accessory" problem but they were related to their USB cables..

 

@ all - opinions are very much welcome :( and to the mods, i know this is already OT so feel free to delete this post if it deems necessary.

I would post your current DSDT and your original.
Link to comment
Share on other sites

Yes, Gigabyte even offers a program with which you can replace the original boot logo from bios with your own logo.

updated images in response to Master Chief & mm67 ... though the subject is only tangential to this thread's subject ...

 

Here are two 8-bit/256-color 640 by 480 images.

black w/ white apple, color BIOS hotkeys - .bmp

grey w/ black apple, color BIOS hotkeys - .bmp

appleblack640x480-withBIOSoptionsv3.png

applegray640x480-withBIOSoptionsv4.png

Note: Don't use the png images that are visible just above - they are only eye candy for the page - so folks can see the images. Face_wizard and gigabyte boards require the bmp type image - download the bitmap .bmp files from the links above the pictures.

 

I have gone for the black image, myself ... to each, their own.

Link to comment
Share on other sites

I finally manage to get myself a mac mini as per my signature but i got to tell you that my hackintosh is much faster than my mac mini but since i need a stable system for my studies i decided to get a mac mini. I will try to keep an eye on this forum particularly this thread for the latest development on DSDT fixes for the gigabyte board.

 

Keep up the good work guys. You know who you are.

 

Regards.

Link to comment
Share on other sites

updated images in response to Master Chief & mm67 ... though the subject is only tangential to this thread's subject...

Please note that I removed the 256KB stock Asus boot logo from my BIOS and now use this memory spot for my new boot loader aka Revolution.

 

Notes: boot1 is no more and boot0 is replaced by a much simpler jump starter (currently loaded from USB stick). I also stripped boot2 to a bare minimum, simply because I don't need graphics and menu stuff.

 

For the experts here: Get the exact length and spot of your post BIOS logo, so that you can replace it with a new boot loader. First remove it and fill this spot with zeros (00) to see if you need a checksum or not. My Asus board (BIOS) doesn't require it, making it a lot easier, but your millage may vary.

 

p.s. What I did was to extract the logo file with a freely available BIOS tool, which helped me to locate the exact location/length of the logo in my P5K PRO BIOS (1303).

Link to comment
Share on other sites

Please note that I removed the 256KB stock Asus boot logo from my BIOS and now use this memory spot for my new boot loader aka Revolution.

 

Does that mean that the Revolution bootloader is to be hard coded into the Bios?

If so what are the advantages of that? Speed? Eliminate issues with other OS's?

 

p.s.

good to hear from you again, hope the move went well.

 

EDIT:

Done a bit of research, according to this post a minimal dsdt is hard coded into BIOS and all additions and fixes added via a ssdt file added on boot right?

Link to comment
Share on other sites

Hi all, i have a problem

the voltage of my cores not change but frequencies change.

I used Mark-i to display my vcore but change only from 1.408 to 1.448 (near the voltage i set in my bios).

 

in attachement my dsdt. I have used many different dsdt but i have always the same effet.

I use DropSSDT in my com.apple.boot.plist.

dsdt.dsl.zip

Link to comment
Share on other sites

Excuse my ignorance, but between (Device) IDE2 (which I've now removed) and (Device) SBUS I have the following code, I don't see this in the other DSDTs I'm using to compare with. What is it for?

 

Thanks in advance.

 

Method (GTM, 6, NotSerialized)
           {
               Store (Buffer (0x14) {}, Local0)
               CreateDWordField (Local0, Zero, PIO0)
               CreateDWordField (Local0, 0x04, DMA0)
               CreateDWordField (Local0, 0x08, PIO1)
               CreateDWordField (Local0, 0x0C, DMA1)
               CreateDWordField (Local0, 0x10, FLAG)
               Store (0x10, FLAG)
               If (LOr (And (Arg0, 0x08), LNot (And (Arg0, One
                   ))))
               {
                   Store (0x0384, PIO0)
               }
               Else
               {
                   Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                       Arg0, 0x3000), 0x0C), Local1)
                   Multiply (Subtract (0x09, Local1), 0x1E, PIO0)
               }

               If (LOr (LAnd (Arg0, 0x4000), LAnd (Arg2, One)))
               {
                   If (LOr (And (Arg0, 0x80), LNot (And (Arg0, 0x10
                       ))))
                   {
                       Store (0x0384, PIO1)
                   }
                   Else
                   {
                       Add (And (Arg1, 0x03), ShiftRight (And (Arg1, 0x0C), 
                           0x02), Local1)
                       Multiply (Subtract (0x09, Local1), 0x1E, PIO1)
                   }
               }
               Else
               {
                   Store (PIO0, PIO1)
               }

               If (And (Arg2, One))
               {
                   Subtract (0x04, And (Arg3, 0x03), Local1)
                   If (And (Arg5, One))
                   {
                       Store (0x14, DMA0)
                   }
                   Else
                   {
                       If (And (Arg4, One))
                       {
                           Multiply (Local1, 0x0F, DMA0)
                       }
                       Else
                       {
                           Multiply (Local1, 0x1E, DMA0)
                       }
                   }
               }
               Else
               {
                   Store (PIO0, DMA0)
               }

               If (LOr (LAnd (Arg0, 0x4000), LAnd (Arg2, One)))
               {
                   If (And (Arg2, 0x02))
                   {
                       Subtract (0x04, ShiftRight (And (Arg3, 0x30), 0x04), Local1)
                       If (And (Arg5, 0x02))
                       {
                           Store (0x14, DMA1)
                       }
                       Else
                       {
                           If (And (Arg4, 0x02))
                           {
                               Multiply (Local1, 0x0F, DMA1)
                           }
                           Else
                           {
                               Multiply (Local1, 0x1E, DMA1)
                           }
                       }
                   }
                   Else
                   {
                       Store (PIO1, DMA1)
                   }
               }
               Else
               {
                   Store (DMA0, DMA1)
               }

               Store (Zero, FLAG)
               If (And (Arg0, One))
               {
                   Or (FLAG, 0x10, FLAG)
               }

               If (And (Arg2, One))
               {
                   Or (FLAG, One, FLAG)
               }

               If (And (Arg0, 0x02))
               {
                   Or (FLAG, 0x02, FLAG)
               }

               If (And (Arg2, 0x02))
               {
                   Or (FLAG, 0x04, FLAG)
               }

               If (And (Arg0, 0x20))
               {
                   Or (FLAG, 0x08, FLAG)
               }

               Return (Local0)
           }

           Method (STM, 3, NotSerialized)
           {
               Store (Buffer (0x18) {}, Local7)
               CreateDWordField (Local7, Zero, ITM)
               CreateDWordField (Local7, 0x04, SIT)
               CreateDWordField (Local7, 0x08, UDC)
               CreateDWordField (Local7, 0x0C, UDT)
               CreateDWordField (Local7, 0x10, ICF)
               CreateDWordField (Local7, 0x14, FAS)
               CreateDWordField (Arg0, Zero, PIO0)
               CreateDWordField (Arg0, 0x04, DMA0)
               CreateDWordField (Arg0, 0x08, PIO1)
               CreateDWordField (Arg0, 0x0C, DMA1)
               CreateDWordField (Arg0, 0x10, FLAG)
               Store (FLAG, Local4)
               Store (0x8000, Local0)
               If (And (Local4, 0x02))
               {
                   Or (Local0, 0x07, Local0)
               }

               If (And (Local4, 0x08))
               {
                   Or (Local0, 0x4000, Local0)
                   Or (Local0, 0x70, Local0)
               }

               If (LAnd (LLess (DMA0, PIO0), LNot (And (Local4, One))))
               {
                   Or (Local0, 0x08, Local0)
               }

               If (LAnd (LLess (DMA1, PIO1), LNot (And (Local4, 0x04))))
               {
                   Or (Local0, 0x80, Local0)
               }

               If (PIO0)
               {
                   If (LLess (PIO0, 0x0384))
                   {
                       Or (Local0, One, Local0)
                   }
               }

               If (PIO1)
               {
                   If (LLess (PIO1, 0x0384))
                   {
                       Or (Local0, 0x10, Local0)
                   }
               }

               If (And (Local4, One))
               {
                   Store (PIO0, Local1)
               }
               Else
               {
                   Store (DMA0, Local1)
               }

               If (Local1)
               {
                   If (LLessEqual (Local1, 0x78))
                   {
                       Or (Local0, 0x2300, Local0)
                   }
                   Else
                   {
                       If (LLessEqual (Local1, 0xB4))
                       {
                           Or (Local0, 0x2100, Local0)
                       }
                       Else
                       {
                           If (LLessEqual (Local1, 0xF0))
                           {
                               Or (Local0, 0x1000, Local0)
                           }
                       }
                   }
               }

               Store (Local0, ITM)
               Store (Zero, Local0)
               If (And (Local4, 0x04))
               {
                   Store (PIO1, Local1)
               }
               Else
               {
                   Store (DMA1, Local1)
               }

               If (Local1)
               {
                   If (LLessEqual (Local1, 0x78))
                   {
                       Store (0x0B, Local0)
                   }
                   Else
                   {
                       If (LLessEqual (Local1, 0xB4))
                       {
                           Store (0x09, Local0)
                       }
                       Else
                       {
                           If (LLessEqual (Local1, 0xF0))
                           {
                               Store (0x04, Local0)
                           }
                       }
                   }
               }

               Store (Local0, SIT)
               Store (Zero, Local0)
               If (And (Local4, One))
               {
                   Or (Local0, One, Local0)
               }

               If (And (Local4, 0x04))
               {
                   Or (Local0, 0x02, Local0)
               }

               Store (Local0, UDC)
               Store (Zero, Local0)
               If (And (Local4, One))
               {
                   If (LEqual (DMA0, 0x14))
                   {
                       Store (One, Local0)
                   }
                   Else
                   {
                       If (LLess (DMA0, 0x3C))
                       {
                           Divide (DMA0, 0x0F, , Local1)
                       }
                       Else
                       {
                           Divide (DMA0, 0x1E, , Local1)
                       }

                       Subtract (0x04, Local1, Local0)
                   }
               }

               If (And (Local4, 0x04))
               {
                   If (LEqual (DMA1, 0x14))
                   {
                       Store (One, Local1)
                   }
                   Else
                   {
                       If (LLess (DMA1, 0x3C))
                       {
                           Divide (DMA1, 0x0F, , Local1)
                       }
                       Else
                       {
                           Divide (DMA1, 0x1E, , Local1)
                       }

                       Subtract (0x04, Local1, Local1)
                   }

                   ShiftLeft (Local1, 0x04, Local1)
                   Or (Local0, Local1, Local0)
               }

               Store (Local0, UDT)
               Store (Zero, Local0)
               If (DMA0)
               {
                   If (LGreater (DMA0, 0x14))
                   {
                       If (LLess (DMA0, 0x3C))
                       {
                           Or (Local0, One, Local0)
                       }
                   }
               }

               If (DMA1)
               {
                   If (LGreater (DMA1, 0x14))
                   {
                       If (LLess (DMA1, 0x3C))
                       {
                           Or (Local0, 0x02, Local0)
                       }
                   }
               }

               Store (Local0, ICF)
               Store (Zero, Local0)
               If (LEqual (DMA0, 0x14))
               {
                   Or (Local0, One, Local0)
               }

               If (LEqual (DMA1, 0x14))
               {
                   Or (Local0, 0x02, Local0)
               }

               Store (Local0, FAS)
               Return (Local7)
           }

           Method (H15P, 1, NotSerialized)
           {
               Name (BUFF, Buffer (0x08)
               {
                   /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
               })
               Store (Arg0, Local0)
               Store (BUFF, Local1)
               Concatenate (Local0, Local1, Local7)
               CreateWordField (Local7, 0x02, CYL)
               CreateWordField (Local7, 0x06, HEAD)
               CreateWordField (Local7, 0x0C, SPT)
               If (LAnd (LGreaterEqual (HEAD, 0x10), LGreaterEqual (CYL, 0x2000)))
               {
                   Return (SPT)
               }
               Else
               {
                   Return (Zero)
               }
           }

           Method (GTF0, 7, NotSerialized)
           {
               Store (Buffer (0x07)
                   {
                       0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                   }, Local7)
               CreateByteField (Local7, One, MODE)
               If (And (Arg2, One))
               {
                   And (Arg3, 0x03, Local0)
                   If (And (Arg6, One))
                   {
                       Add (Local0, 0x04, Local0)
                   }
                   Else
                   {
                       If (And (Arg4, One))
                       {
                           Add (Local0, 0x02, Local0)
                       }
                   }

                   Or (Local0, 0x40, MODE)
               }
               Else
               {
                   Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                       Arg0, 0x3000), 0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x22, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x21, MODE)
                       }
                       Else
                       {
                           Store (0x20, MODE)
                       }
                   }
               }

               Concatenate (Local7, Local7, Local6)
               If (LOr (And (Arg0, 0x08), LNot (And (Arg0, One
                   ))))
               {
                   If (And (Arg0, 0x02))
                   {
                       Store (Zero, MODE)
                   }
                   Else
                   {
                       Store (One, MODE)
                   }
               }
               Else
               {
                   Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                       Arg0, 0x3000), 0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x0C, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x0B, MODE)
                       }
                       Else
                       {
                           Store (0x0A, MODE)
                       }
                   }
               }

               Concatenate (Local6, Local7, Local5)
               If (Arg5)
               {
                   Store (Buffer (0x07)
                       {
                           0x00, 0x00, 0x00, 0x00, 0x00, 0xAE, 0x91
                       }, Local4)
                   CreateByteField (Local4, One, SPT)
                   Store (Arg5, SPT)
                   Concatenate (Local5, Local4, Local6)
                   Return (Local6)
               }
               Else
               {
                   Return (Local5)
               }
           }

           Method (GTF1, 7, NotSerialized)
           {
               Store (Buffer (0x07)
                   {
                       0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                   }, Local7)
               CreateByteField (Local7, One, MODE)
               If (And (Arg2, 0x02))
               {
                   ShiftRight (And (Arg3, 0x30), 0x04, Local0)
                   If (And (Arg6, 0x02))
                   {
                       Add (Local0, 0x04, Local0)
                   }
                   Else
                   {
                       If (And (Arg4, 0x02))
                       {
                           Add (Local0, 0x02, Local0)
                       }
                   }

                   Or (Local0, 0x40, MODE)
               }
               Else
               {
                   Add (ShiftRight (And (Arg1, 0x03), 0x02), And (Arg1, 
                       0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x22, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x21, MODE)
                       }
                       Else
                       {
                           Store (0x20, MODE)
                       }
                   }
               }

               Concatenate (Local7, Local7, Local6)
               If (LOr (And (Arg0, 0x80), LNot (And (Arg0, 0x10
                   ))))
               {
                   If (And (Arg0, 0x20))
                   {
                       Store (Zero, MODE)
                   }
                   Else
                   {
                       Store (One, MODE)
                   }
               }
               Else
               {
                   Add (ShiftRight (And (Arg1, 0x03), 0x02), And (Arg1, 
                       0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x0C, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x0B, MODE)
                       }
                       Else
                       {
                           Store (0x0A, MODE)
                       }
                   }
               }

               Concatenate (Local6, Local7, Local5)
               If (Arg5)
               {
                   Store (Buffer (0x07)
                       {
                           0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x91
                       }, Local4)
                   CreateByteField (Local4, One, SPT)
                   Store (Arg5, SPT)
                   Concatenate (Local5, Local4, Local6)
                   Return (Local6)
               }
               Else
               {
                   Return (Local5)
               }
           }

Link to comment
Share on other sites

Does that mean that the Revolution bootloader is to be hard coded into the Bios?

Yes indeed. I moved a stripped down version of boot2 into this 'free' BIOS memory block. The rest of it can be used for a nice new (and animated) boot logo – to be added at a later stage.

 

If so what are the advantages of that? Speed? Eliminate issues with other OS's?

First. Revolution is an experiment only. Something I started to work on after having spent way too much time with the Chameleon boot2 source code; my first objective was to speed up the boot process. And while I can boot faster now, which of course is a plus, it does add a whole new layer of complexity like:

 

1) Not everyone is willing to use a modified BIOS.

2) Every single new BIOS ROM file will need to be modified.

3) There is no GUI like in Chameleon (can be included however).

 

Not to mention that installing a simple SSD drive is a bigger win simply because that will make it boot a lot faster. Keeping the good old simplicity. The problem with SSD drives however is that they are still too expensive, for most people anyway I think, and the things I work on will always be free and open source.

 

Tip: Keep an eye on my next topic "How to boost the OS X boot process...".

 

Excuse my ignorance, but between (Device) IDE2 (which I've now removed) and (Device) SBUS I have the following code, I don't see this in the other DSDTs I'm using to compare with. What is it for?....

You should search for it in your original DSDT. To see what code is calling it (my guess would be IDE code).

 

Edit: Link added.

Link to comment
Share on other sites

I am looking for a prepatched applehda.kext the version that is included in 10.6.2. I would like to have a 64 bit prepatched applehda so I can load it trough a startup script instead of through /S/L/E. I don't want to use legacyhda.kext because of the posibility of breaking the sound when updating the computer.

 

The sound card is ALC889a.

 

Anyone knows where to find it?

 

CS

Link to comment
Share on other sites

I am looking for a prepatched applehda.kext the version that is included in 10.6.2. I would like to have a 64 bit prepatched applehda so I can load it trough a startup script instead of through /S/L/E. I don't want to use legacyhda.kext because of the posibility of breaking the sound when updating the computer.

 

The sound card is ALC889a.

 

Anyone knows where to find it?

 

CS

You can try this for your HDEF. It should give you decent sound but a few sound assertion errors at boot. Completely vanilla though.

// <--Use this one for completely vanilla audio but has sound assertion errors
Method (_DSM, 4, NotSerialized) {
Store (Package (0x0A) {
		"codec-id"		  ,Buffer (0x04){0x89, 0x08, 0xEC, 0x10}, 
		"layout-id"		 ,Buffer (0x04){0x42, 0x00, 0x00, 0x00}, // <--Layout #66
		"device-type"	   ,Buffer (0x10){"Realtek ALC889a"},
		"PinConfigurations" ,Buffer (0x01){0x00}
	}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Link to comment
Share on other sites

Thank you, works great

 

The sound assertions are ok as long as the sound that comes out of the speakers are fine and it seems fine.

 

Just one thing, the name on the internal microphone under system preferences is "None" is there a way to change this name

 

how to find out what other layout ids that can be used if I feel like experimenting? It seems what makes this solution work wihout legacyhda is the layout-id is set to 66. Maybe there are other ids that can be made to work.

You can try this for your HDEF. It should give you decent sound but a few sound assertion errors at boot. Completely vanilla though.

// <--Use this one for completely vanilla audio but has sound assertion errors
Method (_DSM, 4, NotSerialized) {
 Store (Package (0x0A) {
		 "codec-id"		  ,Buffer (0x04){0x89, 0x08, 0xEC, 0x10}, 
		 "layout-id"		 ,Buffer (0x04){0x42, 0x00, 0x00, 0x00}, // <--Layout #66
		 "device-type"	   ,Buffer (0x10){"Realtek ALC889a"},
		 "PinConfigurations" ,Buffer (0x01){0x00}
	 }, Local0)
 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
 Return (Local0)
}

Link to comment
Share on other sites

How do we get rid of a assertion errors at boot ? Can we do that with just dsdt ?

I don't know if this helps you, but I had two sound assertions with HDEF selected in the BIOS and none after selecting AC97. My on-board audio is still working, and thus that is what I use right now. Might not be possible in your BIOS, but just to let you know.

Link to comment
Share on other sites

Is that with or without legacyhda.kext? I think I read somewhere that you had a prepatched applehda.kext that you don´t keep in /S/L/E and load with startup script? Do you know how to move the settings from a legacyhda.kext and put directly into applehda.kext?

I don't know if this helps you, but I had two sound assertions with HDEF selected in the BIOS and none after selecting AC97. My on-board audio is still working, and thus that is what I use right now. Might not be possible in your BIOS, but just to let you know.
Link to comment
Share on other sites

Is that with or without legacyhda.kext?

With or without. Doesn't really matter.

 

I think I read somewhere that you had a prepatched applehda.kext that you don´t keep in /S/L/E and load with startup script? Do you know how to move the settings from a legacyhda.kext and put directly into applehda.kext?

Sure. The modified appleHDA.kext can be found in post #595 of the "P5K PRO Snow Leopard Installation" thread, and the Info.plist I used – as a starting point – can be found in post #3 (under attachments). Comparing the two files should do the trick.

Link to comment
Share on other sites

Store (Package (0x0A) {

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

"layout-id" ,Buffer (0x04){0x42, 0x00, 0x00, 0x00}, //

"device-type" ,Buffer (0x10){"Realtek ALC889a"},

"PinConfigurations" ,Buffer (0x01){0x00}

 

Isnt that 0Ahex=10dec (count of injected ) wrong ?

In this example there are only 8 , 08hex injected !

Link to comment
Share on other sites

Store (Package (0x0A) {

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

"layout-id" ,Buffer (0x04){0x42, 0x00, 0x00, 0x00}, //

"device-type" ,Buffer (0x10){"Realtek ALC889a"},

"PinConfigurations" ,Buffer (0x01){0x00}

 

Isnt that 0Ahex=10dec (count of injected ) wrong ?

In this example there are only 8 , 08hex injected !

It is simpler to write

Package ()

IASL can calculate a size by itself.

Link to comment
Share on other sites

Good to know !

Lots of users add/delete content of the injection and may go into trouble, if they not also change that packadge count to!

I also see often (in code sniples here) that strings , like the name "Realtek 889A" are changed but the buffer len for that string len not.

What can happen there? perhaps cut off if buffer string len ?

Link to comment
Share on other sites

 Share

×
×
  • Create New...