Subscribe to our RSS news feed
AAPL 196.39 (1.17)

Driver for nForce4 LAN, A duct taped together native OS X driver
**
  • Group: Members
  • Posts: 95
  • Joined: 24-February 06
  • Member No.: 25,113
I'm one of the unlucky/poor ones who own a A8N-SLI... and not even the deluxe edition that gives you the Marvell-Yukon chip which would work for OS X. I didn't want to buy another LAN board, because I'm perversely repulsed by that sort of redundancy and inelegance.

After a few attempts at trying to manipulate the vendor and device ids to make the Apple drivers work, I decided to write my own from scratch. tongue.gif

Well, more precisely, I decided to blatantly rip off of the GPL'ed forcedeth driver for Linux, which someone had mentioned earlier (but I had a really difficult time getting a copy of the source code on Google, I only managed to get several old versions so far). But I figured 2000 odd lines of code isn't too unreasonable and I could figure it out mostly, and also figure out enough of OS X's innards so I can port it.

Luckily, I was right, and it's partially thanks to the Apple team for providing a surprisingly friendly platform to code... device drivers on. I've never coded one in my life, and I've never coded for Macs, either, but I was able to get the hang of it pretty quickly. (However, I must say the documentation wasn't the best... I mean at least do a better job of hyperlinking it! And also I had quite a fun time trying to get the provided interrupt request handler to work right... it actually crashed my computer a lot more than the "unsafe" method I used earlier did)

The driver is pretty crappy, I have severe doubts about its stability, and indeed, I've had to restart my computer a lot during the development process, but having your code running at the kernel level doesn't give you a lot of room for error. tongue.gif But, hey it works (sort of... I think it might still want to murder USB if I try to unload the kext... "unsafe" method didn't have this problem). Also, I wasn't able to implement the latest and greatest features. Like scatter-gather, TOS and so forth. For those things, I'd probably have to actually talk to a real person to figure out what's going on instead of just looking at the code (which is pretty much not commented at all).

Anyway, I'm not how much interest is there (all the other nForce4 people seem to have other LAN cards or have the Deluxe or Platinum version and using the Marvell Yukon driver), and the driver so far is still pretty humiliatingly unstable (though I haven't tested it out extensively). If you want the source, it'll be all GPL'ed and such.

But I mostly wanted to brag about how I wrote a OS X driver. tongue.gif It doesn't seem like that happens a lot... Pretty good for a Apple newb, eh?

EDIT:

The driver attached should now be fairly stable, but as with all OS X drivers, there is no guarantee of support. Complete system freezes have been known to occur with older versions and may reoccur, so avoid doing critical work on OS X. Source code is included for the sake of future generations. Here are my recommended instructions for getting it working on your computer:

1. Download the attached driver
2. Extract the contents onto the desktop
3. Open the Terminal application in the Applications/Utilities folder
4. Type "tail -f /var/log/system.log" to obtain debugging output for the first run.
5. Use the menu bar to open up a new Terminal window.
6. In this new window, type "cd ~/Desktop/forcedeth/build/Release"
7. sudo chown -R root:wheel forcedeth.kext
8. sudo chmod -R 755 forcedeth.kext
9. sudo kextload -v forcedeth.kext
10. Observe in the log window what happens. If there are no errors, and you eventually see the link going up with a proper speed, then the driver will work with your hardware. Otherwise, paste the log in this thread for help.
11. Test out the driver by browsing some websites, etc.
12. If there were any problems in steps 10 or 11, type "sudo kextunload forcedeth.kext", then repeat steps 7-11 for forcedeth-nockd.kext
13. To install the driver, type "sudo cp -R forcedeth.kext /System/Library/Extensions"
14. Lastly, update the extensions cache with "sudo kextcache -k /System/Library/Extensions"


EDIT: I needed to do some work on OS X again, so I installed Leopard. The original version of my driver seemed to not work/immediately kernel panic so I made a small change. I think it's probably the same change I made awhile ago when I was trying to fix it for stability. I also cleaned up the plists a bit. But if it didn't work for you at all before, it will probably not work for you now either. But if it worked for you before, this version should work better.

It was compiled under 10.5, so it might need a recompile for your version of the OS.

EDIT2: Replaced old version with a newer version that fixes a bug that caused kernel panics for me before. After some work figuring out how to get panic logs, I traced it to the occasional failure of replaceOrCopyPacket. I did a quick Google search to see why that could possibly happen -- only it lead me right back to this thread, where someone named chuttenh had already traced it to the very same problem. D'oh! I can't keep track of this huge thread. Anyway, I posted my version of the fix. There's some weirdness with refilling the ring with "available packets" after errors that I think may come up with earlier versions and chuttenh's version, but I am not sure. His version has a few other changes, I think, and is available from his post somewhere in here.

EDIT3 I merged MeDevil's changes for MCP61 and called it 0.3 (thanks, MeDevil!). I cannot test these changes myself, but according to MeDevil, it should take care of the waking up from sleep problem and backwards MAC address issue for MCP61. Note that the device ID is hardcoded in there, so if anyone has these issues and do not have MCP61, change where it checks specifically for 0x03EF, stick in your device ID, recompile and see if it works for you. If it does, tell me and we can add it. (EDIT3.1: Updated 0.3 to actually add MCP61 to the Info.plist, forgot to do that last time. Oops!)

EDIT3.2: Github repository up at http://github.com/planetbeing/forcedeth-osx/. Issue pull requests whenever. It also has a wiki if people would like to share their experiences with the driver there.
Attached File(s)
Attached File  forcedeth.zip ( 1.05MB ) Number of downloads: 30320
Attached File  forcedeth_0.2c_leopard.zip ( 930.78K ) Number of downloads: 4851
Attached File  forcedeth_0.3_leopard.zip ( 897.15K ) Number of downloads: 12009
 
PM Profile Card
Go to the top of the page
+ Quote Post

Posts in this topic
- planetbeing   Driver for nForce4 LAN   Mar 24 2006, 08:36 AM
- - dr bhaskar   I was struggling with my ethernet card not getting...   Sep 8 2008, 08:02 PM
- - gimpyviper   I just reinstalled OS X onto my home computer this...   Sep 9 2008, 04:00 PM
- - marijuanamike420   the problem i'm having is with version 3, the ...   Sep 10 2008, 07:37 AM
- - mixx85   Please, the help is necessary to me. I have mobo m...   Sep 10 2008, 09:21 PM
- - hunter onhika   Hi guys sorta new to this tuff but i can't get...   Sep 12 2008, 03:35 AM
|- - eno   QUOTE (hunter onhika @ Sep 12 2008, 03:35...   Sep 13 2008, 01:27 AM
- - scififan68   This loads and it seems to work fine when starting...   Sep 14 2008, 02:53 AM
- - AlSnow   This is for all the people who are struggling with...   Sep 17 2008, 08:37 AM
|- - scififan68   QUOTE (AlSnow @ Sep 17 2008, 03:37 AM) Th...   Sep 20 2008, 10:45 PM
|- - benoitc   QUOTE (scififan68 @ Sep 21 2008, 12:45 AM...   Sep 24 2008, 09:46 AM
- - eno   I need more testers for my modified version of pla...   Sep 17 2008, 01:31 PM
|- - PreHeat   QUOTE (eno @ Sep 17 2008, 09:31 PM) I nee...   Sep 30 2008, 01:25 PM
- - mineraal   Hello, Pleace tell me what is making my network st...   Sep 19 2008, 09:39 PM
- - semcheg   QUOTE I need more testers for my modified version ...   Sep 20 2008, 03:17 AM
- - kilki   Hello all ! Iam with MCP61 LAN card and Iam as...   Oct 21 2008, 02:16 PM
- - Azatey   Hello, everyone! I have such problem with my L...   Oct 23 2008, 03:40 PM
- - enzo74   Hello, i have problem that MenuMeter dont show tra...   Oct 23 2008, 08:24 PM
- - tkfu   Got the driver working for the onboard LAN on the ...   Nov 3 2008, 04:23 PM
- - RetroRen   Guys, I have a problem. I've managed to get s...   Nov 21 2008, 09:55 AM
- - douggy12345   Hi I have an ECS Geforce6100PM-M2 Mobo with iD...   Nov 25 2008, 06:31 PM
|- - eno   QUOTE (douggy12345 @ Nov 25 2008, 06:31 P...   Nov 25 2008, 07:09 PM
|- - douggy12345   QUOTE (eno @ Nov 25 2008, 08:09 PM) Try t...   Nov 25 2008, 07:38 PM
|- - eno   QUOTE (douggy12345 @ Nov 25 2008, 07:38 P...   Nov 25 2008, 08:36 PM
- - Zvejkus   Hello all, yesterday I installed my first Mac OS...   Nov 26 2008, 07:15 AM
|- - eno   QUOTE (Zvejkus @ Nov 26 2008, 07:15 AM) H...   Nov 26 2008, 02:06 PM
|- - Zvejkus   QUOTE (eno @ Nov 26 2008, 03:06 PM) force...   Nov 27 2008, 08:40 AM
- - Rob_Quads   The latest driver seems to work well with the Giga...   Dec 2 2008, 11:55 PM
- - Norcalli   I just wanted to add that I got this driver, or at...   Jan 12 2009, 06:38 AM
- - bickyb   I have an ECS GeForce 7050M-M motherboard running ...   Jan 14 2009, 04:24 AM
|- - eno   QUOTE (bickyb @ Jan 13 2009, 09:24 PM) I ...   Jan 14 2009, 07:07 AM
|- - bickyb   Eno, The drivers you pointed me to worked flawless...   Jan 15 2009, 06:12 AM
- - ObsidianX   Hey folks, I was just wondering if anybody had an ...   Jan 14 2009, 07:57 PM
- - cyber_tods   Hi, I was just wondering if the nForce ethernet i...   Jan 20 2009, 12:42 AM
- - Johnnie Foxtrott   Hi eno, You know, I'm reaching my borders, I...   Jan 22 2009, 07:12 PM
|- - eno   QUOTE (Johnnie Foxtrott @ Jan 22 2009, 12...   Jan 22 2009, 07:51 PM
- - Johnnie Foxtrott   Thanks for the fast reply. I think I will try the ...   Jan 22 2009, 08:22 PM
- - demigod   It works for me GA-K8N-51GMF-9 Mobo Nforce 430 MCP...   Feb 6 2009, 07:33 PM
- - vlad.ro   I have some problems.... when i`m trying to co...   Feb 23 2009, 06:29 PM
- - drumthrasher109   I would try installing the kext with Kext Helper. ...   Feb 28 2009, 03:49 PM
- - bitshiftr   Tried all 3 of the .zip's up on the front page...   Apr 2 2009, 02:03 AM
|- - eno   forcedeth.kext has been made obsolete by nForceLAN...   Apr 2 2009, 02:39 AM
- - bruise   Hi, i have successfully installed Kalyway-10.5.2 ...   Apr 26 2009, 02:06 PM
- - bruise   i tried loading the forcedeth kext, but i keep get...   May 7 2009, 09:54 PM
|- - PGHammer   QUOTE (bruise @ May 7 2009, 04:54 PM) i t...   May 31 2009, 03:28 PM
- - yangxin   My device ID is 0269 10DE,after installing the dri...   Jun 19 2009, 02:56 PM
- - Triconick   Hi, Im new to the hole mac on pc thing. I tryed al...   Jul 8 2009, 05:52 PM
- - king123   Yeah when i try the sudo thing it always says to e...   Jul 16 2009, 10:34 PM
- - Mel11235   I'm not having any luck with this. Could you p...   Jul 27 2009, 07:01 PM
- - welshie   I've tried version 0.3 of your driver on a mac...   Aug 6 2009, 09:14 PM
|- - eno   QUOTE (welshie @ Aug 6 2009, 03:14 PM) I...   Aug 7 2009, 01:59 AM
- - leoaguirre   After to enter the last command, system keep worki...   Dec 2 2009, 08:16 AM
- - eno   QUOTE (leoaguirre @ Dec 2 2009, 01:16 AM)...   Dec 2 2009, 08:24 PM
- - leoaguirre   QUOTE (eno @ Dec 2 2009, 05:24 PM) Use nF...   Dec 5 2009, 05:13 PM
8 Pages V  « < 6 7 8

Reply to this topic Start new topic

3 User(s) are reading this topic (3 Guests and 0 Anonymous Users)
0 Members:

 

RSS Lo-Fi Version Time is now: 9th February 2010 - 02:51 PM