Jump to content

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


Shailua
 Share

153 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?

Link to comment
Share on other sites

  • 5 weeks later...

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 - по-русски говоришь?

Link to comment
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.

Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

  • 1 month later...

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.

  • Like 7
Link to comment
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

Link to comment
Share on other sites

  • 3 weeks later...

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?

Link to comment
Share on other sites

  • 2 weeks later...

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

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

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

 

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

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.

Link to comment
Share on other sites

  • 3 months later...

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. 

Link to comment
Share on other sites

  • 3 months later...

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?

Link to comment
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.

Link to comment
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...

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

  • 1 year later...

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?

Link to comment
Share on other sites

  • 7 months later...

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.

Link to comment
Share on other sites

 Share

×
×
  • Create New...