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.