Jump to content
About Just Joined group Read more... ×

shakakoa

Members
  • Content Count

    5
  • Joined

  • Last visited


Reputation Activity

  1. Like
    shakakoa reacted to Mieze in Solution for Qualcomm Atheros AR816x, AR817x and Killer E220x   
    Last night I updated the prebuilt binary in the download section to version 2.1.0 and pushed the sources to GitHub. Have fun!
     
    Mieze
  2. Like
    shakakoa reacted to Mieze in Solution for Qualcomm Atheros AR816x, AR817x and Killer E220x   
    Last night I couldn't sleep so that I decided to get up again and wrote some lines of code. This is the result, version 2.1.0d0 of the driver, which adds:
    Support for Killer E2400. EEE support. On my test system it works fine, although I must confess that a few hours of testing is not enough, but see for yourself...
     
    EDIT: I forgot to add the Killer E2400's device id to the Info.plist file in version 2.1.0d0 but corrected that error in version 2.1.0d1 which you'll find attached to this post now.
     
    Good luck testing!
     
    Mieze
    AtherosE2200Ethernet-V2.1.0d1.zip
  3. Like
    shakakoa reacted to gilg2533 in Solution for Qualcomm Atheros AR816x, AR817x and Killer E220x   
    Here is a kext I modified that works with the E2400 for anyone who is interested.
    AtherosE2200Ethernet.kext.zip
  4. Like
    shakakoa reacted to Mieze in Solution for Qualcomm Atheros AR816x, AR817x and Killer E220x   
    This project is dedicated to the memory of Carlos Gato Vaca.
     

     
    I spent the last 2 weeks writing a driver for my Killer E2200 NIC because there is no stable working driver for recent Atheros chips under OS X. Most of the hardware specific code is based on Johannes Berg's alx driver for Linux and the OS X driver framework was taken from my Realtek driver.
     
    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 too, provided you build from source with the 10.7 SDK. Wake on LAN support. VLAN support is working since version 2.3.2. Supports Energy Efficient Ethernet (EEE). The driver is published under GPLv2. Known Issues
    None. FAQ
    Could you add support for AR813x and AR815x? Sorry, no, because I used a different linux driver as the code base than Shailua which doesn't support these chips so that it would be too much work to add support for them. WoL from S5 doesn't work with this driver but under Windows it's working. Is this a driver bug? No it isn't, the driver is working as it should because OS X doesn't support WoL from S5. You may also install the driver to to /Library/Extensions or use Clover to inject it. In case you are experiencing repeated connection drops with EEE enabled, please select a medium without EEE manually in order to resolve the problem. Installation
    Goto /S/L/E and delete ALXEthernet.kext. Recreate the kernel cache. Open System Preferences and delete the corresponding network interface, e. g. en0. Reboot. Install the new driver and recreate the kernel cache. I recommend to use Kext Wizard or a similar utility for the installation. Reboot Open System Preferences again, select Network and check if the new network interface has been created automatically or create it manually now. Configure the interface.  
    Help - I'm getting kernel panics!
    Well, before you start complaining about bugs after you upgraded macOS and ask me to publish a driver update, you should first try to resolve the issue on your own by cleaning the system caches.
    As the driver uses macOS's private network driver interface, which is supposed to be used by Apple provided drivers only, you might run into problems after an OS update because the linker may fail to recognize that IONetworking.kext has been updated and that the driver needs to be linked against the new version (Apple provided drivers avoid this problem because they are always updated together with IONetworking.kext). As a result, the linking process produces garbage and the driver may call arbitrary code when trying to call functions from IONetworking.kext. This usually results in unpredicted behavior or a kernel panic. In order to recover from such a situation, you should clean the System Caches forcing the linker to recreate it's caches:
    Delete all the files in /System/Library/Caches and it's subdirectories but leave the directories and the symbolic links intact. This is very important! Reboot. Recreate the kernel cache. Reboot again.  
    Troubleshooting
    Make sure you have followed the installation instructions especially when you have issues with certain domains while the others are working fine. Use the debug version to collect log data when trying to track down problems. The kernel log messages can be retrieved with "grep kernel /var/log/system.log" in Terminal. Starting with Sierra use "log show --predicate "processID == 0" --debug" in order to retrieve kernel logs. Include the log data when asking for support or giving feedback. I'm an engineer, not a clairvoyant. Don't copy and paste large amounts of log data to your post. Create an archive with the log data and attach it to your post. In case you don't want to make your log data publicly accessible, contact me via PM and I will provide you a mail address to send it directly to me. Check your BIOS settings. You might want to disable Network Boot and the UEFI Network Stack as these can interfere with the driver. Double check that you have removed any ALXEthernet.kext from your system because it could prevent the driver from working properly. Verify your bootloader configuration, in particular the kernel flags. Avoid using npci=0x2000 or npci=0x3000.  In Terminal run netstat -s in order to display network statistics. Carefully examine the data for any unusual activity like a high number of packets with bad IP header checksums, etc. In case auto-configuration of the link layer connection doesn't work it might be necessary to select the medium manually in System Preferences under Network for the interface. Use Wireshark to create a packet dump in order to collect diagnostic information. Keep in mind that there are many manufacturers of network equipment. Although Ethernet is an IEEE standard, different implementations may show different behavior causing incompatibilities. In case you are having trouble try a different switch or a different cable.  
    Changelog
     
    Version 2.2.2 (2017-09-25) Fixed VLAN support Fixed build issue with Xcode 11.5. Version 2.3.0 (2019-08-01) Changed descriptor ring allocation strategy from dynamic to static for faster wakeup after sleep. Version 2.2.2 (2017-09-25) Fixes a problem which may cause trouble when trying to change the MAC address. Changed descriptor ring allocation strategy from dynamic to static for faster wakeup after sleep. Version 2.1.0d1 (2015-11-29) Supports Energy Efficient Ethernet (EEE). Added support for Killer E2400. Version 2.0.1 (2015-08-12) Improved flow control support in 100MBit mode.  Version 2.0.0 (2015-04-21) Uses Apple's private driver interface introduced with 10.8.  Supports packet scheduling with QFQ.  Please note that 2.0.0 is identical to 2.0.0d1. Only the version number has changed. Version 1.0.1 (2015-03-01) Reworked media selection and reporting. Resolved the NIC disabled by BIOS issue. Improved flow control support. Version 1.0.0 (2014-10-05) Official release which is identical to 1.0.0d7. Version 1.0.0d7 (2014-08-18) Fixed Wake on LAN. Version 1.0.0d6 (2014-08-16) Detects situations when the BIOS left the NIC disabled and outputs an error messages. Small optimizations and improved error handling. Version 1.0.0d5 (2014-08-13) Removed the mbuf_pullup() call in outputPacket() as the NIC seems to accept packets with noncontiguous headers. Version 1.0.0d4 (2014-08-12) Fixed TSO with IPv4 and IPv6. Version 1.0.0d3 (2014-08-10) Added support for TCP and UDP checksum offload over IPv6.
    Cleaned up the code and improved error handling.  
    Getting the driver
    The source code can be found on GitHub: https://github.com/Mieze/AtherosE2200Ethernet There is also a prebuilt binary for 10.8 and above in the download section: http://www.insanelymac.com/forum/files/file/313-atherose2200ethernet/ The latest development version can be found here: http://www.insanelymac.com/forum/topic/300056-solution-for-qualcomm-atheros-ar816x-ar817x-and-killer-e220x/?p=2192549  
    Mieze
  5. Like
    shakakoa reacted to Mieze in Solution for Qualcomm Atheros AR816x, AR817x and Killer E220x   
    Wireless? This is a driver for ethernet devices. What is the point?
     
    Mieze
×