Jump to content

AD1984 used in Thinkpad X61 and L61 computers


  • Please log in to reply
201 replies to this topic

#1
jacob019

jacob019

    InsanelyMac Protégé

  • Members
  • PipPip
  • 90 posts
Here's my research so far. Let's all give this some effort and get it sorted out.

After installing taruga's ad1986 patch I modified the plist files for AppleHDA.kext and AppleHDAController.kext to match our ad1984 by changing string 299112838 to 299112836. According to ioreg, AppleHDAController and IOHDACodecDevice load fine. The problem is now with IOHDACodecDriver.

I've noticed a clever solution at http://forum.insanel...showtopic=61513 for a different chip. This guy was stuck at exactly the same point and managed to resolve it. I think we can adapt his method to get our sound working.

It seems the next step involves modifying the Info.plist for ALCinject.kext. The layout-id field needs to be changed. It's important to modify the field with a property list editor, as a standard text editor doesn't display it right. Tarugas AD1986 patch has the field set to 13 or 0D000000 in hex. Based on the work of macdanger it seems we just need to try many values sequentially until one loads the driver. After we load the driver successfully then we can move on to fixing the codec.

The datasheet for our AD1984 can be found at: http://www.analog.co...eets/AD1984.pdf
The linux codec dump is attached.

Post your thoughts and results here. We can do it!

Jacob

Attached Files



#2
Wenle Z.

Wenle Z.

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 254 posts
  • Gender:Male
interesting... i wish someone can have this solve, so i can have a real insgtallatino on my X61

#3
popophobia

popophobia

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 124 posts
Let's do this.

can you upload the modiefied AppleHDA.kext (modified so far) so we can work on it?

And, after sequentially trying all the values for layout-id, do we do ioreg to see if the driver is working?

I will try to look around to see what I can do. But yes, we need sound for X61. One step closer to completely functioning Mac.

#4
jacob019

jacob019

    InsanelyMac Protégé

  • Members
  • PipPip
  • 90 posts
Popophobia,

Here's my AppleHDA.kext, the codec will still need some work. I've also included a few lines from "ioreg -l". These devices are nested sequentially. Notice how everything load up until IOHDACodecDriver where it says !registered, !matched (! meaning not). You may also notice that there is IOHDACodecDevice@0 and IOHDACodecDevice@1, we are only concerned with IOHDACodecDevice@0, the other one is the modem I believe. I believe we need to get ALCinject working first. Keep me posted.

AppleHDAController <class AppleHDAController, registered, matched, active, busy 0, retain 7>
IOHDACodecDevice@0 <class IOHDACodecDevice, registered, matched, active, busy 0, retain 6>
IOHDACodecDriver <class IOHDACodecDriver, !registered, !matched, active, busy 0, retain 5>
IOHDACodecFunction@1 <class IOHDACodecFunction, registered, matched, active, busy 0, retain 4>

This laptop really kicks ass as a hackintosh, everything's working great for me except audio and SpeedStep. I put in an atheros wifi card today and it works just like an airport express! If we get audio going we'll have the perfect machine. I'd buy a MacBook if they made them in 12"

Attached Files



#5
popophobia

popophobia

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 124 posts
Got it. I'll try it out to see how I can do it.

So, after changing the kext file and fixing permission, do we have to reboot or is a kextload command sufficient?

Found this:
http://x86osx.com/bb...7c39bc46e3a6e0f

Seems like 1984 support is on the way.

(you can use google translate)

#6
jacob019

jacob019

    InsanelyMac Protégé

  • Members
  • PipPip
  • 90 posts
it looks promising, but that post was in early January. After modifications run "sudo rm /System/Library/Extensions.*" That should be enough for the drivers to be reload next boot.

#7
popophobia

popophobia

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 124 posts
Hey,
I found out something today. If you play a song in OS X and unplug the AC adapter, there's a short burst of sound from the speaker. Maybe there is something wrong with the power management control of HDA kext file.

I installed Azalia patch and was able to get the volume control (and this weird behaviour).

Here's part of the ioreg output

| |   | +-o AppleAzaliaController  <class AppleAzaliaController, registered, matched, active, busy 0, retain 8>
	| |   |   | {
	| |   |   |   "IOProviderClass" = "IOPCIDevice"
	| |   |   |   "IOProbeScore" = 0
	| |   |   |   "CFBundleIdentifier" = "com.apple.driver.AppleAzaliaController"
	| |   |   |   "IOMatchCategory" = "IODefaultMatchCategory"
	| |   |   |   "IOPCIPrimaryMatch" = "0x26688086 0x27d88086 0x284b8086 0x32881106 0x026c10de 0x037110de 0x03e410de 0x03f010de 0x044a10de 0x044b10de 0x437b1002 0x43831002 0x75021039"
	| |   |   |   "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
	| |   |   |   "IOClass" = "AppleAzaliaController"
	| |   |   | }
	| |   |   | 
	| |   |   +-o IOHDAudioCodecDevice@0  <class IOHDAudioCodecDevice, registered, matched, active, busy 0, retain 6>
	| |   |   | | {
	| |   |   | |   "IOHDAudioCodecVendorID" = 299112836
	| |   |   | |   "IOHDAudioCodecRevisionID" = 1049600
	| |   |   | | }
	| |   |   | | 
	| |   |   | +-o IOHDAudioCodecDriver  <class IOHDAudioCodecDriver, !registered, !matched, active, busy 0, retain 5>
	| |   |   |   | {
	| |   |   |   |   "IOProviderClass" = "IOHDAudioCodecDevice"
	| |   |   |   |   "IOProbeScore" = 0
	| |   |   |   |   "IOMatchCategory" = "IODefaultMatchCategory"
	| |   |   |   |   "IOClass" = "IOHDAudioCodecDriver"
	| |   |   |   |   "CFBundleIdentifier" = "com.apple.iokit.IOHDAudioFamily"
	| |   |   |   | }
	| |   |   |   | 
	| |   |   |   +-o IOHDAudioCodecFunction@1  <class IOHDAudioCodecFunction, registered, matched, active, busy 0, retain 6>
	| |   |   |	 | {
	| |   |   |	 |   "IOHDAudioCodecFunctionSubsystemID" = 397025501
	| |   |   |	 |   "IOHDAudioCodecFunctionGroupType" = 1
	| |   |   |	 | }
	| |   |   |	 | 
	| |   |   |	 +-o AppleAzaliaAudioCodecGeneric  <class AppleAzaliaAudioCodecGeneric, registered, matched, active, busy 0, retain 10>
	| |   |   |	   | {
	| |   |   |	   |   "IOProviderClass" = "IOHDAudioCodecFunction"
	| |   |   |	   |   "IOProbeScore" = 0
	| |   |   |	   |   "IOMatchCategory" = "IODefaultMatchCategory"
	| |   |   |	   |   "IOHDAudioCodecFunctionGroupType" = 1
	| |   |   |	   |   "IOClass" = "AppleAzaliaAudioCodecGeneric"
	| |   |   |	   |   "CFBundleIdentifier" = "com.apple.driver.AppleAzaliaAudio"
	| |   |   |	   | }
	| |   |   |	   | 
	| |   |   |	   +-o AppleAzaliaAudioDriver  <class AppleAzaliaAudioDriver, registered, matched, active, busy 0, retain 6>
	| |   |   |		 | {
	| |   |   |		 |   "IOProbeScore" = 0
	| |   |   |		 |   "IOAudioDeviceManufacturerName" = "Apple"
	| |   |   |		 |   "InputSampleLatency" = 30
	| |   |   |		 |   "CFBundleIdentifier" = "com.apple.driver.AppleAzaliaAudio"
	| |   |   |		 |   "IOMatchCategory" = "IODefaultMatchCategory"
	| |   |   |		 |   "IOPowerManagement" = {"CurrentPowerState"=1,"DriverChangePowerState"=1}
	| |   |   |		 |   "IOAudioDeviceShortName" = "Built-in"
	| |   |   |		 |   "IOProviderClass" = "AppleAzaliaAudioCodec"
	| |   |   |		 |   "IOAudioDeviceCanBeDefaults" = 7
	| |   |   |		 |   "IOAudioDeviceTransportType" = 1651274862
	| |   |   |		 |   "IOAudioDeviceName" = "Built-in Audio"
	| |   |   |		 |   "IOAudioDeviceModelID" = "AppleAzaliaAudioDriver:Built-in Audio"
	| |   |   |		 |   "SampleOffsetPad" = 0
	| |   |   |		 |   "IOClass" = "AppleAzaliaAudioDriver"
	| |   |   |		 |   "OutputSampleLatency" = 30
	| |   |   |		 | }
	| |   |   |		 | 
	| |   |   |		 +-o AppleAzaliaAudioEngineOutput  <class AppleAzaliaAudioEngineOutput, registered, matched, active, busy 0, retain 21>
	| |   |   |		   | {
	| |   |   |		   |   "IOAudioEngineOutputSampleLatency" = 30
	| |   |   |		   |   "IOAudioEngineDescription" = "HD Audio Output"
	| |   |   |		   |   "IOAudioEngineNumActiveUserClients" = 0
	| |   |   |		   |   "IOAudioEngineNumSampleFramesPerBuffer" = 16384
	| |   |   |		   |   "IOAudioEngineSampleOffset" = 32
	| |   |   |		   |   "IOAudioEngineClockDomain" = 87819776
	| |   |   |		   |   "IOAudioEngineState" = 0
	| |   |   |		   |   "IOAudioEngineFlavor" = 1
	| |   |   |		   |   "IOAudioEngineGlobalUniqueID" = "AppleAzaliaAudioEngineOutput:0"
	| |   |   |		   |   "IOAudioSampleRate" = {"IOAudioSampleRateFraction"=0,"IOAudioSampleRateWholeNumber"=44100}
	| |   |   |		   |   "IOAudioEngineInputSampleLatency" = 30
	| |   |   |		   |   "IOGeneralInterest" = "IOCommand is not serializable"
	| |   |   |		   | }


#8
el31415

el31415

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts
Any news on the sound for x61 ?

#9
mulletman13

mulletman13

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts
I would also like to know this, as I have a Thinkpad R61 with the same sound adapter.

Thanks!

#10
stinkytofu

stinkytofu

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 posts
Hope for the best if this project is still going on... sound would be superb on T61's as well...

#11
wildfire2

wildfire2

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 2 posts
Yea, we need sound! T61 is awesome as Hackintosh. Also, what Atheros wifi card models works with this and do I need to make mods or does csard work out of the box?

#12
stinkytofu

stinkytofu

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 posts
wildfire2

i use the thinkpad a/b/g card and it works.

use this guide here for editing the wireless

http://forum.thinkpa...pic.php?t=52240

i have Nvidia NVS 140 M graphics card and i still dont have graphics acceleration - so the closest thing i can get is doing the same thing as that guy - 1440x900 manual edit.

#13
mulletman13

mulletman13

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts
I think our best bet is to try and get Taruga to personally look at it on his forum. I'm really hoping that we'll be able to get this.... an entire notebook manufacturer (Lenovo) uses this chip for their portables... he'd be helping a lot of people!

I read somewhere that there was some info about the card buried in 10.5.3 but I haven't updated yet. Anybody familiar?

Taruga's wiki is here:

http://wiki.taruga.net/

Sign up and make some noise!

#14
jacob019

jacob019

    InsanelyMac Protégé

  • Members
  • PipPip
  • 90 posts
It's unfortunate that we've been unable to get sound going on this thing. For the most part I like my X61 hackintosh more than my macbook, but I've given up. I'm going to sell my X61 and buy an X60.

#15
mulletman13

mulletman13

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts
jacob,

Have you tried these things under 10.5.3? I get some different behaviour with the AD1984 and I hear that there is some mention of the codec in native OSX code. If not, can you tell me what to do so I can keep atempting things?

Thanks much!

#16
jacob019

jacob019

    InsanelyMac Protégé

  • Members
  • PipPip
  • 90 posts
Hi Mulletman,

I haven't tried 10.5.3 yet. I have also heard these rumors, but no one has ever reported success. I'll try upgrading and see what happens.

Jacob

#17
mulletman13

mulletman13

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts
According to : http://www.thinkwiki.org/wiki/AD1984

the AD1984 shares a bus with the modem... I'm not entirely sure what they are talking about in that Wiki, but it seems that in whatever OS they are talking about the sound card would not work until the modem was initialized..... I haven't tried it, but do our modems work? Are they initialized at all?

#18
jacob019

jacob019

    InsanelyMac Protégé

  • Members
  • PipPip
  • 90 posts
ALSA is for linux sound. From what I gather, they're just saying that you can't disable the modem in the bios without affecting the sound. It shouldn't matter for us, you don't actually need modem drivers loaded, and the hardware is definitely initialized as it shows up in ioreg.

#19
mulletman13

mulletman13

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts
Got it. I installed your modified AppleHDA.kext in 10.5.3, and it takes away the functionality of the volume buttons. Additionally all media plays for about two seconds and then stops. I know it wasn't a completed HDA or anything whatsoever, I'm just trying to see what was modified and where to go from here. I have a lot of time on my hands at this point, and I'd like to try whatever I can-- I'm just not entirely sure on where to start.

#20
mulletman13

mulletman13

    InsanelyMac Protégé

  • Members
  • PipPip
  • 89 posts

Here's my research so far. Let's all give this some effort and get it sorted out.

After installing taruga's ad1986 patch I modified the plist files for AppleHDA.kext and AppleHDAController.kext to match our ad1984 by changing string 299112838 to 299112836. According to ioreg, AppleHDAController and IOHDACodecDevice load fine. The problem is now with IOHDACodecDriver.

I've noticed a clever solution at http://forum.insanel...showtopic=61513 for a different chip. This guy was stuck at exactly the same point and managed to resolve it. I think we can adapt his method to get our sound working.

It seems the next step involves modifying the Info.plist for ALCinject.kext. The layout-id field needs to be changed. It's important to modify the field with a property list editor, as a standard text editor doesn't display it right. Tarugas AD1986 patch has the field set to 13 or 0D000000 in hex. Based on the work of macdanger it seems we just need to try many values sequentially until one loads the driver. After we load the driver successfully then we can move on to fixing the codec.

The datasheet for our AD1984 can be found at: http://www.analog.co...eets/AD1984.pdf
The linux codec dump is attached.

Post your thoughts and results here. We can do it!

Jacob



I just want to get this straight so I can start getting some work done.

So the first thing that I did was install Taruga's 1986 patch. Then I changed 299112838 to 299112836. Just curious -- but where does this number come from? In any case, after I did that, I open up Info.plist in ALCinject.kext and sequentially change the layout-id field? How am I sure that the driver loads? ALCInject.kext will appear in ioreg? Sorry, macdanger's post didn't really lead me to understand what was going on.

Nevertheless what numbers have you tried in ALCInject's plist? I'm sure we would have a legion of people behind us trying different things if there are more clear-cut instructions :)

Thanks!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

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