Jump to content

Atheros AR9285 fix for Snow Leopard - Mavericks


Andy Vandijck
 Share

155 posts in this topic

Recommended Posts

seems macman forgot to make UID of pci 0

   Device (PCI0)
	{
		Name (_HID, EisaId ("PNP0A03"))
		Name (_ADR, Zero)
		Name (_UID, One) // should be Zero
		Name (_BBN, Zero)

http://www.insanelym...pic=190780&st=0

Required for 10.6.8 and Lion: PCI Patch

 

Device (PCI0)

{

Name (_HID, EisaId ("PNP0A08"))

Name (_CID, EisaId ("PNP0A03"))

Name (_ADR, Zero)

Name (_UID, Zero)

Link to comment
Share on other sites

So do I need to insert this code somewhere as well as the original code in PEG1?

 

Update: I just changed the UID to zero... The error message still occurred.

 

Update 2: I have tried every permutation of the above code in PCI0 and still get the error message. Now I'm really confused... :(

Link to comment
Share on other sites

original dsdt ??

Name (TMAC, "GA-Z68X-UD3H-B3-F8 edits by MacMan at tonymacx86.com 2011-09-12")

what bios version u have ?

 

sounds like when i said u need dsdt u went out and found one. instead of extracting yours.

Link to comment
Share on other sites

for some strange reason its not letting me make device-id work in the dsdt. keeps going unicode 0.

Device (ARPT)
			{
				Name (_ADR, Zero)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"AAPL,slot-name",
							Buffer (0x08)
							{
								"AirPort"
							},
							"device_type",
							Buffer (0x08)
							{
								"AirPort"
							},
							"subsystem-id",
							Buffer (0x04)
							{
								0x8F, 0x00, 0x00, 0x00
							},
							"device-id",
							Buffer (0x04)
							{
								0x2A, 0x00, 0x00, 0x00
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}

turns into this

Device (ARPT)
			{
				Name (_ADR, Zero)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"AAPL,slot-name",
							Buffer (0x08)
							{
								"AirPort"
							},
							"device_type",
							Buffer (0x08)
							{
								"AirPort"
							},
							"subsystem-id",
							Buffer (0x04)
							{
								0x8F, 0x00, 0x00, 0x00
							},
							"device-id",
							Unicode ("0")
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}

"device-id", Unicode ("0")

BAD .. I NEVER HAD THIS HAPEN

i was able to keep device id when i moved code to pex1 . so it something with peg1 . pciexpress graphics ?

 

can u switch it from slot to another and check ioregistry explorer

also can u show me lspci -n

Link to comment
Share on other sites

Sorry about the DSDT.aml I uploaded. I uploaded the DSDT.aml file from Library/Extras, rather than saving the extracted DSDT.aml from DSDT Explorer. Attached is the extracted DSDT.

 

I do indeed have a pciexpress graphics card installed. I tried changing around the slot that the tp=link wifi card is in, and eventually managed to have it in now running in PEX2 (as per screen shot attached). im not sure what you mean by lspci -n.

 

http://www.mediafire...c34009991r8cqbf

Link to comment
Share on other sites

add

Device (ARPT)
							{
									Name (_ADR, Zero)
									Method (_DSM, 4, NotSerialized)
									{
											Store (Package (0x08)
													{
															"AAPL,slot-name",
															Buffer (0x08)
															{
																	"AirPort"
															},
															"device_type",
															Buffer (0x08)
															{
																	"AirPort"
															},
															"subsystem-id",
															Buffer (0x04)
															{
																	0x8F, 0x00, 0x00, 0x00
															},
															"device-id",
															Buffer (0x04)
															{
																	0x2A, 0x00, 0x00, 0x00
															}
													}, Local0)
											DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
											Return (Local0)
									}
							}

at pex2 (_ADR, blablaaddress|(here press enter if using dsdt editor not dsdtse)

here u add the code above ( u can change device id to 30 instead of 2A to try firmware 4. instead of version 2. for 2A ar9280)

 

tip to not copy coloring codes from forum .. paste to notepad first then make plain text.. then recopy from text editor and paste to dsdt editor..

 

lspci http://www.osx86.es/?p=620

 

your dsdt from macman is for bios F8. do u have F8

text compare the .dsl of both yours and his to see whats changed.

Link to comment
Share on other sites

Okay thanks latinmcg. I just tried your suggestions, and have been trying to get it to work for hours now... I think im way out of my depth here and completely lost. Would you be able to insert the code for me?

 

And yes my bios is F8.

 

DSDT editor doesn't compile for me (and doesn't give me any errors), DSDTSE gives me errors saying there are invalid characters (but there are no characters on the line it refers to). If you could insert the code for me it would be greatly appreciated. I'd be able to see how it is supposed to be entered properly.

Link to comment
Share on other sites

  • 2 weeks later...

I've been trying this. But I'm not good in DSDTing :(

 

Could anyone tell me how to put this correctly in my DSDT?

 

I'm using ASRock Z77 Extreme4 board with i5 2500k. Atheros 9285 card is TP-Link TL-WN781ND v1.

 

I extracted my DSDT (using DSDTE/DSDT Editor), but when I tried to integrate the DSDT code (from page 1), IASL gives me errors (18 errors to be exact). Could anyone tell me how to correct this?

 

here's the original, unmodified DSDT from my board: dsdt_stock.txt

 

here's the version after I inserted the code in page 1: dsdt_modded.txt

 

and here goes the IASL compilation log, with 18 errors: iasl_log.txt

 

RP07 is where the card is plugged in, as shown in IOReg:

post-182419-0-78467500-1336485371_thumb.png

 

Anyhelp will be greatly appreciated.

 

Thanks in advance!

Link to comment
Share on other sites

pnoytechie

DSDT compilation errors was fixed, basic fixes applied, AirPort device and injection added, and .dsl file for future hack editions attached.

 

Then,

Try the dsdt.aml from /Extra

+

Install the DeviceMergeNub injector in /S/L/E. And just try installing only one of them at time, because it depend of firmware card to show in ioreg.

+

Repair permissions and rebuild cache. Finally, restart the system. Sorry my English. Good Luck.

 

NOTE: This is to use with the VANILLA IO80211Family.kext

DSDT ready.zip

DeviceMergeNub.kext_AtherosNewma40_AirPort.zip

DeviceMergeNub.kext_AtherosFusion21_AirPort.zip

  • Like 2
Link to comment
Share on other sites

pnoytechie DSDT compilation errors was fixed, basic fixes applied, AirPort device and injection added, and .dsl file for future hack editions attached. Then, Try the dsdt.aml from /Extra + Install the DeviceMergeNub injector in /S/L/E. And just try installing only one of them at time, because it depend of firmware card to show in ioreg. + Repair permissions and rebuild cache. Finally, restart the system. Sorry my English. Good Luck. NOTE: This is to use with the VANILLA IO80211Family.kext

 

thank you very much juanerson. i haven't tried it yet, but i will when i get the time.

 

so you mean to say that this DSDT patch for AR9285 will not work without the devicemergenub?

 

thanks again, appreciate it.

Link to comment
Share on other sites

thank you very much juanerson. i haven't tried it yet, but i will when i get the time.

 

so you mean to say that this DSDT patch for AR9285 will not work without the devicemergenub?

 

thanks again, appreciate it.

devicemergenub was adjusted to change country code locale.

Link to comment
Share on other sites

  • 3 weeks later...

Device (ARPT)
		    {
			    Name (_ADR, Zero)
			    Method (_DSM, 4, NotSerialized)
			    {
				    Store (Package (0x18)
					    {
						    "AAPL,slot-name",
						    Buffer (0x09)
						    {
							    "Built In"
						    },
						    "built-in",
						    Buffer (One)
						    {
								 0x00
						    },
						    "device_type",
						    Buffer (0x08)
						    {
							    "AirPort"
						    },
						    "device-id",
						    Unicode ("*"),
						    "compatible",
						    Buffer (0x28)
						    {
							    "pci106b,8f, pci168c,2b, pciclass,028000"
						    },
						    "model",
						    Buffer (0x20)
						    {
							    "AR9285 Wireless Network Adapter"
						    },
						    "IOName",
						    Buffer (0x0B)
						    {
							    "pci168c,2b"
						    },
						    "name",
						    Buffer (0x0B)
						    {
							    "pci168c,2b"
						    },
						    "revision-id",
						    Buffer (0x04)
						    {
								 0x01, 0x00, 0x00, 0x00
						    },
						    "subsystem-id",
						    Buffer (0x04)
						    {
								 0x8F, 0x00, 0x00, 0x00
						    },
						    "subsystem-vendor-id",
						    Buffer (0x04)
						    {
								 0x6B, 0x10, 0x00, 0x00
						    },
						    "vendor-id",
						    Buffer (0x04)
						    {
								 0x8C, 0x16, 0x00, 0x00
						    }
					    }, Local0)
				    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				    Return (Local0)
			    }
		    }
	    }

039b00e4bd403ca02f21c4bcaa5ce57e.png

Link to comment
Share on other sites

pnoytechie

DSDT compilation errors was fixed, basic fixes applied, AirPort device and injection added, and .dsl file for future hack editions attached.

 

Then,

Try the dsdt.aml from /Extra

+

Install the DeviceMergeNub injector in /S/L/E. And just try installing only one of them at time, because it depend of firmware card to show in ioreg.

+

Repair permissions and rebuild cache. Finally, restart the system. Sorry my English. Good Luck.

 

NOTE: This is to use with the VANILLA IO80211Family.kext

 

thanks for all those who tried to help me, esp. juanerson and LatinMcG.

 

but no matter how i tried (i can no longer count how many), my setup cannot detect the device with DSDT injection.

 

i ended up just editing the Info.plist of AirPortAtheros40.kext and this one worked (150mbps), even AirDrop, even though it just shows as "Wi-Fi" (not AirPort)

 

thanks again.

Link to comment
Share on other sites

Just upgraded from 10.7.2 to 10.7.4 and my AR9285 has stopped working (meaning that osx reports "Wi-Fi: no hardware installed" under the WiFi icon).

 

Reverting to the 10.7.2 IO80211Family.kext (replacing the new one with the old one using kextwizard) works, but returning the new one borks it again. really have no idea where to start looking.

 

I tried changing my DSDT's with every trick listed in this thread (including using 0x30 instead of 0x2A), and finally broke down and tried editing the kext - that did not work either.

 

is there a possibility that Apple has restricted this somehow to block other hardware? has anyone else encountered this?

 

Just for reference i am using the Asus U36SD which has the AR9002WB-1NG (link - http://www.qca.qualcomm.com/technology/technology.php?nav1=47&product=75 ) inside. it's basically an AR9285 with an AR3011 (BT) combined on a single chip (both are separate - so it's a genuine AR9285), and the DSDT trick worked (and still does) fine with the 10.7.2 kext.

 

attached are the original DSDT and my modded one (which works with the 10.7.2 kext) i'd appreciate any help anyone can offer. i don't want to have to revert to using an old kext.

DSDTs.zip

Link to comment
Share on other sites

Found a fix if anyone is interested for future reference...

 

Took a look in my kernel log and spotted the following message:

Jun 13 04:32:32 localhost kernel[0]: start [/sourceCache/AirPortDriverAtheros9380/AirPortDriverAtheros9380-431.14.10/src/common/lmac/ath_dev/darwin/AtherosController.cpp:962] load failed

 

after a bit of google leg work - i found this link by delifruit. the solution turns out to be quite simple - though i have no explanation for it (perhaps some googling will do...)

to quote his fix:

To solve this problem, Open the info.plist file which is located in the IO80211Family.kext > AirportAtheros40.kext > Contents

and delete the following 2 lines

<key>OSBundleRequired</key>

<string>Network-Root</string>

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

hi

In examining the plist kexts from ateros40 noticed here is the difference and if the change in the native 600 by 500 it starts to work without kekst Legacy

2e72a073e6a022f437e3d716989ac270.png

It turns out that the need to amend section dsdt

 

Device (ARPT)
		    {
			    Name (_ADR, Zero)
			    Method (_DSM, 4, NotSerialized)
			    {
				    Store (Package (0x18)
					    {
						    "AAPL,slot-name",
						    Buffer (0x09)
						    {
							    "Built In"
						    },
						    "built-in",
						    Buffer (One)
						    {
								 0x00
						    },
						    "device_type",
						    Buffer (0x08)
						    {
							    "AirPort"
						    },
						    "device-id",
                               Unicode ("*"), \\ You can change the "+" to unicode = 2b
						    "compatible",
						    Buffer (0x28)
						    {
							    "pci106b,8f, pci168c,2b, pciclass,028000"
						    },
						    "model",
						    Buffer (0x20)
						    {
							    "AR9285 Wireless Network Adapter"
						    },
						    "IOName",
						    Buffer (0x0B)
						    {
							    "pci168c,2b"
						    },
						    "name",
						    Buffer (0x0B)
						    {
							    "pci168c,2b"
						    },
						    "revision-id",
						    Buffer (0x04)
						    {
								 0x01, 0x00, 0x00, 0x00
						    },
						    "subsystem-id",
						    Buffer (0x04)
						    {
								 0x8F, 0x00, 0x00, 0x00
						    },
						    "subsystem-vendor-id",
						    Buffer (0x04)
						    {
								 0x6B, 0x10, 0x00, 0x00
						    },
						    "vendor-id",
						    Buffer (0x04)
						    {
								 0x8C, 0x16, 0x00, 0x00
						    }
					    }, Local0)
				    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				    Return (Local0)
			    }
		    }
	    }

Link to comment
Share on other sites

  • 3 months later...

check out the AR9287 driver page

http://www.insanelym...howtopic=257011

Only works in Mac_OS_X_10.6.7 with mach_kernel Darwin 10.7.4

 

update to 10.6.7 then

Substitute the existing mach_kernel in the MAC OS system drive and Chameleon's Extra folder with this one. Use a small tool 'ShowAllFiles' to show the hidden mach_kernel. Delete it and copy the new one in. Then hide the files.

This kext works well for my AR9285 (168c,2b) wireless card in Mac OS X 10.6.7 (vanilla kernel). I only use the kext & doesn't touch my DSDT or kernel to get it working. I only add device ID (168c,2b) in AirPortAtheros9388.kext. It now can support 802.11n network & WPA2 encryption.

 

AtherosAR9285AirPortAtheros9388SL1067.jpg

Link to comment
Share on other sites

kizwan.. i wonder if kext can be edited to fake it to be 10.6.8 version.

===============================================================

 

yuric

"device-id",

Unicode ("*"), \\ You can change the "+" to unicode = 2b

 

 

if the device id in pc is same.. it makes it asterisk.

 

u can change it to 2A (like first post) or 30

Link to comment
Share on other sites

kizwan.. i wonder if kext can be edited to fake it to be 10.6.8 version.

Sorry, I don't know. Did you try Lion IO80211Family.kext kext (AirPortAtheros40.kext)? I'm dual booting with SL & ML. For ML, I'm using this driver.

 

The reason why I only updated to 10.6.7 is because ATI mobility support. Starting from 10.6.8 & above (Lion & ML), I can't declare (in ATI framebuffer personality) the internal LCD as internal LCD because it will produced corrupted image on the internal LCD. When declaring the internal LCD as not internal, the video is perfect except when display sleep, the backlight doesn't turn off.

Link to comment
Share on other sites

 Share

×
×
  • Create New...