Contribute
Register

Working Kext for Killer E2200

Status
Not open for further replies.
Joined
May 31, 2012
Messages
5
Motherboard
GA-Z77M-D3H
CPU
Intel 2500k @ 4.0 GHZ
Graphics
EVGA GTX 680
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
Hey guys. I've used your resources for a very long time, and now I finally have something to contribute in return. I recently purchased an MSI GT70-2OD laptop. Every PC and laptop I have all run Windows, OSX, and Linux, and I depend on that capability because I'm a computer repair guy, and I sometimes have to do work on exotic systems or do something that requires software exclusive to one platform or another. After quite a bit of work getting OSX installed on the laptop I remembered that it has killer doubleshot wireless and LAN (E2200), and that finding a driver for either of those was going to be nigh impossible. I started looking for a solution, and decided to install linux in the meantime. Lo and behold, the E2200 didn't work in Linux Mint 15 either. I was pretty disappointed, until I found a patch that someone developed to allow the E2200 to work in linux through the ALX driver.

Apparently the ALX driver already did support the E2200, it just didn't know it. At this point, I went back to OSX, downloaded the source for Shailua's ALX driver, manually added the patch, and compiled for mavericks. Unfortunately, that wasn't enough. It would see the hardware properly (PCI addresses and such), and even did load and associate (Which was a very good sign), but it would always fail halfway through the initialization. A couple days worth of digging later, I found out that I had to modify some low-level driver code to make it succeed.

A bit of explanation is in order, I think. With the normal AR8161s, and other ALX compatible chips, there is just the MII (Controller) and the PHY (Physical Link/Port). The PHY answers to the MII, and gives you your link. The MII talks to the PCI bus. (Normally) Only with the Killer, there is that fancy UDP offload engine in the way, and the MII always says that it's busy, because it's only expecting to get commands from the killer controller, and not the system. Part of what I did is, I disabled the check to see if the MII is busy, in order to override that. Accessing the MII will always succeed, even if it -really- is busy.

I AM NOT LIABLE IF THIS BREAKS YOUR SYSTEM OR FRIES YOUR NIC, and this is very important in this case because I -REMOVED- a FAILSAFE in the DRIVER CODE. That said, it works wonderfully for me, and while I didn't remove anything major, i would only recommend testing this driver on the KILLER E2200, and nothing else. The only killer I've used it on is the onboard E2200 on the MSI GT70-2OD. I'm using it on one of my gigabyte hacks' AR8161, and it does work, but I don't know how stable it is yet.

I don't know enough about Xcode to change the version number, and I'm too lazy to clean up the hardware descriptions (The E2200 shows up in System Information as an AR8172 Fast Ethernet. It still runs at gigabit speeds, so it's just a cosmetic thing.) and to be honest, I'm done working on it, because it works great, and I don't have the time to take it any farther. I'm including the modified source code, and the ALX Kext, compiled for Mavericks. If you need it for an older version of OSX, you can open the project in Xcode, change the build target to whichever version you need, and then hit build. it should require no editing for OSX versions 10.7 to 10.9.

EDIT: To install this kext, copy the DEBUG version of the kext to S/L/E, and also copy it into the plugins folder inside IONetworkingFamily.kext. Either use kext wizard, or simply repair permissions on the disk afterwards, then reboot. ^_^
 

Attachments

  • ALXEthernet For Killer E2200.zip
    267.6 KB · Views: 15,027
Hi gamester. Thanks for this! I've been trying to get this to work for a while now. Could provide a step by step for some of us on how to install this? I tried installing via kextutil and running myFix but it doesn't seem to show anywhere.

Thanks again.
 
Hey, thanks for the feedback! I think I may have buggered up the upload. Try installing the "debug" version of the kext. I can't remember if I compiled the release version with the fixes added or not, but knowing me, I probably didn't. The debug version has pretty light logging anyways, I don't think it'll clog up your logs or anything.

Have you edited your DSDT at all? I edited mine -heavily- while trying to get the kext to load, thinking that maybe it wasn't identified in ioreg. <_< >_> It shouldn't be necessary to get it working though.

The version I posted is compiled for Mavericks. Also, I installed it using KextWizard. Are you on a laptop, or are you on a desktop?

So,
Try installing the Debug version of the kext, using kext wizard, and post back with results, if you can. It works great for me, but I would like to see other people benefit from my efforts. ^_~
 
Hey gamester, I tried installing using kext wizard (the debug version), and rebuilt permissions and cache. Is there another step after this to get it to work? Maybe I should try compiling myself? What version of XCode were you using? When I try to install via kextutil I noticed that it said Code Signing Failure. Apparently XCode 4.4 and lower has an issue with signing kexts properly. Not sure if this would prevent the kext from loading.
 
Hmm. I used the latest Xcode, but I'm not a registered developer, so I'm not sure I have the option to properly sign it. My language of choice has always been C/C++, but I'm -very- new to OSX development, and don't know how to do most things in Xcode yet.

Are you using a laptop, or a desktop? What version of OSX are you using?

OH! I think I know what the issue is.

Try copying the debug version of the kext to

System/Library/Extensions/IONetworkingFamily.Kext/Contents/PlugIns

You right-click/option-click on IONetworkingFamily.kext, and click "Show Contents" to see what's inside the kext. Copy the Debug ALX kext into the plugins folder. Then, run kext wizard., and repair permissions. This should be done in addition to adding the kext to S/L/E.

Let me know how that works. ^_~
 
Hey gamester. That works. Thanks man. I hope you're not some crazy hacker that just gained access to my computer.

I had to use the Debug kext and I installed to both /System/Library/Extensions as well as the IONetworking... repaired permissions and cache with Kext Wizard just like you said.

Thanks again! I was about to go get a network card this weekend because nothing was working lol.
 
Just a quick heads up. Everything web related including the app store, icloud etc works as long as it shows as en0 in ifconfig. Additionally, you should be able to pull files from an smb server, and host your own from the hack. However, pushing files to an smb server may cause kernel panics. I'm not sure why, and unfortunately I don't have the skills or the time to fix it.

Thanks again for the feedback, and no worries, I'm not interested in your personal data or anything. I would consider this to be a very basic modification of some fine work by the authors of the linux alx driver, and shailua.

If you know anyone else, or any communities that could benefit from a killer kext, point them this way.
 
Works great on my MSI GE60-2OD. I'm finally able to download from the App Store. Thanks!
 
AWESOME! THANK YOU! Works like a charm!
Although I still have the same "an unknown error occurred" when I try to login to the appstore. Any ideas?
 
Status
Not open for further replies.
Back
Top