Jump to content

Kyklops fix for audio AppleAC97CodecAD198x.kext


Kyklops
 Share

72 posts in this topic

Recommended 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 @-)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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)

56 0 0x1b486000 0x3000 0x2000 com.apple.driver.AppleAC97AudioVIA (1.0.0)

 

Can anyone help me

I have a Analog Digital AD1986a Soundcard

Please tell me if there is a fix

Link to comment
Share on other sites

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

Link to comment
Share on other sites

hope this helps

If not then I have attached the whole thing copyed and pasted from terminal onto textedit

 

| | | +-o AppleVIAATARoot

| | | | {

| | | | "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

| | | | | {

| | | | | "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PATA@f0001/CHN0@0"

| | | | | "Control Block Address" = 1012

| | | | | "Interrupt Vector" = 14

| | | | | "Channel Number" = 0

| | | | | "acpi-reg" =

| | | | | "IOInterruptControllers" = ("io-apic-0")

| | | | | "IOInterruptSpecifiers" = ()

| | | | | "Command Block Address" = 496

| | | | | }

| | | | |

| | | | +-o AppleVIAATADriver

| | | | | {

| | | | | "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"

| | | | |

ioreg__l.rtf

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 3 weeks later...

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

I based my finding on the AD1981B and AD1981BL that uses the same ID that is ADS74 so I concluded that it may work for the AD1981HD...but it didn't :(

 

Otherwise I couldn't find any related info on this AD1981HD :( and nobody seems to have it on the forum...I'm the only one....I feel lonely :)

Link to comment
Share on other sites

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> <-------- Notting added because it's the ADS74 I use

</dict>

[/code]

 

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

 

Try adding ADS70 here, like I did in my first post... Let me know how that goes @-)

Link to comment
Share on other sites

I also have the AD1981HD sound card and I adjusted the kext files as described above. I added the ADS70 but I was unable to get sound. Here is a link to the PDF from ADI about theis specific chip.

 

http://www.analog.com/UploadedFiles/Data_S...9AD1981HD_0.pdf

 

I honestly dont know what I am looking for, so maybe you can clue us in as to how to set this correctly.

 

Nofences

Link to comment
Share on other sites

I had found that pdf as well and looked for similar hex codes like I found for my sound card spec sheet:

 

4144h breaks down into 41=ascii A, 44= D and 5370h breaks down into 53=S, 70 or ADS70

 

I didn't see anything like this in the spec sheet for AD1981HD.

 

I was hoping that since my audio codec was a AD1980 that it might be similar.

 

I got the feeling that the info is in the spec sheet, just haven't figured it out yet... :D

Link to comment
Share on other sites

  • 3 weeks later...

my driver seems to be loading fine as below

 

| | | +-o AppleAC97AudioVIA <class AppleAC97AudioVIA, !registered, !matc$

| | | | {

| | | | "Power Management protected data" = "{ theNumberOfPowerStates$

| | | | "CFBundleIdentifier" = "com.apple.driver.AppleAC97AudioVIA"

| | | | "IOClass" = "AppleAC97AudioVIA"

| | | | "IOPCIPrimaryMatch" = "0x30591106" ..................This is correct

| | | | "IOProbeScore" = 0

| | | | "Power Management private data" = "{ this object = 04ef0500, $

| | | | "IOMatchCategory" = "IODefaultMatchCategory"

| | | | "IOProviderClass" = "IOPCIDevice"

| | | | "Hardware Name" = "VIA 8237"

| | | | }

| | | |

| | | +-o IOAC97CodecDevice@0 <class IOAC97CodecDevice, registered, ma$

| | | | {

| | | | "PNPVendorID" = "ADS70"........................this is also correct

| | | | }

| | | |

| | | +-o AppleAC97CodecAD198x <class AppleAC97CodecAD198x, register$

| | | | {

| | | | "IOMatchCategory" = "IODefaultMatchCategory"

| | | | "Hardware Name" = "ADS70"

| | | | "IOClass" = "AppleAC97CodecAD198x"

| | | | "PNPVendorID" = "ADS75 ADS74 ADS73 ADS70"

| | | | "IOProviderClass" = "IOAC97CodecDevice"

| | | | "CFBundleIdentifier" = "com.apple.driver.AppleAC97CodecAD$

| | | | "IOProbeScore" = 10000

| | | | }

 

I have an a7v8x se deluxe asus mb

soundmax ad1980 ac97 VIA chipset

 

I have tried plugging the sound into every available socket to no avail....

any suggestions would be really great...

Thanks

Link to comment
Share on other sites

 Share

×
×
  • Create New...