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

Shailua

Members
  • Content Count

    22
  • Joined

  • Last visited


Reputation Activity

  1. Like
    Shailua got a reaction from theconnactic in Updated Atheros AR81(31/32/51/52) Driver for 10.7/10.8   
    Hi everybody, I'm a first time poster but I've been lurking for a while. Somewhat recently I bought a GA-Z77X-UD5H motherboard with two built-in ethernet ports: one Intel and one Atheros (AR8151 v2.0 gigabit ethernet, specifically). While the AppleIntelE1000e driver is being actively worked on, I noticed there hadn't been any recent progress I could see on the AtherosL1cEthernet driver from this thread:
    http://www.insanelym...s-ar8131ar8132/
    and this site:
    https://code.google.com/p/iats/
     
    Anyway, the driver in question wraps around the Atheros/Attansic L1c Linux kernel driver so I thought I'd try my hand at updating it all to the latest version. I have no previous experience writing kernel/driver code though, so the whole process has been a interesting learning experience. Full credit goes to the great work of the folks in the above two links that worked on this in the first place. I'm still messing with the code, but I figured if I didn't release something publicly now then I'd spend forever procrastinating and worrying that it wouldn't work for anyone else.
     
    While everything seems to be working fine on my own particular machine, it may HORRIBLY BREAK yours. I haven't tested it ANYWHERE else. Please please please make sure you back up everything essential if you want to try this driver.
     
    I have only tested it in Mountain Lion. The kext is compiled with the Lion SDK so it should hopefully work on there too. I have no idea if 32-bit works. I haven't even considered Snow Leopard; if you need support for that I'd suggest the older driver in the above links. I wasn't keeping track but chances are I've used something in the code that is 10.7+ only.
     
    Did I mention this kext will probably cause your machine to panic and do nothing much else? As far as I can tell, all these Atheros ethernet chips are built into motherboards and laptops and don't come as separate cards. If Mac OS X becomes unbootable, the easiest thing to do would be to switch the card off in the BIOS temporarily and then delete the kext.
     
    New Stuff:
    - Newer Linux code should properly support AR8151 v1.0 and v2.0 as well as AR8152 v1.1/2.0, AR8131 and AR8132. This is the atl1c driver though, not the alx driver. As such, there is no support for AR8161 or AR8162 I'm afraid.
    - I added Wake on LAN and Wake on Demand / Bonjour Sleep Proxy stuff. Seems to work fine, but this motherboard of mine works smoothly with UEFI and no custom DSDT stuff. Older BIOS-based machines might have some DSDT-related weirdness.
    - If I remember correctly there was a bug with Bonjour/Zeroconf not showing other servers in Finder. I haven't seen it in the new code.
    - The code should hopefully be 64-bit safe, even with more than 4GB of memory being used.
    - VLAN was sort of working when I checked a while ago, but it might have broken again since then.
    - A few minor bits and pieces I've forgotten, probably just Mac OS code related.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    NOTE: As of version 1.2.0, I have disabled debugging stuff in the main kext which shrinks things down and makes for quieter logging. For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/AtherosL1cEthernet.kext
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/AtherosL1cEthernet/AtherosL1cEthernet.kext /System/Library/Extensions/
     
    Clean out the kernel cache:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
     
    Then reboot to be safe.
     
    Changelog:
    1.2.3 - Bug fixes and more modifications to the link status check code. It should no longer slow down booting when an ethernet cable is not connected. The bug fixes weren't anything huge, so feel free to stick with 1.2.2 (or any other version for that matter) if you're happy with it.
     
    1.2.2 - Bug fixes and some better link status checking. TSO was disabled in the latest Linux driver code from Atheros for the 8131 and 8132, so it's possible there are hardware bugs. To be safe, I disabled it by default for those cards. To re-enable it you'll have to find the corresponding card entry in Info.plist and set EnableTSO to true. Be sure to clear your kernel cache afterwards if editing the Info.plist in place.
     
    1.2.1 - Hopefully fixed a buffer memory allocation bug on non-gigabit adapters. Also added a minor packet receive optimisation.
     
    1.2.0 - Added TCP Segmentation Offload (TSO) support for both IPv4 and IPv6, partial checksum offloading for transmitted packets and a bunch of little bug fixes and what I hope are optimisations.
     
    1.1.2 - Rewrote some of the promiscous/multicast mode setting code to hopefully make things all clean and proper and maybe help with Bonjour problems. Filtered multicast reception instead of all-multicast reception should in theory make things a bit faster on a busy network with lots of multicast packets flying around the place, too.
     
    1.1.1 - Fixed a silly bug in the link status code. It was causing problems with resetting the connection status and DHCP stuff when the cable was disconnected etc. Also fixed up some other random bits and pieces for the 32-bit module.
     
    1.1.0 - The somewhat arbitrarily numbered initial release.
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121110 AtherosL1cEthernet-1.2.3.zip
    MD5 checksum (AtherosL1cEthernet-1.2.3.zip) = 9fb9113a573072e42e35da4e807b310a
     
    Previous:
    20121103 AtherosL1cEthernet-1.2.2.zip
    MD5 checksum (AtherosL1cEthernet-1.2.2.zip) = ac192399f1c3035e18a5a1e3d590e2f4
     
    20121020 AtherosL1cEthernet-1.2.1.zip
    MD5 checksum (AtherosL1cEthernet-1.2.1.zip) = 66ca3c478ed4b4b666c11b5fbc8ae2bd
     
    20121019 AtherosL1cEthernet-1.2.0.zip
    WARNING: See posts further down, this one might cause a kernel panic on certain (non-gigabit?) ethernet chips.
    MD5 checksum (AtherosL1cEthernet-1.2.0.zip) = 1b13bc115b89736b2d57a24ed3743efd
     
    20121008 AtherosL1cEthernet-1.1.2.zip
    MD5 checksum (AtherosL1cEthernet-1.1.2.zip) = c7629574c6aefc97e17fc09a3d4aab98
     
    20121003 AtherosL1cEthernet-1.1.1.zip
    MD5 checksum (AtherosL1cEthernet-1.1.1.zip) = 4c78da8a9bfbb02f6e4150802fa896ac
     
    20120924 AtherosL1cEthernet-1.1.0.zip
    MD5 checksum (AtherosL1cEthernet-1.1.0.zip) = 7bf3cb1cff665ca0cc3dc23aebf3c286
     
     
    As a final caveat, I'm mostly just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy!
  2. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  3. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  4. Like
    Shailua got a reaction from theconnactic in Updated Atheros AR81(31/32/51/52) Driver for 10.7/10.8   
    Hi everybody, I'm a first time poster but I've been lurking for a while. Somewhat recently I bought a GA-Z77X-UD5H motherboard with two built-in ethernet ports: one Intel and one Atheros (AR8151 v2.0 gigabit ethernet, specifically). While the AppleIntelE1000e driver is being actively worked on, I noticed there hadn't been any recent progress I could see on the AtherosL1cEthernet driver from this thread:
    http://www.insanelym...s-ar8131ar8132/
    and this site:
    https://code.google.com/p/iats/
     
    Anyway, the driver in question wraps around the Atheros/Attansic L1c Linux kernel driver so I thought I'd try my hand at updating it all to the latest version. I have no previous experience writing kernel/driver code though, so the whole process has been a interesting learning experience. Full credit goes to the great work of the folks in the above two links that worked on this in the first place. I'm still messing with the code, but I figured if I didn't release something publicly now then I'd spend forever procrastinating and worrying that it wouldn't work for anyone else.
     
    While everything seems to be working fine on my own particular machine, it may HORRIBLY BREAK yours. I haven't tested it ANYWHERE else. Please please please make sure you back up everything essential if you want to try this driver.
     
    I have only tested it in Mountain Lion. The kext is compiled with the Lion SDK so it should hopefully work on there too. I have no idea if 32-bit works. I haven't even considered Snow Leopard; if you need support for that I'd suggest the older driver in the above links. I wasn't keeping track but chances are I've used something in the code that is 10.7+ only.
     
    Did I mention this kext will probably cause your machine to panic and do nothing much else? As far as I can tell, all these Atheros ethernet chips are built into motherboards and laptops and don't come as separate cards. If Mac OS X becomes unbootable, the easiest thing to do would be to switch the card off in the BIOS temporarily and then delete the kext.
     
    New Stuff:
    - Newer Linux code should properly support AR8151 v1.0 and v2.0 as well as AR8152 v1.1/2.0, AR8131 and AR8132. This is the atl1c driver though, not the alx driver. As such, there is no support for AR8161 or AR8162 I'm afraid.
    - I added Wake on LAN and Wake on Demand / Bonjour Sleep Proxy stuff. Seems to work fine, but this motherboard of mine works smoothly with UEFI and no custom DSDT stuff. Older BIOS-based machines might have some DSDT-related weirdness.
    - If I remember correctly there was a bug with Bonjour/Zeroconf not showing other servers in Finder. I haven't seen it in the new code.
    - The code should hopefully be 64-bit safe, even with more than 4GB of memory being used.
    - VLAN was sort of working when I checked a while ago, but it might have broken again since then.
    - A few minor bits and pieces I've forgotten, probably just Mac OS code related.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    NOTE: As of version 1.2.0, I have disabled debugging stuff in the main kext which shrinks things down and makes for quieter logging. For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/AtherosL1cEthernet.kext
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/AtherosL1cEthernet/AtherosL1cEthernet.kext /System/Library/Extensions/
     
    Clean out the kernel cache:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
     
    Then reboot to be safe.
     
    Changelog:
    1.2.3 - Bug fixes and more modifications to the link status check code. It should no longer slow down booting when an ethernet cable is not connected. The bug fixes weren't anything huge, so feel free to stick with 1.2.2 (or any other version for that matter) if you're happy with it.
     
    1.2.2 - Bug fixes and some better link status checking. TSO was disabled in the latest Linux driver code from Atheros for the 8131 and 8132, so it's possible there are hardware bugs. To be safe, I disabled it by default for those cards. To re-enable it you'll have to find the corresponding card entry in Info.plist and set EnableTSO to true. Be sure to clear your kernel cache afterwards if editing the Info.plist in place.
     
    1.2.1 - Hopefully fixed a buffer memory allocation bug on non-gigabit adapters. Also added a minor packet receive optimisation.
     
    1.2.0 - Added TCP Segmentation Offload (TSO) support for both IPv4 and IPv6, partial checksum offloading for transmitted packets and a bunch of little bug fixes and what I hope are optimisations.
     
    1.1.2 - Rewrote some of the promiscous/multicast mode setting code to hopefully make things all clean and proper and maybe help with Bonjour problems. Filtered multicast reception instead of all-multicast reception should in theory make things a bit faster on a busy network with lots of multicast packets flying around the place, too.
     
    1.1.1 - Fixed a silly bug in the link status code. It was causing problems with resetting the connection status and DHCP stuff when the cable was disconnected etc. Also fixed up some other random bits and pieces for the 32-bit module.
     
    1.1.0 - The somewhat arbitrarily numbered initial release.
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121110 AtherosL1cEthernet-1.2.3.zip
    MD5 checksum (AtherosL1cEthernet-1.2.3.zip) = 9fb9113a573072e42e35da4e807b310a
     
    Previous:
    20121103 AtherosL1cEthernet-1.2.2.zip
    MD5 checksum (AtherosL1cEthernet-1.2.2.zip) = ac192399f1c3035e18a5a1e3d590e2f4
     
    20121020 AtherosL1cEthernet-1.2.1.zip
    MD5 checksum (AtherosL1cEthernet-1.2.1.zip) = 66ca3c478ed4b4b666c11b5fbc8ae2bd
     
    20121019 AtherosL1cEthernet-1.2.0.zip
    WARNING: See posts further down, this one might cause a kernel panic on certain (non-gigabit?) ethernet chips.
    MD5 checksum (AtherosL1cEthernet-1.2.0.zip) = 1b13bc115b89736b2d57a24ed3743efd
     
    20121008 AtherosL1cEthernet-1.1.2.zip
    MD5 checksum (AtherosL1cEthernet-1.1.2.zip) = c7629574c6aefc97e17fc09a3d4aab98
     
    20121003 AtherosL1cEthernet-1.1.1.zip
    MD5 checksum (AtherosL1cEthernet-1.1.1.zip) = 4c78da8a9bfbb02f6e4150802fa896ac
     
    20120924 AtherosL1cEthernet-1.1.0.zip
    MD5 checksum (AtherosL1cEthernet-1.1.0.zip) = 7bf3cb1cff665ca0cc3dc23aebf3c286
     
     
    As a final caveat, I'm mostly just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy!
  5. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  6. Like
    Shailua got a reaction from theconnactic in Updated Atheros AR81(31/32/51/52) Driver for 10.7/10.8   
    Hi everybody, I'm a first time poster but I've been lurking for a while. Somewhat recently I bought a GA-Z77X-UD5H motherboard with two built-in ethernet ports: one Intel and one Atheros (AR8151 v2.0 gigabit ethernet, specifically). While the AppleIntelE1000e driver is being actively worked on, I noticed there hadn't been any recent progress I could see on the AtherosL1cEthernet driver from this thread:
    http://www.insanelym...s-ar8131ar8132/
    and this site:
    https://code.google.com/p/iats/
     
    Anyway, the driver in question wraps around the Atheros/Attansic L1c Linux kernel driver so I thought I'd try my hand at updating it all to the latest version. I have no previous experience writing kernel/driver code though, so the whole process has been a interesting learning experience. Full credit goes to the great work of the folks in the above two links that worked on this in the first place. I'm still messing with the code, but I figured if I didn't release something publicly now then I'd spend forever procrastinating and worrying that it wouldn't work for anyone else.
     
    While everything seems to be working fine on my own particular machine, it may HORRIBLY BREAK yours. I haven't tested it ANYWHERE else. Please please please make sure you back up everything essential if you want to try this driver.
     
    I have only tested it in Mountain Lion. The kext is compiled with the Lion SDK so it should hopefully work on there too. I have no idea if 32-bit works. I haven't even considered Snow Leopard; if you need support for that I'd suggest the older driver in the above links. I wasn't keeping track but chances are I've used something in the code that is 10.7+ only.
     
    Did I mention this kext will probably cause your machine to panic and do nothing much else? As far as I can tell, all these Atheros ethernet chips are built into motherboards and laptops and don't come as separate cards. If Mac OS X becomes unbootable, the easiest thing to do would be to switch the card off in the BIOS temporarily and then delete the kext.
     
    New Stuff:
    - Newer Linux code should properly support AR8151 v1.0 and v2.0 as well as AR8152 v1.1/2.0, AR8131 and AR8132. This is the atl1c driver though, not the alx driver. As such, there is no support for AR8161 or AR8162 I'm afraid.
    - I added Wake on LAN and Wake on Demand / Bonjour Sleep Proxy stuff. Seems to work fine, but this motherboard of mine works smoothly with UEFI and no custom DSDT stuff. Older BIOS-based machines might have some DSDT-related weirdness.
    - If I remember correctly there was a bug with Bonjour/Zeroconf not showing other servers in Finder. I haven't seen it in the new code.
    - The code should hopefully be 64-bit safe, even with more than 4GB of memory being used.
    - VLAN was sort of working when I checked a while ago, but it might have broken again since then.
    - A few minor bits and pieces I've forgotten, probably just Mac OS code related.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    NOTE: As of version 1.2.0, I have disabled debugging stuff in the main kext which shrinks things down and makes for quieter logging. For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/AtherosL1cEthernet.kext
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/AtherosL1cEthernet/AtherosL1cEthernet.kext /System/Library/Extensions/
     
    Clean out the kernel cache:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
     
    Then reboot to be safe.
     
    Changelog:
    1.2.3 - Bug fixes and more modifications to the link status check code. It should no longer slow down booting when an ethernet cable is not connected. The bug fixes weren't anything huge, so feel free to stick with 1.2.2 (or any other version for that matter) if you're happy with it.
     
    1.2.2 - Bug fixes and some better link status checking. TSO was disabled in the latest Linux driver code from Atheros for the 8131 and 8132, so it's possible there are hardware bugs. To be safe, I disabled it by default for those cards. To re-enable it you'll have to find the corresponding card entry in Info.plist and set EnableTSO to true. Be sure to clear your kernel cache afterwards if editing the Info.plist in place.
     
    1.2.1 - Hopefully fixed a buffer memory allocation bug on non-gigabit adapters. Also added a minor packet receive optimisation.
     
    1.2.0 - Added TCP Segmentation Offload (TSO) support for both IPv4 and IPv6, partial checksum offloading for transmitted packets and a bunch of little bug fixes and what I hope are optimisations.
     
    1.1.2 - Rewrote some of the promiscous/multicast mode setting code to hopefully make things all clean and proper and maybe help with Bonjour problems. Filtered multicast reception instead of all-multicast reception should in theory make things a bit faster on a busy network with lots of multicast packets flying around the place, too.
     
    1.1.1 - Fixed a silly bug in the link status code. It was causing problems with resetting the connection status and DHCP stuff when the cable was disconnected etc. Also fixed up some other random bits and pieces for the 32-bit module.
     
    1.1.0 - The somewhat arbitrarily numbered initial release.
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121110 AtherosL1cEthernet-1.2.3.zip
    MD5 checksum (AtherosL1cEthernet-1.2.3.zip) = 9fb9113a573072e42e35da4e807b310a
     
    Previous:
    20121103 AtherosL1cEthernet-1.2.2.zip
    MD5 checksum (AtherosL1cEthernet-1.2.2.zip) = ac192399f1c3035e18a5a1e3d590e2f4
     
    20121020 AtherosL1cEthernet-1.2.1.zip
    MD5 checksum (AtherosL1cEthernet-1.2.1.zip) = 66ca3c478ed4b4b666c11b5fbc8ae2bd
     
    20121019 AtherosL1cEthernet-1.2.0.zip
    WARNING: See posts further down, this one might cause a kernel panic on certain (non-gigabit?) ethernet chips.
    MD5 checksum (AtherosL1cEthernet-1.2.0.zip) = 1b13bc115b89736b2d57a24ed3743efd
     
    20121008 AtherosL1cEthernet-1.1.2.zip
    MD5 checksum (AtherosL1cEthernet-1.1.2.zip) = c7629574c6aefc97e17fc09a3d4aab98
     
    20121003 AtherosL1cEthernet-1.1.1.zip
    MD5 checksum (AtherosL1cEthernet-1.1.1.zip) = 4c78da8a9bfbb02f6e4150802fa896ac
     
    20120924 AtherosL1cEthernet-1.1.0.zip
    MD5 checksum (AtherosL1cEthernet-1.1.0.zip) = 7bf3cb1cff665ca0cc3dc23aebf3c286
     
     
    As a final caveat, I'm mostly just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy!
  7. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  8. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  9. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  10. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  11. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  12. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  13. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  14. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  15. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  16. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  17. Like
    Shailua got a reaction from theconnactic in Updated Atheros AR81(31/32/51/52) Driver for 10.7/10.8   
    Hi everybody, I'm a first time poster but I've been lurking for a while. Somewhat recently I bought a GA-Z77X-UD5H motherboard with two built-in ethernet ports: one Intel and one Atheros (AR8151 v2.0 gigabit ethernet, specifically). While the AppleIntelE1000e driver is being actively worked on, I noticed there hadn't been any recent progress I could see on the AtherosL1cEthernet driver from this thread:
    http://www.insanelym...s-ar8131ar8132/
    and this site:
    https://code.google.com/p/iats/
     
    Anyway, the driver in question wraps around the Atheros/Attansic L1c Linux kernel driver so I thought I'd try my hand at updating it all to the latest version. I have no previous experience writing kernel/driver code though, so the whole process has been a interesting learning experience. Full credit goes to the great work of the folks in the above two links that worked on this in the first place. I'm still messing with the code, but I figured if I didn't release something publicly now then I'd spend forever procrastinating and worrying that it wouldn't work for anyone else.
     
    While everything seems to be working fine on my own particular machine, it may HORRIBLY BREAK yours. I haven't tested it ANYWHERE else. Please please please make sure you back up everything essential if you want to try this driver.
     
    I have only tested it in Mountain Lion. The kext is compiled with the Lion SDK so it should hopefully work on there too. I have no idea if 32-bit works. I haven't even considered Snow Leopard; if you need support for that I'd suggest the older driver in the above links. I wasn't keeping track but chances are I've used something in the code that is 10.7+ only.
     
    Did I mention this kext will probably cause your machine to panic and do nothing much else? As far as I can tell, all these Atheros ethernet chips are built into motherboards and laptops and don't come as separate cards. If Mac OS X becomes unbootable, the easiest thing to do would be to switch the card off in the BIOS temporarily and then delete the kext.
     
    New Stuff:
    - Newer Linux code should properly support AR8151 v1.0 and v2.0 as well as AR8152 v1.1/2.0, AR8131 and AR8132. This is the atl1c driver though, not the alx driver. As such, there is no support for AR8161 or AR8162 I'm afraid.
    - I added Wake on LAN and Wake on Demand / Bonjour Sleep Proxy stuff. Seems to work fine, but this motherboard of mine works smoothly with UEFI and no custom DSDT stuff. Older BIOS-based machines might have some DSDT-related weirdness.
    - If I remember correctly there was a bug with Bonjour/Zeroconf not showing other servers in Finder. I haven't seen it in the new code.
    - The code should hopefully be 64-bit safe, even with more than 4GB of memory being used.
    - VLAN was sort of working when I checked a while ago, but it might have broken again since then.
    - A few minor bits and pieces I've forgotten, probably just Mac OS code related.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    NOTE: As of version 1.2.0, I have disabled debugging stuff in the main kext which shrinks things down and makes for quieter logging. For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/AtherosL1cEthernet.kext
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/AtherosL1cEthernet/AtherosL1cEthernet.kext /System/Library/Extensions/
     
    Clean out the kernel cache:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
     
    Then reboot to be safe.
     
    Changelog:
    1.2.3 - Bug fixes and more modifications to the link status check code. It should no longer slow down booting when an ethernet cable is not connected. The bug fixes weren't anything huge, so feel free to stick with 1.2.2 (or any other version for that matter) if you're happy with it.
     
    1.2.2 - Bug fixes and some better link status checking. TSO was disabled in the latest Linux driver code from Atheros for the 8131 and 8132, so it's possible there are hardware bugs. To be safe, I disabled it by default for those cards. To re-enable it you'll have to find the corresponding card entry in Info.plist and set EnableTSO to true. Be sure to clear your kernel cache afterwards if editing the Info.plist in place.
     
    1.2.1 - Hopefully fixed a buffer memory allocation bug on non-gigabit adapters. Also added a minor packet receive optimisation.
     
    1.2.0 - Added TCP Segmentation Offload (TSO) support for both IPv4 and IPv6, partial checksum offloading for transmitted packets and a bunch of little bug fixes and what I hope are optimisations.
     
    1.1.2 - Rewrote some of the promiscous/multicast mode setting code to hopefully make things all clean and proper and maybe help with Bonjour problems. Filtered multicast reception instead of all-multicast reception should in theory make things a bit faster on a busy network with lots of multicast packets flying around the place, too.
     
    1.1.1 - Fixed a silly bug in the link status code. It was causing problems with resetting the connection status and DHCP stuff when the cable was disconnected etc. Also fixed up some other random bits and pieces for the 32-bit module.
     
    1.1.0 - The somewhat arbitrarily numbered initial release.
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121110 AtherosL1cEthernet-1.2.3.zip
    MD5 checksum (AtherosL1cEthernet-1.2.3.zip) = 9fb9113a573072e42e35da4e807b310a
     
    Previous:
    20121103 AtherosL1cEthernet-1.2.2.zip
    MD5 checksum (AtherosL1cEthernet-1.2.2.zip) = ac192399f1c3035e18a5a1e3d590e2f4
     
    20121020 AtherosL1cEthernet-1.2.1.zip
    MD5 checksum (AtherosL1cEthernet-1.2.1.zip) = 66ca3c478ed4b4b666c11b5fbc8ae2bd
     
    20121019 AtherosL1cEthernet-1.2.0.zip
    WARNING: See posts further down, this one might cause a kernel panic on certain (non-gigabit?) ethernet chips.
    MD5 checksum (AtherosL1cEthernet-1.2.0.zip) = 1b13bc115b89736b2d57a24ed3743efd
     
    20121008 AtherosL1cEthernet-1.1.2.zip
    MD5 checksum (AtherosL1cEthernet-1.1.2.zip) = c7629574c6aefc97e17fc09a3d4aab98
     
    20121003 AtherosL1cEthernet-1.1.1.zip
    MD5 checksum (AtherosL1cEthernet-1.1.1.zip) = 4c78da8a9bfbb02f6e4150802fa896ac
     
    20120924 AtherosL1cEthernet-1.1.0.zip
    MD5 checksum (AtherosL1cEthernet-1.1.0.zip) = 7bf3cb1cff665ca0cc3dc23aebf3c286
     
     
    As a final caveat, I'm mostly just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy!
  18. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  19. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  20. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  21. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  22. Like
    Shailua got a reaction from p.H in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    Glad to hear it's working for those it's working for.
     
    I've been tinkering with my AO522 netbook and managed to get Snow Leopard working on it, albeit rather poorly given it's an AMD C-50 processor with only fallback 800x600 graphics working. It's been good enough to allow me to install a Snow Leopard build of ALXEthernet however, so now I have an AR8152 v2.0 chipset to test things out on as well. I discovered a previously reported bug with running 32-bit drivers compiled with Xcode 4.5, so I'm back to using 4.4 for now. Xcode 4.4 with the Snow Leopard APIs and a minor code change later and the driver was working fine on the netbook. Still going to do some more testing but then I should be able to release builds for 10.6 as well as 10.7/10.8.
  23. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  24. Like
    Shailua got a reaction from jjangsangy in Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8   
    EXPERIMENTAL! UNSTABLE! WARNING! KITTENS!
     
    Hi again everybody. After tinkering with updating the AtherosL1cEthernet drivers (http://www.insanelym...ver-for-107108/) I decided to try porting from scratch the newer ALX driver from here:
    http://www.linuxfoun.../networking/alx
    Much of what I said in the AtherosL1cEthernet thread also goes for this driver, so please browse over it quickly if you get a chance.
     
    While the latest news update on the ALX page suggested they were stripping out support for the earlier drivers, the code for these seems to be still intact in the latest patches so it seemed worth trying to port, especially with many newer motherboard revisions apparently containing the AR8161 chip and causing people much frustration. Once again I've only been able to test this code on my AR8151. There are a lot of rough edges, but "release early, release often" as they say. There are essentially two low-level sections of code, one for the AR81(31/32/51/52) and another for the newer ones. I can't really vouch for the stability of the newer chipset code. Most of the low-level stuff is mostly portable and unmodified from the Linux code though.
     
    Wake on LAN/demand works for me so far, but I haven't yet enabled TSO, VLAN and other advanced stuff. For now I'm just attempting to get the basic driver working.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/ALXEthernet.kext
    (Don't forget to also remove any potentially conflicting kexts from the Extensions directory, e.g. AtherosL1cEthernet.kext!)
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.kext /System/Library/Extensions/
     
    Update the kernel cache:
    sudo touch /System/Library/Extensions
    Then wait a couple of minutes or so before rebooting. This should trigger kextd to rebuild the cache.
    (Alternatively you could completely remove the old cache first:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
    But this is best ran from single user mode (-s) where kextd isn't active and watching for changes in the background.)
     
    If you find your system becomes unbootable due to panics, the easiest way to fix this is to temporarily disable the ethernet card in the BIOS/UEFI, boot into Mac OS X and then perform the the first and last installation steps above.
     
    Alternative (test) install:
    To avoid breaking your system if the module is installed but panics every time, you can just test by installing to the temporary directory:
    sudo cp -r /Users/yourusername/Downloads/ALXEthernet/ALXEthernet.ext /tmp/
     
    Then load the module for testing:
    sudo kextload /tmp/ALXEthernet.kext
     
    The contents of /tmp will be automatically wiped upon reboot so you'll have to repeat these two steps each time.
     
    Changelog:
    1.0.2 - Bug fixes that should help clean up memory allocation problems at boot time (with a little luck). VLAN is now possible for anyone that needs it, but I've only tested it minimally.
     
    1.0.1 - Bug fixes and refinements. Manually setting the link speed should work properly now and might be an option if autonegotiation is causing issues. The link watchdog timer should generally be working better now. Changed some Linux code that was automatically enabling MSI-X interrupts on newer chips. I have no idea if these are supported properly on Mac OS X, but to be safe I'd rather keep everything on plain old MSI for now.
     
    1.0.0 - The initial release. Don't be fooled, it's likely very unstable!
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121117 ALXEthernet-1.0.2.zip
    MD5 (ALXEthernet-1.0.2.zip) = dbdc587f2b4905515571a7ce2bd55c8f
     
    Previous:
    20121106 ALXEthernet-1.0.1.zip
    MD5 (ALXEthernet-1.0.1.zip) = ed621f34f91e60b5422734401b6bdb6e
     
    20121103 ALXEthernet-1.0.0.zip
    MD5 (ALXEthernet-1.0.0.zip) = 78c0d329237e1ac726bd737493b45724
     
     
    Like I said in the other thread: I'm just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy and please tell me what card type you have for any feedback if possible!
     
    While kernel panics should hopefully not happen if everything is installed correctly, if anybody gets a regular panic and feels up to it then it would be incredibly useful for me if you were to enable verbose mode at boot with the -v flag and snap me a (readable) photograph of the panic screen along with which Mac OS X version they're using (e.g. 10.8.2) along with the driver version used (e.g. 1.0.1). I can then hopefully trace exactly where in the code things are going wrong. Usually these things are from buffer allocations gone horribly wrong.
  25. Like
    Shailua got a reaction from theconnactic in Updated Atheros AR81(31/32/51/52) Driver for 10.7/10.8   
    Hi everybody, I'm a first time poster but I've been lurking for a while. Somewhat recently I bought a GA-Z77X-UD5H motherboard with two built-in ethernet ports: one Intel and one Atheros (AR8151 v2.0 gigabit ethernet, specifically). While the AppleIntelE1000e driver is being actively worked on, I noticed there hadn't been any recent progress I could see on the AtherosL1cEthernet driver from this thread:
    http://www.insanelym...s-ar8131ar8132/
    and this site:
    https://code.google.com/p/iats/
     
    Anyway, the driver in question wraps around the Atheros/Attansic L1c Linux kernel driver so I thought I'd try my hand at updating it all to the latest version. I have no previous experience writing kernel/driver code though, so the whole process has been a interesting learning experience. Full credit goes to the great work of the folks in the above two links that worked on this in the first place. I'm still messing with the code, but I figured if I didn't release something publicly now then I'd spend forever procrastinating and worrying that it wouldn't work for anyone else.
     
    While everything seems to be working fine on my own particular machine, it may HORRIBLY BREAK yours. I haven't tested it ANYWHERE else. Please please please make sure you back up everything essential if you want to try this driver.
     
    I have only tested it in Mountain Lion. The kext is compiled with the Lion SDK so it should hopefully work on there too. I have no idea if 32-bit works. I haven't even considered Snow Leopard; if you need support for that I'd suggest the older driver in the above links. I wasn't keeping track but chances are I've used something in the code that is 10.7+ only.
     
    Did I mention this kext will probably cause your machine to panic and do nothing much else? As far as I can tell, all these Atheros ethernet chips are built into motherboards and laptops and don't come as separate cards. If Mac OS X becomes unbootable, the easiest thing to do would be to switch the card off in the BIOS temporarily and then delete the kext.
     
    New Stuff:
    - Newer Linux code should properly support AR8151 v1.0 and v2.0 as well as AR8152 v1.1/2.0, AR8131 and AR8132. This is the atl1c driver though, not the alx driver. As such, there is no support for AR8161 or AR8162 I'm afraid.
    - I added Wake on LAN and Wake on Demand / Bonjour Sleep Proxy stuff. Seems to work fine, but this motherboard of mine works smoothly with UEFI and no custom DSDT stuff. Older BIOS-based machines might have some DSDT-related weirdness.
    - If I remember correctly there was a bug with Bonjour/Zeroconf not showing other servers in Finder. I haven't seen it in the new code.
    - The code should hopefully be 64-bit safe, even with more than 4GB of memory being used.
    - VLAN was sort of working when I checked a while ago, but it might have broken again since then.
    - A few minor bits and pieces I've forgotten, probably just Mac OS code related.
     
    Installing:
    Use your favourite method of adding kexts to /System/Library/Extensions. Personally I prefer doing it manually from the terminal.
    NOTE: As of version 1.2.0, I have disabled debugging stuff in the main kext which shrinks things down and makes for quieter logging. For testing or reporting bugs, please use the kext in the "Debug" subdirectory. This will output much more info to /var/log/system.log.
     
    Remove any old version:
    sudo rm -rf /System/Library/Extensions/AtherosL1cEthernet.kext
     
    Copy the new version from wherever you extracted it, such as Downloads:
    sudo cp -r /Users/yourusername/Downloads/AtherosL1cEthernet/AtherosL1cEthernet.kext /System/Library/Extensions/
     
    Clean out the kernel cache:
    sudo rm -rf /System/Library/Caches/com.apple.kext.caches/*
     
    Then reboot to be safe.
     
    Changelog:
    1.2.3 - Bug fixes and more modifications to the link status check code. It should no longer slow down booting when an ethernet cable is not connected. The bug fixes weren't anything huge, so feel free to stick with 1.2.2 (or any other version for that matter) if you're happy with it.
     
    1.2.2 - Bug fixes and some better link status checking. TSO was disabled in the latest Linux driver code from Atheros for the 8131 and 8132, so it's possible there are hardware bugs. To be safe, I disabled it by default for those cards. To re-enable it you'll have to find the corresponding card entry in Info.plist and set EnableTSO to true. Be sure to clear your kernel cache afterwards if editing the Info.plist in place.
     
    1.2.1 - Hopefully fixed a buffer memory allocation bug on non-gigabit adapters. Also added a minor packet receive optimisation.
     
    1.2.0 - Added TCP Segmentation Offload (TSO) support for both IPv4 and IPv6, partial checksum offloading for transmitted packets and a bunch of little bug fixes and what I hope are optimisations.
     
    1.1.2 - Rewrote some of the promiscous/multicast mode setting code to hopefully make things all clean and proper and maybe help with Bonjour problems. Filtered multicast reception instead of all-multicast reception should in theory make things a bit faster on a busy network with lots of multicast packets flying around the place, too.
     
    1.1.1 - Fixed a silly bug in the link status code. It was causing problems with resetting the connection status and DHCP stuff when the cable was disconnected etc. Also fixed up some other random bits and pieces for the 32-bit module.
     
    1.1.0 - The somewhat arbitrarily numbered initial release.
     
    Downloads:
    The zip files are (hopefully) attached to this post. They contain the kext module and the GPL sourcecode. The kext in the "Debug" folder is mostly the same as the regular kext, but prints much more information to the system logs.
     
    Latest:
    20121110 AtherosL1cEthernet-1.2.3.zip
    MD5 checksum (AtherosL1cEthernet-1.2.3.zip) = 9fb9113a573072e42e35da4e807b310a
     
    Previous:
    20121103 AtherosL1cEthernet-1.2.2.zip
    MD5 checksum (AtherosL1cEthernet-1.2.2.zip) = ac192399f1c3035e18a5a1e3d590e2f4
     
    20121020 AtherosL1cEthernet-1.2.1.zip
    MD5 checksum (AtherosL1cEthernet-1.2.1.zip) = 66ca3c478ed4b4b666c11b5fbc8ae2bd
     
    20121019 AtherosL1cEthernet-1.2.0.zip
    WARNING: See posts further down, this one might cause a kernel panic on certain (non-gigabit?) ethernet chips.
    MD5 checksum (AtherosL1cEthernet-1.2.0.zip) = 1b13bc115b89736b2d57a24ed3743efd
     
    20121008 AtherosL1cEthernet-1.1.2.zip
    MD5 checksum (AtherosL1cEthernet-1.1.2.zip) = c7629574c6aefc97e17fc09a3d4aab98
     
    20121003 AtherosL1cEthernet-1.1.1.zip
    MD5 checksum (AtherosL1cEthernet-1.1.1.zip) = 4c78da8a9bfbb02f6e4150802fa896ac
     
    20120924 AtherosL1cEthernet-1.1.0.zip
    MD5 checksum (AtherosL1cEthernet-1.1.0.zip) = 7bf3cb1cff665ca0cc3dc23aebf3c286
     
     
    As a final caveat, I'm mostly just throwing this driver/code out there and seeing what happens. I can't provide serious help or even guarantee a reply if things don't work for anyone. Enjoy!
×