Help - Search - Members - Calendar
Full Version: [BOOT-132] Legacy AppleHDA
InsanelyMac Forum > OSx86 Project > Tutorials (The Genius Bar)
Pages: 1, 2, 3
stickpin
Legacy AppleHDA for BOOT-132.
Updated: 13.10.2008


Thanks alot for hard work to: Taruga, Kabyl, Munky, CycloneFr and all Chameleon Team.
Thanks alot to THe KiNG (XyZ) for great research and AppleHDA - Knowledge Base.


Update 13.10.2008 V5: System profiler fixed, no more fake values. Codec verb fixed. Digital In removed.

Update 4.10.2008 V4: Changed override method to one that CycloneFr described here. More inputs and outputs working now. No more snow leo kexts needed, using leo ones now. Problem that not fixed yet is System Profiler, for now just use mine HDAEnabler, included into archive, its fakes PinConfigutaion. smile.gif



Requirements:
1. Mac OS X 10.5.x Leopard with ORIGINAL AppleHDA.kext.
2. BOOT-132: USB Stick / FAT Partition / EFI Partition.


How to install:

1. Download kexts for your Sound card.

2. Extract them to your CUSTOM Extensions folder (ex. /Users/MyName/Desktop/Extensions).

3. Change permissions
chmod -R 644 /Users/MyName/Desktop/Extensions
chown -R root:wheel /Users/MyName/Desktop/Extensions

4. Create Extensions.mkext with all your kexts!!!
kextcache -a i386 -m /Users/MyName/Desktop/Extensions.mkext /Users/MyName/Desktop/Extensions

5. Copy Extensions.mkext to your Booter.
im using EFI Boot so my folder for Extensions.mkext is: /Volumes/EFI/System/Booter/Extensions.mkext

6. Change permissions again
chmod 644 /Volumes/EFI/System/Booter/Extensions.mkext
chown root:wheel /Volumes/EFI/System/Booter/Extensions.mkext

7. Dont forget to remove Extensions Folder on your Booter.
rm -rf /Volumes/EFI/System/Booter/Extensions

8. Restart with -f flag.

9. Post your result. smile.gif


TODO List:
1) All Line Outs + Front Mic In to work.
2) Create Universal LegacyHDA for ALC88x series.
3) To support all ALCxxx series codecs.


Device Mapping:
Blue: Line In - Working
Green: IntSpeaker - Working
Pink: Mic In - Working
Black: Line Out - Working
Orange: Line Out - Work in progress
Gray: Line Out - Work in progress

S/P-DIF In: - Removed
S/P-DIF Out: - Working

Front: Headphones - Working
Front: Mic In - Work in progress


Downloads:
Realtek ALC882 Address 0: BETA V4 | BETA V5 Comming soon
Realtek ALC882 Address 2: BETA V4 | BETA V5 Comming soon

Realtek ALC883 Address 0: BETA V4 | BETA V5 Comming soon
Realtek ALC883 Address 2: BETA V4 | BETA V5 Comming soon

Realtek ALC888 Address 0: BETA V4 | BETA V5 Comming soon
Realtek ALC888 Address 2: BETA V4 | BETA V5 Comming soon
Realtek ALC888: ASUS M50SV by THe KiNG

Realtek ALC885/889A: BETA V4 | BETA V5

Sigmatel 9200: Legacy Sigmatel 9200 by sonotone
Sigmatel 9205: Legacy Sigmatel 9205 by Brandon2004
titooo1
Congratulations & thanks.
I goot a noob question. Does it need Alcinject?
I mean I have sound with ALC660-VD with applehda+alcinject. Will your method work with my sound card? Or it's only valid for those who don't need alinject?

Thanks!
stickpin
titooo1, for now it works only for sound card specified here.
No ALC660 support yet.
3D mn
Thanks stickpin, I also hope that there will be AC97 support smile.gif
roisoft
Ok, succesfull install using EFI BOOT



Digital out & Internal Speakers: work
Line out: doesn´t work
Rest: N/T

Great Work , congrats... smile.gif

edit:

system.log

QUOTE
Oct 2 09:35:26 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 == entry" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAEngine.cpp" at line 2363 goto Exit
Oct 2 09:35:26 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 == entry" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAEngine.cpp" at line 2363 goto Exit
Oct 2 09:35:27 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 == entry" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAEngine.cpp" at line 2363 goto Exit
Oct 2 09:35:27 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 == entry" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAEngine.cpp" at line 2363 goto Exit
Oct 2 09:35:27: --- last message repeated 1 time ---
Oct 2 09:35:27 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDACodecGeneric.cpp" at line 830 goto handler

.....

Oct 2 09:38:52 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDACodecGeneric.cpp" at line 830 goto handler
Oct 2 09:38:52 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDACodecGeneric.cpp" at line 830 goto handler
Oct 2 09:43:59 p35-ds4-de-roisoft kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDACodecGeneric.cpp" at line 830 goto handler
sonotone
Second succes here. Thanks a lot.
THe KiNG
Those sound assertion errors are normal if u have on plist wrong input/output
I managed to have just one(appear twice) and thats internal mic that dosent work, no matter what i tried, unless someone figure out how to create hda codec verbs u cant get rid of them and have 100% working codec sad.gif
cyclonefr
Actually you don't need to use Snow Leopard kext in any way.

You can just use some Plist so whenever 10.5.6 is out and if it has a new AppleHDA, it'll use AppleHDAPlatform + Controller from 10.5.6 and NOT from Snow Leo !

Just edit your plists accordingly to mine (alc883) : http://www.mediafire.com/?onz2nm30yn1 so the structures remains the same.
Just take the plists from these 2 kexts you are using RIGHT now as a base and edit them so the main structure (everything except IOKitPersonalities, which has all the infos about your codec) remains the same as mine.

Enjoy !

EDIT : don't forget to use HDAEnabler.kext. Not the one from the topic, this one has been edited it seems and only works with ALC889.
THe KiNG
I can confirm that works, no need for snow kexts!
just take those ^^^ and do the same plist job!
Thanks for pointing me on how to make it CycloneFr! smile.gif
stickpin
Thanks alot cyclonefr for your research!!!
New version comming... Finally got Speakers + Headphones + Line Out working! biggrin.gif

stickpin
Updated... check first post. Please post your results. smile.gif
greyMD
what about Realtek ALC662 ?

regards
stickpin
greyMD, as i said before... For now im working only on this codecs: 882, 883, 888, 885/889A.
If ill get confirmation that this codecs works, ill try to modify others.


p.s: @ALL: Added ALC882, please test.
greyMD
thanks for quick reply

looking forward finding good news from you regarding our issue!
AlainTox714
@stickpin

I got working LegacyAppleAHCIPort.kext and LegacyIOAHCIBlockStorage.kext.

But i am completely stuck with AppleHDA, i analyse the way you mod those plist file and try to do the same for my mobo.

I analyse also "THe KiNG for ASUS M50SV", little bit different and also try to do the same.

I can't definitely get it working, here is a log error.

Oct 4 09:02:50 localhost kernel[0]: Sound assertion "0 == pathMap_aDriverInstance" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDADriver.cpp" at line 1653 goto Exit
Oct 4 09:02:50 localhost kernel[0]: Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDADriver.cpp" at line 108 goto Exit
Oct 4 09:02:50 localhost kernel[0]: Sound assertion "0 == pathMap_aDriverInstance" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDADriver.cpp" at line 1653 goto Exit
Oct 4 09:02:50 localhost kernel[0]: Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDADriver.cpp" at line 108 goto Exit

Of course i use HDAEnabler and get partial SystemProfiler Audio report.

Here is attached my lattest try close to your method, if you like to help i will be very glad.

http://forum.insanelymac.com/index.php?act...st&id=35456
stickpin
@AlainTox714, you codec is Sigmatel 9227... i dont know if possible to use such method for your card. I think this trick works only for ALC88x cards. Sorry.

@ALL, Added ALC888, please test.
AlainTox714
QUOTE(stickpin @ Oct 4 2008, 11:53 AM) *
@AlainTox714, you codec is Sigmatel 9227... i dont know if possible to use such method for your card. I think this trick works only for ALC88x cards. Sorry.

@ALL, Added ALC888, please test.


My Codec is SigmaTel STAC9274D

If i check AppleHDA binary Sigmatel is supported but for 7680 mine is 7621

otool -tV /Users/caytam/Desktop/AppleHDA.kext/Contents/MacOS/AppleHDA | grep 8384

0001d713 cmpl $0x83847680,%eax
0001f2f3 cmpl $0x83847680,%eax

If i check AppleHDA binary Realteck is supported but only for 262 and only 885

otool -tV /Users/caytam/Desktop/AppleHDA.kext/Contents/MacOS/AppleHDA | grep 10ec

0001d6df cmpl $0x10ec0262,%eax
0001d6e6 cmpl $0x10ec0885,%eax
0001f2bf cmpl $0x10ec0262,%eax
0001f2c6 cmpl $0x10ec0885,%eax

I even try to build an entirely patched AppleHDA.kext in S/L/E load but don't works.

Thanks anyway.
stellarola
Stickpin,

This works great and the instructions are great and straight forward. Working here on my ALC885.

Thanks and keep up the great work,

-Stell
MadTux
Great!
stickpin
@AlainTox714, ill take a look to another codecs letter, its should be another codec verb there, maybe another device mapping, i have no Sigmatel device to test here, so all i can to its to follow blind here.

@Stellarola, thanks alot for report, if you can please report if all submited inputs and outputs works for you.
DB1
stickpin - thanks for this, final piece of the jigsaw for completely clean retail install (munky EFI partition method v3) on ASUS P5K-VM, ALC883 all outputs / inputs working.

Much appriciated
stellarola
QUOTE(stickpin @ Oct 4 2008, 04:15 PM) *
@AlainTox714, ill take a look to another codecs letter, its should be another codec verb there, maybe another device mapping, i have no Sigmatel device to test here, so all i can to its to follow blind here.

@Stellarola, thanks alot for report, if you can please report if all submited inputs and outputs works for you.



Tested Green and Black Line-out as well as Optical Out. Worked great. I don't have a mic or front headphone out to test.

Again great work to you and all those involved. smile.gif

-Stell
stickpin
sensei730000, check tutorial again, because this method is do working!
And please remove kext from here.

Thanks.
sensei730000
sorry you're right I've got it working. thanks again.
incabulos
Once I updated to 10.5.5 it works for me!

It seems to hang for a minute or so before finishing the boot, though. Will looking into that some more.

EDIT: Fixed. Was unrelated to HDA stuff. Saw that I was getting "GetHostUUIDString: unable to determine UUID for host. Error: 35"

Added the following to
/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

CODE
      <dict>
          <key>BSD Name</key>
          <string>en3</string>
          <key>IOBuiltin</key>
          <false/>
          <key>IOInterfaceType</key>
          <integer>6</integer>
          <key>IOInterfaceUnit</key>
          <integer>3</integer>
          <key>IOLocation</key>
          <string></string>
          <key>IOMACAddress</key>
          <data>
          ABbPoF5V
          </data>
          <key>IOPathMatch</key>
          <string>IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P3@1C,2/
       IOPCI2PCIBridge/pci14e4,4311@0/AirPort_Brcm43xx/IO80211Interface</string>
          <key>SCNetworkInterfaceType</key>
          <string>IEEE80211</string>
       </dict>


Credits go to bob (http://forum.netkas.org/index.php/topic,83.0.html)
stickpin
@incabulos you can fix UUID problem with SMBIOSResolver.kext without modifying original file.
take a look here: Superhai site
Check forum there for more info.
AlainTox714
QUOTE(stickpin @ Oct 4 2008, 03:15 PM) *
@AlainTox714, ill take a look to another codecs letter, its should be another codec verb there, maybe another device mapping, i have no Sigmatel device to test here, so all i can to its to follow blind here.

@Stellarola, thanks alot for report, if you can please report if all submited inputs and outputs works for you.



@stickpin

Thank you so much, if you need some information about this board don't hesitate, i am ready to provide and to help.
sonotone
Here my legacy info.plist for Sigmatel 9200 (tested on dell inspiron 9400).

Speakers: works
Headphones: works
Mute: works
Line in: not confirmed yet
Digital out: Not confirmed yet
shutdown: works

Thanks to TBCarey and jaysonz.
jokinawa
Pink Mic-input does not work on my GA-EP45-DS4 with ALC889A. Verified chip on the mobo itself.

Works in Windows. Tried the front inputs also.
Tried the 'Internal Microphone' and 'Line-In' settings in input.


Any help is appreciated.
overflow1972
Good evening,

I have Leopard retail + 10.5.5 update + chameleon boot from hard disk.

My motherboard is Gigabyte GA-EP35-DS4 with ALC889A. The kexts published here are not working for me.

I see the audio board inside the system profiler, but I have no audio whatever channel I choose.

Before this I used patched AppleHDA+ALCInject and it worked fine.

I installed these new kexts inside the EXTRA folder of CHAMELEON and I deleted AppleHDA and ALCInject. Is it right to delete AppleHDA or do I still need it ?

Thanks
stickpin
@sonotone, thanks alot for sharing your fake plists, added them to the first post.

@jokinawa, please post you codec dump here, ill check whats wrong there.

@overflow1972, please read tutorial carefully. Everything there. And yes you need ORIGINAL Leo AppleHDA.
nickotar
Thanks for this solution stickpin.
Seems to work fine here with ALC883 on a Gigabyte 965P-DS4, but I get very numerous errors in system.log.
These following errors appear every 30 seconds :
CODE
Oct 6 20:52:23: --- last message repeated 5 times ---
Oct 6 20:52:24 pat-rans kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAWidget.cpp" at line 1341 goto handler
Oct 6 20:52:54: --- last message repeated 5 times ---
Oct 6 20:52:55 pat-rans kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAWidget.cpp" at line 1341 goto handler
Oct 6 20:53:25: --- last message repeated 5 times ---
Oct 6 20:53:26 pat-rans kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAWidget.cpp" at line 1341 goto handler
Oct 6 20:53:56: --- last message repeated 5 times ---
Oct 6 20:53:57 pat-rans kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAWidget.cpp" at line 1341 goto handler
Oct 6 20:54:27: --- last message repeated 5 times ---
Oct 6 20:54:28 pat-rans kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-157.1.24/AppleHDA/AppleHDAWidget.cpp" at line 1341 goto handler

Do you have any idea on how to get rid of them ?


stickpin
@nickotar, its ok... every has such error, i think its some problem with codec verb.
Until we'll know how to correctly set codec verb values, we'll need to live with this errors.
jokinawa
stickpin,

I'm not quiet certain how to obtain a codec dump.

Thank you.
shatterhenner
hi stickpin...

im here to report success on a dell vostro 400 / 10.5.5 Retail/munkys_v3 with alc888_v4

brilliant work...thanx

one question...whats the differences between add0/add2?? both workin here???

thanx
stickpin
@shatterhenner, yes same here... both versions working... for normail codec verb you should use your address...
Your address you can get from codec dump and its should looks like this:

Codec: Realtek ALC885
Address: 2
Vendor Id: 0x10ec0885
Subsystem Id: 0x1458a002
Revision Id: 0x100101

@jokinawa, how to create codec dump, you can read here. You'll need some linux distro, maybe some live cd, like Ubuntu.
overflow1972
@stickpin:

hi mate I want to show you my experience. I have a retail Leopard + 10.5.5 update + chameleon boot for Hard disk

My motherboard has ALC889A. I am currently using a patched AppleHDA + Alcinject.

Now....:

1) I put again the original 10.5.5 AppleHDA under s/l/e. I downloaded from the first post the 3 kexts for ALC889A and I put them under CHAMELEON kext folder and I converted all the kexts inside it in Extensions.mkext. So under the EXTRA folder I just left one file : Extensions.mkext

I rebooted the system with -v -f but it does not boot.....I had a KP with AppleIntelCPUPowermanagement because the system maybe is not able to load the disabler.kext

2) I put the 3 audio kexts under the CHAMELEON kexts folder + the original AppleHDA under s/l/e. I rebooted the system with -v -f, I see the audio board info under system profiler but I had no audio on all channels

3) I put the 3 kexts + the original AppleHDA under S/L/E.........I rebooted with -v -f and I had the system working with audio.

so, which of this situation is the right one ?

Thanks
stickpin
@overflow1972, ok found what it could be... Looks like when you use chameleon boot for Hard disk you must add:

CODE
<key>OSBundleRequired</key>
<string>Root</string>


So add this two lines in the end of Info.plist before last </dict> of LegacyHDAController.kext and LegacyHDAPlatformDriver.kext, then its should work for you too.

ex:

CODE
         .................
         .................
         </dict>
         <key>OSBundleRequired</key>
         <string>Root</string>
</dict>
</plist>


Dont forget about mkext and permissions.
Enjoy!
overflow1972
QUOTE(stickpin @ Oct 7 2008, 08:19 AM) *
Dont forget about mkext and permissions.
Enjoy!


Ok thanks, those are the lines for the kexts loading. You said about mkext.......does this mean that I always need to convert everything into Extensions.mkext or I can leave the kexts under CHAMELEON Extra folder ?

Thanks
stickpin
@overflow1972, you adding this lines, then creating mkext will all you kext, droping mkext into /Extra folder, setting permissions, removing /Extra/Extensions folder, restarting with -f... Its should work for you now...
GLXOZ
How about STAC9271D for DP35DP ? this my linux codec dump.
Click to view attachment
overflow1972
.......mmmm, maybe that was the problem. I put Extensions.mkext under EXTRA\Extensions and not under EXTRA.

I'll try and let you know, thanks a lot
Ziggar
Any chance of a version for STAC9274D found on bad axe 2 ?

Can post a codec dump or what might be necessary , thanks smile.gif
jokinawa
stickpin,

Here is my codec dump: Click to view attachment

Here is a weird 'error' in Ubuntu 8.04: Click to view attachment

My motherbard manufacturer Gigabyte states this motherboard (GA-EP45-DS4) uses the ALC889a chipset for audio.
The codec dump shows ALC885 while the sound prefs in Ubuntu show ALC885 and ALC882.

Some weird happenings going on here.

J
Ducko
Working well now with my ALC888 system.
The first try didn't work. I am using EFI partition with munky's update.sh . After a few times rebooting and EFI kext cache modifying, it finally works.
shatterhenner
QUOTE(stickpin @ Oct 7 2008, 08:24 AM) *
@shatterhenner, yes same here... both versions working... for normail codec verb you should use your address...
Your address you can get from codec dump and its should looks like this:

Codec: Realtek ALC885
Address: 2
Vendor Id: 0x10ec0885
Subsystem Id: 0x1458a002
Revision Id: 0x100101

@jokinawa, how to create codec dump, you can read here. You'll need some linux distro, maybe some live cd, like Ubuntu.


thanx stickpin for the fast reply...so ill go and get a linux live cd

nice work dude ;-)
thanx again....
sensei730000
could it work for ALC662? Do you need a codec dump for it??
tonysweet
Thx for your GREAT job!

But my mic (front & rear, Both) is not working.
(Patched AppleHDA.kext by Taruga is all working.)

Here is my ALC883 codec dump.

So.. how can I fix it..? Thx!!

Click to view attachment

overflow1972
QUOTE(stickpin @ Oct 7 2008, 09:30 AM) *
@overflow1972, you adding this lines, then creating mkext will all you kext, droping mkext into /Extra folder, setting permissions, removing /Extra/Extensions folder, restarting with -f... Its should work for you now...


Hi STICKPIN,

I tried again and it finally worked. I created an Extensions.mkext with all my kexts inside the EXTRA folder (CHAMELEON) and I copied Extensions.mkext directly under the EXTRA folder. I was putting this file under EXTRA\Extensions and this was the reason of the problem.

Thanks for your help.
stickpin
New version is comming will fix codec verb problem... And sys profiler... No more fake values... smile.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.