Jump to content

Kyklops fix for audio AppleAC97CodecAD198x.kext


  • Please log in to reply
71 replies to this topic

#1
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
After much searching, reading and trying I finally figured out that there appears to be a dependancy between AppleAC97Audio.kext and in my case, AppleAC97CodecAD198x.kext. It seems you need to have the Vendor and Device IDs set correctly in both. I started in just trying to change AppleAC97CodecAD198x.kext. It would load with kextload but nothing worked.

First find the Vendor and Device ID by doing Start>Run> DXdiag in Windows. Now boot into OS X and then modify the Info.plist file here: /System/Library/Extensions/AppleAC97Audio.kext/Contents/PlugIns/AppleAC97AudioIntelICH.kext/Contents/Info.plist

Remember your Vendor and Device ID most likely will be different.

<key>ICH6 AC97 Audio</key>

<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAC97AudioIntelICH</string>
<key>ICH Type</key>
<integer>6</integer>
<key>IOClass</key>
<string>AppleAC97AudioIntelICH</string>
<key>IOPCIPrimaryMatch</key>
<string>0x25A68086</string> <--------Added Correct Dev=25A6 Ven=8086
<key>IOProbeScore</key>
<integer>10000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>

Also, I first changed AppleAC97CodecAD198x.kext Info.plist but didn't have any effect. After I made the changes above sound starting working immediately.

Below are the changes made to AppleAC97CodecAD198x.kext Info.plist:

<dict>

<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAC97CodecAD198x</string>
<key>IOClass</key>
<string>AppleAC97CodecAD198x</string>
<key>IOProbeScore</key>
<integer>10000</integer>
<key>IOProviderClass</key>
<string>IOAC97CodecDevice</string>
<key>PNPVendorID</key>
<string>ADS70 ADS75 ADS74 ADS73 ADS72</string> <-------- Added ADS70
</dict>

Got the ADS70 code from looking at the mother board manual ADI AD1980 AC'97 codec and searched for the chip data sheet on line. I found this near the end of the chip data sheet:

7Ch Vendor ID1 F7 F6 F5 F4 F3 F2 F1 F0 S7 S6 S5 S4 S3 S2 S1 S0 4144h <--41=ascii A, 44= D

7Eh Vendor ID2T7 T6 T5 T4 T3 T2 T1 T0 REV7REV6 REV5 REV4 REV3 REV2 5370h b]<--53=S[/b]

It looks like both Plist files were needed to be modified with the right codes, funny thing is that the Vendor code from the DXdiag in Windows says it's an Intel = 8086 and the data sheet and MB manual says ADS = Analog Devices. I needed to add the Intel Device/Vendor ID for AppleAC97AudioIntelICH.kext Info.plist and the Analog Devices Vendor/Device ID for AppleAC97CodecAD198x.kext Info.plist.

After doing a ioreg -l in terminal window I found this in the listing that confirms that both might be needed to make this work.

AppleAC97AudioIntelICH <class AppleAC97AudioIntelICH, !registered, !matched, active, busy 0, r$
| | | {
| | | "Power Management protected data" = "{ theNumberOfPowerStates = 3, version 1, power state 0 =$
| | | "ICH Type" = 6
| | | "CFBundleIdentifier" = "com.apple.driver.AppleAC97AudioIntelICH"
| | | "IOClass" = "AppleAC97AudioIntelICH"
| | | "IOPCIPrimaryMatch" = "0x25A68086" <------Found the change I made here
| | | "IOProbeScore" = 10000
| | | "Power Management private data" = "{ this object = 03a06c00, interested driver = 03a06c00, dr$
| | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | "IOProviderClass" = "IOPCIDevice"
| | | "Hardware Name" = "Intel ICH6"
| | | }
| | |
| | +-o IOAC97CodecDevice@0 <class IOAC97CodecDevice, registered, matched, active, busy 0, retain co$
| | | {
| | | "PNPVendorID" = "ADS70"
| | | }
| | |
| | +-o AppleAC97CodecAD198x <class AppleAC97CodecAD198x, registered, matched, active, busy 0, ret$
| | | {
| | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | "Hardware Name" = "ADS70" <-----Found the change I made here
| | | "IOClass" = "AppleAC97CodecAD198x"
| | | "PNPVendorID" = "ADS70 ADS75 ADS74 ADS73 ADS72"
| | | "IOProviderClass" = "IOAC97CodecDevice"
| | | "CFBundleIdentifier" = "com.apple.driver.AppleAC97CodecAD198x"
| | | "IOProbeScore" = 10000

Needed to kextload /path to .kext to load/AppleAC97AudioIntelICH.kext and after that audio was working great! Might be that some of us have been doing one or the other just happened to have the right Vendor/Device ID in the other file and got it to work without realizing that both were needed...

Hope this helps someone, Kyklops @-)

#2
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
Yeh Thx Alot for this
Now where can I find those kexts

#3
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

Yeh Thx Alot for this
Now where can I find those kexts


Use Terminal in Utilities and cd to:
/System/Library/Extensions/AppleAC97Audio.kext/Contents/PlugIns/AppleAC97AudioIntelICH.kext/Contents/Info.plist

/System/Library/Extensions/AppleAC97Audio.kext/Contents/PlugIns/AppleAC97CodecAD198x.kext/Contents/Info.plist

There are other posts here that have more detail on how to go about making these changes... Search for AppleAC97CodecAD198x.kext...

#4
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
i get a 20AppleAC97AudioEngine is not compatible with its superclass, 13IOAudioEngine superclass changed?
kextload: a link/load error occured for kernel extension AppleAC97Audio.kext
load failed for extension AppleAC97Audio.kext
(run kextload with -t for diagnostic output)
error

Any Fixes

#5
Rammjet

Rammjet

    InsanelyMac V.I.P.

  • Gurus
  • 5,302 posts
  • Gender:Male
Try running Disk Utility and repair permissions on your OSX partition.

#6
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
I have Rammjet
Already tried that.

#7
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

I have Rammjet
Already tried that.



Post your Vendor and Device ID by doing Start>Run> DXdiag in Windows and what is your MB CODEC?

#8
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
Analog Devices AD1986A @ VIA VT8237A/8251 High Definition Audio Controller

Soundmax Interegated Digital HD Audio:
Dev ID : 1986
Vendor ID : 11D4

Microsoft UHH Bus Driver for HD Audio
Vendor ID: 1106
Dev ID : 3288

Rammjet Told me we needed both so posted both :D

#9
Rammjet

Rammjet

    InsanelyMac V.I.P.

  • Gurus
  • 5,302 posts
  • Gender:Male
Vendor ID 1106 = VIA instead of Vendor ID 8086 = Intel, so rather than modify the AppleAC97AudioIntelICH.kext, I believe you should modify the AppleAC97AudioVIA.kext with your device id.

And pulling the specs on AD1968a, the ADS number is 78 so ADS78 should go into AppleAC97CodecAD198x.kext

#10
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
ok Listen The Kext loaded fine but Still No Audio
When I got to sound settings it says no output devices found
The Kext is loaded fine
Here is the bit of kextstat command

55 1 0x1b479000 0xd000 0xc000 com.apple.driver.AppleAC97Audio (1.0.0) <54 11>
56 0 0x1b486000 0x3000 0x2000 com.apple.driver.AppleAC97AudioVIA (1.0.0) <55 16 11>

Can anyone help me
I have a Analog Digital AD1986a Soundcard
Please tell me if there is a fix

#11
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

ok Listen The Kext loaded fine but Still No Audio
When I got to sound settings it says no output devices found
The Kext is loaded fine
Here is the bit of kextstat command

55 1 0x1b479000 0xd000 0xc000 com.apple.driver.AppleAC97Audio (1.0.0) <54 11>
56 0 0x1b486000 0x3000 0x2000 com.apple.driver.AppleAC97AudioVIA (1.0.0) <55 16 11>

Can anyone help me
I have a Analog Digital AD1986a Soundcard
Please tell me if there is a fix


I goota ask...
Did you do:
cd /System/Library
rm Extensions.kextcache
rm Extensions.mkext
kextcache -k Extensions
reboot?



Vendor ID 1106 = VIA instead of Vendor ID 8086 = Intel, so rather than modify the AppleAC97AudioIntelICH.kext, I believe you should modify the AppleAC97AudioVIA.kext with your device id.

And pulling the specs on AD1968a, the ADS number is 78 so ADS78 should go into AppleAC97CodecAD198x.kext


Thanks Rammjet!!! You are, of course right on! If you have a VIA go with AppleAC97AudioVIA.kext...

#12
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
yeh i did do that

#13
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

yeh i did do that


Can you do a ioreg -l in terminal window and post the same part that I did in my write up above? Of course you need to make sure you have both .kext loaded first.

#14
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
hope this helps
If not then I have attached the whole thing copyed and pasted from terminal onto textedit

| | | +-o AppleVIAATARoot <class AppleVIAATARoot, !registered, !matched,$
| | | | {
| | | | "ISA Bridge Matching" = {"IOPCIClassMatch"="0x06010000&0xffff$
| | | | "Serial ATA" = No
| | | | "CFBundleIdentifier" = "com.apple.driver.AppleVIAATA"
| | | | "IOClass" = "AppleVIAATARoot"
| | | | "IOPCIPrimaryMatch" = "0x05711106"
| | | | "IOProbeScore" = 1000
| | | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | | "IOProviderClass" = "IOPCIDevice"
| | | | "Hardware Name" = "UNKNOWN"
| | | | }
| | | |
| | | +-o CHN0@0 <class AppleVIAATAChannel, registered, matched, activ$
| | | | | {
| | | | | "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PATA@f0001/CHN0@0"
| | | | | "Control Block Address" = 1012
| | | | | "Interrupt Vector" = 14
| | | | | "Channel Number" = 0
| | | | | "acpi-reg" = <00000000>
| | | | | "IOInterruptControllers" = ("io-apic-0")
| | | | | "IOInterruptSpecifiers" = (<0e00000000000000>)
| | | | | "Command Block Address" = 496
| | | | | }
| | | | |
| | | | +-o AppleVIAATADriver <class AppleVIAATADriver, registered, ma$
| | | | | {
| | | | | "Power Management protected data" = "{ theNumberOfPowerSt$
| | | | | "CFBundleIdentifier" = "com.apple.driver.AppleVIAATA"
| | | | | "IOClass" = "AppleVIAATADriver"
| | | | | "Drive 0 PIO Mode" = 4
| | | | | "Drive 0 DMA Mode" = 2
| | | | | "IOProbeScore" = 0
| | | | | "Power Management private data" = "{ this object = 01baa2$
| | | | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | | | "Physical Interconnect" = "ATA"
| | | | | "IOProviderClass" = "AppleVIAATAChannel"
| | | | |

Attached Files



#15
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
OK, I can't find AppleAC97Audio.kext or AppleAC97AudioVIA.kext loaded in the file you attached. Go back and review and make sure you have the correct Vendor and Device codes in your kext. It seems that you must have kextload them at least once cause you showed them loaded in one of your posts... You can also post snips of your Info.kext for both of the above files...

#16
Suhail

Suhail

    Love is Gone...

  • Retired
  • 7,411 posts
  • Gender:Male
  • Location:London
  • Interests:PHP Coding
    Trance Music
    Xbox 360 :)
    Web Designing
Ok Here it is. Kextloaded what you said. It kextloaded successfully
Attached File  ioreg__l.rtf   141.7KB   488 downloads
Enjoy

Also here is the Kext. This kext was actually modified and checked by Rammjet
Attached File  AppleAC97Audio.kext.zip   178.01KB   1375 downloads
Enjoy

#17
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
Suhail, The files mod'd by Ramjet look right :blink: I still can't find AppleAC97Audio.kext or AppleAC97AudioVIA.kext loaded in the ioreg -l output file you attached. You say it loads without errors? If so right after it loads do ioreg -l and you should see something like this in the output. If you don't it didn't load...

AppleAC97AudioVIA.kex <class AppleAC97AudioIntelICH, !registered, !matched, active, busy 0, r$
| | | {
| | | "Power Management protected data" = "{ theNumberOfPowerStates = 3, version 1, power state 0 =$
| | | "ICH Type" = 6
| | | "CFBundleIdentifier" = "com.apple.driver.AppleAC97AudioIntelICH"
| | | "IOClass" = "AppleAC97AudioIntelICH"
| | | "IOPCIPrimaryMatch" = "0x32881106" <------your via id here
| | | "IOProbeScore" = 10000
| | | "Power Management private data" = "{ this object = 03a06c00, interested driver = 03a06c00, dr$
| | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | "IOProviderClass" = "IOPCIDevice"
| | | "Hardware Name" = "Intel ICH6"
| | | }
| | |
| | +-o IOAC97CodecDevice@0 <class IOAC97CodecDevice, registered, matched, active, busy 0, retain co$
| | | {
| | | "PNPVendorID" = "ADS70"
| | | }
| | |
| | +-o AppleAC97CodecAD198x <class AppleAC97CodecAD198x, registered, matched, active, busy 0, ret$
| | | {
| | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | "Hardware Name" = "ADS78" <-----your id here
| | | "IOClass" = "AppleAC97CodecAD198x"
| | | "PNPVendorID" = "ADS78 ADS75 ADS74 ADS73 ADS72"
| | | "IOProviderClass" = "IOAC97CodecDevice"
| | | "CFBundleIdentifier" = "com.apple.driver.AppleAC97CodecAD198x"
| | | "IOProbeScore" = 10000

#18
Stellair

Stellair

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 375 posts
  • Gender:Male
This is what I saved in DxDiag. I couldn't find the hardware name :P

The soundcard is a Soundmax AD1981 I think


-------------
Sound Devices
-------------
			Description: SoundMAX HD Audio
 Default Sound Playback: Yes
 Default Voice Playback: Yes
			Hardware ID: HDAUDIO\FUNC_01&VEN_11D4&DEV_1981&SUBSYS_101402F9&REV_1002
		Manufacturer ID: 65535
			 Product ID: 65535
				   Type: WDM
			Driver Name: ADIHdAud.sys
		 Driver Version: 5.10.0001.4220 (English)
	  Driver Attributes: Final Retail
			WHQL Logo'd: Yes
		  Date and Size: 7/19/2005 13:57:18, 163840 bytes
			Other Files: 
		Driver Provider: AnalogDevices
		 HW Accel Level: Full
			  Cap Flags: 0xF5F
	Min/Max Sample Rate: 100, 192000
Static/Strm HW Mix Bufs: 33, 32
 Static/Strm HW 3D Bufs: 33, 32
			  HW Memory: 0
	   Voice Management: Yes
 EAX(tm) 2.0 Listen/Src: Yes, Yes
   I3DL2(tm) Listen/Src: Yes, Yes
Sensaura(tm) ZoomFX(tm): Yes
			   Registry: OK
	  Sound Test Result: Not run

---------------------
Sound Capture Devices
---------------------
			Description: SoundMAX HD Audio
  Default Sound Capture: Yes
  Default Voice Capture: Yes
			Driver Name: ADIHdAud.sys
		 Driver Version: 5.10.0001.4220 (English)
	  Driver Attributes: Final Retail
		  Date and Size: 7/19/2005 13:57:18, 163840 bytes
			  Cap Flags: 0x41
		   Format Flags: 0xCCC

-----------
DirectMusic
-----------
		DLS Path: C:\WINDOWS\SYSTEM32\drivers\GM.DLS
	 DLS Version: 1.00.0016.0002
	Acceleration: n/a
		   Ports: Microsoft Synthesizer, Software (Not Kernel Mode), Output, DLS, Internal, Default Port
				  Microsoft MIDI Mapper [Emulated], Hardware (Not Kernel Mode), Output, No DLS, Internal
				  Microsoft GS Wavetable SW Synth [Emulated], Hardware (Not Kernel Mode), Output, No DLS, Internal
		Registry: OK
	 Test Result: Not run

-------------------
DirectInput Devices
-------------------
	  Device Name: Mouse
		 Attached: 1
	Controller ID: n/a
Vendor/Product ID: n/a
		FF Driver: n/a

	  Device Name: Keyboard
		 Attached: 1
	Controller ID: n/a
Vendor/Product ID: n/a
		FF Driver: n/a

Poll w/ Interrupt: No
		 Registry: OK


#19
Stellair

Stellair

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 375 posts
  • Gender:Male
After searching a while I found out the info

Soundmax AD1981HD (Vendor ID 11d4 and Device ID 1981)

ICH7 (Vendor ID 8086 and Device ID 27d8)

This what I did;

<key>ICH6 AC97 Audio</key>

<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAC97AudioIntelICH</string>
<key>ICH Type</key>
<integer>6</integer>
<key>IOClass</key>
<string>AppleAC97AudioIntelICH</string>
<key>IOPCIPrimaryMatch</key>
<string>0x27d88086</string> <--------Added Correct Dev=27d8 Ven=8086
<key>IOProbeScore</key>
<integer>10000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>

<key>ICH7 AC97 Audio</key>

<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAC97AudioIntelICH</string>
<key>ICH Type</key>
<integer>7</integer>
<key>IOClass</key>
<string>AppleAC97AudioIntelICH</string>
<key>IOPCIPrimaryMatch</key>
<string>0x27d88086</string> <--------[b]Added Correct Dev=27d8 Ven=8086[/b]
<key>IOProbeScore</key>
<integer>10000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>

The sound didn't worked for now

Below are the changes made to AppleAC97CodecAD198x.kext Info.plist:

<dict>

<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAC97CodecAD198x</string>
<key>IOClass</key>
<string>AppleAC97CodecAD198x</string>
<key>IOProbeScore</key>
<integer>10000</integer>
<key>IOProviderClass</key>
<string>IOAC97CodecDevice</string>
<key>PNPVendorID</key>
<string>ADS75 ADS74 ADS73 ADS72</string> <-------- [b]Notting added because it's the ADS74 I use[/b]
</dict>

I've got an IBM Thinkcentre 8215-CTO P4 ht 3.2Ghz in test

#20
Kyklops

Kyklops

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

After searching a while I found out the info

Soundmax AD1981HD (Vendor ID 11d4 and Device ID 1981)

ICH7 (Vendor ID 8086 and Device ID 27d8)


I spent some time and couldn't find how you came up with ADS74 for the AD1981HD... I couldn't find a good referrence... What was your source?





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