Jump to content

Atheros AR9285 fix for Snow Leopard - Mavericks


Andy Vandijck
 Share

155 posts in this topic

Recommended Posts

As you may know Apple was kind enough to fix the support for AR9285 WiFi card on 10.6.5
I will show you the easy way to make the driver load using DSDT and not touching the original kext:

From within OS X install the new IO80211Family.kext (present in fix package) instead of the old one.

The following also needs the DTGP function present in the DSDT.dsl like this:

 Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}

Locate your card on what root port is and add this code (e.g. on Acer Aspire One D250 = J380)
Add the _PRW and _DSM part as shown below and change the device name to ARPT:

 Device (ARPT)
{
Name (_ADR, 0x00)
Name (_PRW, Package (0x02) {0x0B, 0x05}) // If you want WOL(Wake on LAN support) if not use desired sleep state
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0c)
{
"AAPL,slot-name", Buffer () {"AirPort"},
"device-id", Buffer () {0x2A, 0x00, 0x00, 0x00},
"device_type", Buffer () {"AirPort"},
"model", Buffer () {"Atheros 9285 8802.11 b/g/n Wireless Network Adapter"},
"subsystem-id", Buffer () {0x8F, 0x00, 0x00, 0x00},
"subsystem-vendor-id", Buffer () {0x6B, 0x10, 0x00, 0x00}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Also I will show you the easy way to get rid of that "ATHR: Unknown Locale" warning ( I don't like spam on my log...)

First download attached fix files from the link below which contains the eeprom tool

Boot in Windows and:
Open the eeprom tool.
Choose the path and file name(do not use .bin or whatever, just a plain name like original) then save original eeprom.

Then install ComView for WiFi trial (ca6 folder in fix package).
Install then launch, it will ask to install custom driver, do it.

Use attached tool (RCU.exe in fix package) to change the RegDomain, from my experience 0x0 is the best, this works on all Atheros cards. Be aware that may be illegal to change the RegDoman on your country...
Also do this on your own risk, don't blame me if you brick the card, you have been warned!

f you want to dump modified eeprom after change, you have to uninstall comview driver and put default.
However the eeprom tool allow only read/dump not write, guess it needs a special driver that I don't have, maybe someone good on IDA can figure out what it needs...

Enjoy and Share!

Atheros AR9285 fix files:
http://rapidshare.com/files/425489338/Atheros_AR9285_fix.zip

All credits go to "THe KiNG"


Fix for 10.8.5 - 10.9.X

Edit: buoo
Credits: nyolc8 - oldnapalm
 

Method (_DSM, 4, NotSerialized)
{
    Store (Package (0x12)
        {
            "AAPL,slot-name", 
            Buffer (0x08)
            {
                "AirPort"
            }, 
            "device-id", 
            Unicode ("*"), 
            "device_type", 
            Buffer (0x08)
            {
                "AirPort"
            }, 
            "model", 
            Buffer (0x33)
            {
                "Atheros 9285 802.11 b/g/n Wireless Network Adapter"
            }, 
            "subsystem-id", 
            Buffer (0x04)
            {
                 0x8F, 0x00, 0x00, 0x00
            }, 
            "subsystem-vendor-id", 
            Buffer (0x04)
            {
                 0x6B, 0x10, 0x00, 0x00
            }, 
            "compatible", 
            Buffer (0x0B)
            {
                "pci168c,2a"
            }, 
            "IOName", 
            Buffer (0x0B)
            {
                "pci168c,2a"
            }, 
            "name", 
            Buffer (0x0B)
            {
                "pci168c,2a"
            }
        }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
}
Link to comment
Share on other sites

I did this the entire guide except that I did not do the eeprom fix thing, it uses VE as the locale just fine I guess, and also it reads RoW instead of FCC... the netbook is a cq10-100ss ... I highly recomend this piece of hardware since it gets fixed really easy to use SL and is so small, everythings wokrs soooo nice... really... buy it... dsdt is kind of tricky, but I'm willing to help anyone wanting a fixed one, but you will have to update it to f.02.

 

thanks anv... thanks theKing... thanks community... thanks chavez... thanks ché... thanks superHai, nawcom, everyone, thanks!

 

EDIT:

 

thanks, big thanks teaTeam!!!

Link to comment
Share on other sites

Hi,

 

I've tried a modified IO80211Family.kext from 10.6.5 and unmodified one with Legacy, got working adapter but still can't connect to my router (D-Link DIR-635, working well with Win 7 on same laptop). I noticed that it can see some networks (my too) but obtained incorrect IP and mask. If i set IP and mask manualy it connects but no acces to internet and router page (setup). I don't know whats wrong. Can you help me? Thanks.

 

 

EDIT:

Reconfiguring my router resolved a problem. Accepted security mode is WPA-2 PSK and encryption type TKIP. AES seams to be not supported at all.

Link to comment
Share on other sites

First of all thank you Andy for sharing this. Also thank you to THe KiNG too. My AR9285 works with 10.6.5 beta kexts. However it is partially work. It failed to join any network (WPA2 security mode). I also can't create private network (ad-hoc). It produced IO80211 framework error if I'm not mistaken (going to check the exact error later) whenever I tried to create ad-hoc network. I found out later that it can connect to WEP network (both open & with security key). After I read Bungo's previous post, I realized that it failed to connect any WPA2 network maybe because of the AES encryption. Going to try re-configure my router later. I'm definitely going to try AR9285 fix for Snow Leopard, except the eeprom thingy. I have bad experience with Atheros eeprom. So far I only have 100% success with Broadcom eeprom. :(

Link to comment
Share on other sites

My AR9285 also work just using legacy kext but since it doesn't work properly I use 10.6.5 beta kext. Today I tested with another access point, WPA2-PSK security & AES encryption, this time I was able to connect AR9285 with it. I don't know what is wrong with the access point I usually use. Anyway, I put this little code in DSDT just to make IOBuiltin=True in IOReg:-

                    // start - AirPort injection
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "built-in", 
                               Buffer (One)
                               {
                                   0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
                   // end - AirPort injection

My AR9285:-

en1:
Card Type:	AirPort Extreme  (0x168C, 0x1089)
Firmware Version:	Atheros 9285: 2.1.14.5
Locale:	Unknown
Country Code:	KR
Supported PHY Modes:	802.11 b/g/n
Supported Channels:	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Wake On Wireless:	Supported
Status:	Connected

Link to comment
Share on other sites

I've only just found this thread but got mine working today using a different method. I had installed iATKOS S3 v2 and was just at 10.6.3 and wireless was showing as present but wouldn't see any networks. After downloading and installing the kext from kexts.com and then updating to 10.6.4 including the airport update and all other updates after it rebooted my wireless is now working which i'm very pleased with.

 

I'm assuming it's the kext from kexts.com but I also earlier in the day had installed a modified kext which I added my device id to. Again this wasn't working before I installed all the updates. So it's either one of the 2 kexts that has fixed it. I have saved both kexts anyway (in case of rebuild ever needed) if anyone wants them to try.

Link to comment
Share on other sites

Strange... i have Samsung R590 (very similiar to R580) with that Atheros wifi (i think), and when i try to install iAtkos S3 v.2 snow dosen't see any new network devices, eg. no Atheros. I also tried on 10.6.4, 10.6.5....

 

Maybe clean retail install will help... ?

Link to comment
Share on other sites

Strange... i have Samsung R590 (very similiar to R580) with that Atheros wifi (i think), and when i try to install iAtkos S3 v.2 snow dosen't see any new network devices, eg. no Atheros. I also tried on 10.6.4, 10.6.5....

 

Maybe clean retail install will help... ?

 

 

Mine's a Compaq Mini 311c with the Atheros 9285. When I install iATKOS V3 s2 and choose the atheros wireless option once installed it sees it as an airport device but what it wont do is see any available networks. However with the above kext installed and then install the airport update it starts seeing all the networks and connects fine.

Link to comment
Share on other sites

  • 2 weeks later...
First of all thank you Andy for sharing this. Also thank you to THe KiNG too. My AR9285 works with 10.6.5 beta kexts. However it is partially work. It failed to join any network (WPA2 security mode). I also can't create private network (ad-hoc). It produced IO80211 framework error if I'm not mistaken (going to check the exact error later) whenever I tried to create ad-hoc network. I found out later that it can connect to WEP network (both open & with security key). After I read Bungo's previous post, I realized that it failed to connect any WPA2 network maybe because of the AES encryption. Going to try re-configure my router later. I'm definitely going to try AR9285 fix for Snow Leopard, except the eeprom thingy. I have bad experience with Atheros eeprom. So far I only have 100% success with Broadcom eeprom. :)

 

Kizwan, were you able to fix the ad-hoc issue? I need to create an ad-hoc network to share my wired internet connection to my ipod touch.

Link to comment
Share on other sites

I tried to replace Intel 5100 with Atheros 9280, but it gave me hardware error. Since some models of my laptop had been shipped with this card I thought it wouldn't be necessary to hack the bios.

I was wondering if it would make any difference to use a Atheros 9280 extracted from a HP laptop. The one I tried was from a toshiba.

Do they use the same vendor, system ids etc?

 

Otherwise I have to look for other solutions.

Link to comment
Share on other sites

I tried to replace Intel 5100 with Atheros 9280, but it gave me hardware error. Since some models of laptop had been shipped with this card I thought it would't be necessary to bios hack.

I was wondering if it would make any difference to use a Atheros 9280 extracted from a HP laptop. The one I tried was from a toshiba.

Do they use the same vendor, system ids etc?

 

Otherwise I have to look for other solutions.

Maybe the whitelist hold sub-vendor ID. Vendor ID always the same for all Atheros card which is 0x168C (Atheros). The only differences will be sub-vendor ID; 0x103C for HP. So, when you put wireless card from Toshiba, your notebook will be halted.

Link to comment
Share on other sites

Maybe the whitelist hold sub-vendor ID. Vendor ID always the same for all Atheros card which is 0x168C (Atheros). The only differences will be sub-vendor ID; 0x103C for HP. So, when you put wireless card from Toshiba, your notebook will be halted.

It makes sense. I'll try to find one from a HP laptop and see what happens.

Link to comment
Share on other sites

i'm having problems compiling the code. line

"device-id", Buffer () {0x2A, 0x00, 0x00, 0x00},

compiles into this

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

what's wrong ?

Nothing :)

 

0x2a is a * in Unicode.

 

Or print it from within your browsers' location bar:

java script:alert("\u002a");

But without the stupidly inserted space character.

Link to comment
Share on other sites

The super lazy/quick way is to edit the 10.6.5 IO80211Family.kext

 

IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/Info.plist

 

and add this string

 

<string>pci168c,2b</string>

 

even quicker just download the attachment.

 

Install to /E/E or /S/L/E rebuild mkext then reboot and enjoy

IO80211Family.kext.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...