Jump to content
Shailua

Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8

152 posts in this topic

Recommended Posts

I had managed to make it work and copy files over the local network without freezing.

The problem appeared again after updating the FakeSMC, because I was missing the sensors data in HW monitor.

So I believe there must be relation between the FakeSMC and the ALX kext.

how about discussing your findings with fakesmc authors as well as posting on applelife.ru?

Share this post


Link to post
Share on other sites
Advertisement

I had managed to make it work and copy files over the local network without freezing.

The problem appeared again after updating the FakeSMC, because I was missing the sensors data in HW monitor.

So I believe there must be relation between the FakeSMC and the ALX kext.

can you elaborate? what version of fakesmc were you using prior to updating it? if english is a problem - по-русски говоришь?

Share this post


Link to post
Share on other sites

Hi, Shailua

 

I'm usingClover revision: 2563  running on Dell System Inspiron 7420, and the NIC is AR8161.

 

After installing the driver of version 1.0.2, the device did not work and this log can be found in syslog:

4/18/14 10:51:04.239 AM com.apple.kextd[12]: kext com.insanelymac.ALXEthernet  100029000 is in exception list, allowing to load
4/18/14 10:51:04.000 AM kernel[0]: [ALXEthernet] Error: HW is disabled.
4/18/14 10:51:04.000 AM kernel[0]: [ALXEthernet] Error: Unable to initialise ALX adapter structure.
4/18/14 10:51:04.000 AM kernel[0]: [ALXEthernet] Error: Unable to initialise adapter.

Somedays ago, i used to use Chameleon, and then my NIC worked with your driver, however, when switching to Clover, it does not.

 

Some suggestion from you? Thanks in advanced.

Share this post


Link to post
Share on other sites

Im currently running 10.9.2 on a Gigabyte z77x-d3h and I was wondering if there is any development going on for this driver, since this seems to be the only recent one that targets this Atheros nic on osx.

 

Version 1.0.2 has problems with large SMB data transfers on 10.8 and 10.9 for me and freezes OSX randomly on browser/flash related network activity (sometimes it runs fine for weeks and sometimes it hangs a few times a day), I'm grateful for Shailua's work on this driver but I was just wondering if there is any work going on to stabilize it, ive build it in xcode for 10.9 but that didnt really change anything.

 

However, I did also test with AtherosL1cEthernet.kext, it builds fine in xcode for 10.9 and runs very smooth: cpu load is fine, sleep is faster (down from 30-40 secs to 10-15 for suspends), SMB and lots of network connections seem to work fine too, been running it for multiple weeks now.

It does however fail in 1 app for me (world of warcraft), where it always either freezes or forces a reboot which makes it rather useless for me, since the logs don't show anything and im rather new to osx when it comes to debugging I can't really see whats causing this and why it works fine in other stress situations but it might be a solution for those that experience random freezes on the Z77x-d3h.

 

Im probably going to grab a realtek gigabit nic soon anyway but was wondering if I overlooked any solutions for my nic problems.

Share this post


Link to post
Share on other sites

Hullo all.

People were having problems with this, and since I ended up with a board that has a AR8161 chip in it, I figured I'd see if I could fix it, and I haven't had any panics or other problems yet. I took the 1.0.2 code, and because of xcode code analysis found some memory that wasn't getting released and hence causing the panic/freezes.

 

I also reduced the number of RX/TX descriptors for latency reasons, but as of course, I'm including the modified code, you can tweak, push, recompile for ML, etc.

At least on my system, it doesn't appear to impact CPU or transfer speed/efficiency usage either way, but does affect latency a little.

 

I 'torture' tested it on various multi-GB downloads, Steam, game launchers, etc, stuff that would normally kill it within 30 seconds, and it hasn't had any problems for me.

 

At any rate, it's compiled for Mavericks, 64-bit only, includes the source code so you can recompile it for your own needs. I was getting a freeze every few minutes with 1.0.2, haven't had one in days with this so far. It's not "my" code or project, so I can't really offer any support whatsoever on this, of course. Just thought people with the affected chips might be as eager for something that works as I am. Hopefully it works for everyone else. If it doesn't, I'm sorry, but there's just not much I can do about it. If you're worried, feel free to do a diff and compile it yourself. I'm not fussed.

 

ALXEthernet.zip

 

ALXEthernet-1.0.3.zip

 

EDIT: 1.0.3 was redone a bit cleaner, uses more defaults, still compiled for 10.9, 64-bit only.

Haven't done as much stress testing on it, but also appears fine.

I discovered on both, using Apple's "Logic Remote" from Wifi (then to ethernet) will kill the driver immediately with "incorrect zfree from zone kalloc.16 to zone kalloc.32".

It's not something I really know anything about, to be honest.

Share this post


Link to post
Share on other sites

hello Zephiris , i had no problem with the previous version with my chip AR8171 and your version works alright too , any improvements and optimizations are welcome :) thank you

Share this post


Link to post
Share on other sites

I have an AR8161, see sig for details, and with ALXEthernet.kext 1.0.2 ethernet works, at lest for a little while, but it causes my mouse cursor to lag and jump around every couple of seconds. Removing the ALXEthernet.kext fixes the mouse jumping. 

 

But like I said, the ethernet works for a little bit, then after a couple of minutes, I am unable to send or receive any data, though system preferences still indicates I have a valid IP.

 

Is this a known issue? Fixes coming?

Share this post


Link to post
Share on other sites

Anybody with an AR816x, AR817x or Killer E220x NIC who is having trouble with the ALX driver might take a look at my new project and give it a try:

 

http://www.insanelymac.com/forum/topic/300056-solution-for-qca-ar816x-ar817x-and-killer-e220x/

 

Good luck and have fun!

 

Mieze

Share this post


Link to post
Share on other sites

Fantastic! The ALX works but it's quite unstable when transferring large files.

 

Unfortunately, the Atheros card in my 1201N is the infamous AR8132.

 

All the best!

 

I'm sorry, but the linux code used as a starting point doesn't support the AR813x and AR815x NICs, so that it would be too much work to add support for these chips.

 

Mieze

Share this post


Link to post
Share on other sites

Does it works on Yosemite?

 

 

yes for ar8131 but not reliable in 10.10 GM candidate (due to irq conflict?) (disconnects network after heavy load and error messages, see the quote below)

 

I tried the other AtherosL1cEthernet but it does not work at all with the error "cannot allocate ring descriptors", I recompiled the AtherosL1cEthernet 1.2.3 with xcode 6.1 gm and fix the gcc to llvm and set to 64bit and osx 10.10 and it works now...  doing some load testing...

 

 

I discovered on both, using Apple's "Logic Remote" from Wifi (then to ethernet) will kill the driver immediately with "incorrect zfree from zone kalloc.16 to zonekalloc.32".

 

Share this post


Link to post
Share on other sites

Is this driver still under development? 

 

I had the following issue: 

Fixing incorrect zfree from zone kalloc.16 to zone kalloc.32

This is on yosemite, i rebuild the kext with the latest SDK.

 

After some debugging i found that it is because of the ALXEthernet.kext. 

System is slow on boot, restart, sleep and wake because of this. 

 

Removing the following section resolves the issue, but generates new ones: 

int alx_cfg_r32(const struct alx_hw *hw, int reg, u32 pval)
{
  pval = hw->adpt->pdev->extendedConfigRead32(reg);

  return 0;
}

int alx_cfg_w32(const struct alx_hw *hw, int reg, u32 val)
{
  hw->adpt->pdev->extendedConfigWrite32(reg, val);

  return 0;
}

int alx_cfg_r16(const struct alx_hw *hw, int reg, u16 pval)
{
  pval = hw->adpt->pdev->extendedConfigRead16(reg);

  return 0;
}

int alx_cfg_w16(const struct alx_hw *hw, int reg, u16 val)
{
  hw->adpt->pdev->extendedConfigWrite16(reg, val);

  return 0;
}

void alx_mem_flush(const struct alx_hw *hw)
{
  readl(hw->hw_addr);
}


void alx_mem_r32(const struct alx_hw *hw, int reg, u32 val)
{
  if (unlikely(!hw->link_up))
  {
    readl(hw->hw_addr + reg);
  }

  val = readl(hw->hw_addr + reg);
}


void alx_mem_w32(const struct alx_hw *hw, int reg, u32 val)
{
  if (hw->mac_type == alx_mac_l2cb_v20 && reg < 0x1400)
  {
    readl(hw->hw_addr + reg);
  }

  writel(val, hw->hw_addr + reg);
}


void alx_mem_r16(const struct alx_hw *hw, int reg, u16 val)
{
  if (unlikely(!hw->link_up))
  {
    readl(hw->hw_addr + reg);
  }

  val = readw(hw->hw_addr + reg);
}


void alx_mem_w16(const struct alx_hw *hw, int reg, u16 val)
{
  if (hw->mac_type == alx_mac_l2cb_v20 && reg < 0x1400)
  {
    readl(hw->hw_addr + reg);
  }

  writew(val, hw->hw_addr + reg);
}


void alx_mem_w8(const struct alx_hw *hw, int reg, u8 val)
{
  if (hw->mac_type == alx_mac_l2cb_v20 && reg < 0x1400)
  {
    readl(hw->hw_addr + reg);
  }

  writeb(val, hw->hw_addr + reg);
}

I think the problem lies in this section, but i have no idea on what to edit.

Share this post


Link to post
Share on other sites

I have a problem my system identify my lan adapter as a bluetooth pan. and i get no wired connection.

, i try change the kexts of my ethernet adapter (atheros AR8151) ALXEthernet.kext... AtherosL1cEthernet.kext... Atheros222Ethernet.kext

i try remove all bluetooth kexts. disable bluetooth on the bios.

but northing works.

post-1093375-0-80425000-1437324469_thumb

before i enable the bluetooth everything works perfect.

after enable. i can't get working again. 

Share this post


Link to post
Share on other sites

I am using this driver (v1.0.2, DLed from google) with a Gigabyte Z77-DS3H. It's flaky as hell - some days it works, some days it will lock up on heavy usage, some days it'll lock up the *instant* I let go of the mouse when copying files up to my AFP or NFS server. (It always seems to be an issue sending, not receiving.) I finally gave up and plugged in a USB Ethernet dongle, which is obviously not ideal.

 

Has anyone else seen this issue? Does anyone know of a better/more recent driver?

 

(Three minutes later)

 

Doh. Looks like I already found an answer... Maybe: https://github.com/Dolnor/OSX-ALXEthernet

 

I'll try it. Has anyone else used it?

Share this post


Link to post
Share on other sites

Do you have an AR8151 NIC or AR8161? If AR8161, use Mieze's AtherosE2200Ethernet kext. If AR8151, use ALXEthernet (note you'll need to compile it with recent Xcode, prebuilt binary is out of date).

 

EDIT: Do NOT use ALXEthernet, it's unstable, I meant to say AtherosL1cEthernet, and you'll also have to compile that.

Share this post


Link to post
Share on other sites

Do you have an AR8151 NIC or AR8161? If AR8161, use Mieze's AtherosE2200Ethernet kext. If AR8151, use ALXEthernet (note you'll need to compile it with recent Xcode, prebuilt binary is out of date).

It must be an 8151, because AtherosE2200Ethernet was already in /L/E after the initial install (I used the tonymacx86 stuff to get started) and it didn't attach. With both kexts, ALXEthernet attaches.

 

I only realized after posting that there was no binary in the download. I'll have to update xcode and build it... soon...

Share this post


Link to post
Share on other sites

It must be an 8151, because AtherosE2200Ethernet was already in /L/E after the initial install (I used the tonymacx86 stuff to get started) and it didn't attach. With both kexts, ALXEthernet attaches.

 

I only realized after posting that there was no binary in the download. I'll have to update xcode and build it... soon...

 

Don't use ALXEthernet, use AtherosL1cEthernet.

Share this post


Link to post
Share on other sites

Don't use ALXEthernet, use AtherosL1cEthernet.

That fixes it! Thanks!

EDIT: Do NOT use ALXEthernet, it's unstable, I meant to say AtherosL1cEthernet, and you'll also have to compile that.

Is there some reason I should build it myself? I found it a kext binary here: http://www.insanelymac.com/forum/files/file/374-atherosl1cethernetkext

...and that seemed to work fine.

Share this post


Link to post
Share on other sites

Everything works great up to EL Capitan, however in Sierra 10.12.1 the system reboots when it starts the sleep process that never completes and you get a reboot.  Any chance of an update for Sierra at least to fix the reboot issue upon sleep?

 

Will AtherosL1cEthernet work for AR8131 in Sierra 10.12.1? Is there a latest version compiled on insanely or bitucket?

Share this post


Link to post
Share on other sites

Just to add something so others with the same problem can be aware, I used ALXEthernet for my AR8161, but it was kind of slow sending information. Download speed was okay, but there was a big delay and I suspected DNS problems but no. It seems that AtherosE22000Ethernet.kext fixes it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By vhviveiros
      Hello guys!
       
      I'm using a Samsung ativ book 2 np270e5g-xd1br, with i5-3230m/HM75, and everything is working fine, except by sleeping and wifi connection (the Hackintosh internet speed is about 10% of the windows/Linux, and sometimes It downs randomly).
       
      I've tried a lot of tutorials but nothing solved my problem.
       
      Hope you guys could help me
       
      obs: I also figured that if I left the laptop for some minutes, It sometimes reboot.
      Send me MacBook-Pro.zip
    • By End3rPower50
      Hi, is Qualcomm Atheros AR956x compatible with MacOS Mojave 10.14.3?
    • By grisno
      Hi people,
       
      This is a preliminary installer to activate the Combo Mini PCIe Atheros QCWB335 in MacOS.
       
      I want to thank the whole community for their efforts and content provided, because without these it would not be possible to create this installer.
       
      I would appreciate comments and suggestions!!
       
      Status:
      AIRPORT : OK Atheros QCWB335 (AR9565) (168c:0036) Mini PCIe * BLUETOOTH : OK Atheros AR3012 (0cf3:3121) USB 2.0 ** AIRDROP : Not Tested HANDOFF : Not Tested CONTINUITY : Not Tested WOL : Not Tested IMESSAGE : OK FACETIME : OK ICLOUD : OK APPSTORE : OK   Known Issues:
       
      - Partial support with a maximum speed of 10Mbits (10.11.0+) *
      - Don't support Bluetooth Power Off/On by Software (10.10.0+) **
      - Sometimes Lost Bluetooth After Sleep WakeUp (10.10.0+) **
       
      Sources:
       
      Insanelymac
    • By grisno
      Hi people,
       
      This is a preliminary installer to activate the Combo Mini PCIe Atheros AR9004WB-1NG in MacOS.
       
      I want to thank the whole community for their efforts and content provided, because without these it would not be possible to create this installer.
       
      I would appreciate comments and suggestions!!
       
      Status:
      AIRPORT : OK Atheros AR9004WB-1NG (AR9485) (168c:0032) Mini PCIe * (10.9.0+)BLUETOOTH : OK Atheros AR3012 (0cf3:3121) USB 2.0 ** (10.9.0+)AIRDROP : Not TestedHANDOFF : Not TestedCONTINUITY : Not TestedWOL : Not TestedIMESSAGE : OKFACETIME : OKICLOUD : OKAPPSTORE : OK
      Known Issues:
       
      - Partial support with a maximum speed of 11Mbits (10.9.0+) *
      - Don't support Bluetooth Power Off/On by Software (10.9.0+) **
       
      Sources:
       
      Insanelymac
    • By Mieze
      Key Features of the Driver
      Supports Qualcomm Atheros AR816x, AR817x, Killer E220x, Killer E2400 and Killer E2500.
      Support for multisegment packets relieving the network stack of unnecessary copy operations when assembling packets for transmission.
      No-copy receive and transmit. Only small packets are copied on reception because creating a copy is more efficient than allocating a new buffer.
      TCP, UDP and IPv4 checksum offload (receive and transmit).
      Support for TCP/IPv6 and UDP/IPv6 checksum offload.
      Makes use of the chip's TCP Segmentation Offload (TSO) feature with IPv4 and IPv6 in order to reduce CPU load while sending large amounts of data.
      Fully optimized for Mountain Lion, Mavericks and Yosemite (64bit architecture) but should work with Lion (only 64bit) too, provided you build from source with the 10.7 SDK.
      Wake on LAN support.
      VLAN support is implemented but untested as I have no need for it.
      The driver is published under GPLv2.

×