Jump to content

Driver for nForce4 LAN


planetbeing
 Share

765 posts in this topic

Recommended Posts

I have Epox 8KDA (nForce3 250), sempron 3100 (SSE2) and uphuck_10.4.9_v1.4a installed.

 

And i have some troubles with network access (i have simple ethernet connection with manual configuration). When i try to configure my ethernet connection, OS hangs (i can move cursor but this is all whan i can). forcedeth does not fix this trouble.

 

Plaese look at my logs:

 

Dec 9 22:10:08 vs-computer sudo: hudson : TTY=ttyp2 ; PWD=/Users/hudson/Desktop/forcedeth/build/Release ; USER=root ; COMMAND=/sbin/kextload -v forcedeth.kext

Dec 9 22:10:12 vs-computer /System/Library/CoreServices/mcxd.app/Contents/MacOS/mcxd: MCXD.initializeDirectoryServices: Unable to get the ethernet address

Dec 9 22:10:20 vs-computer kernel[0]: MMAC: family specific matching fails

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Initializing.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Probing.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Starting.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: PCI system 0x10DE:0x00DF, subsystem 0x1695:0x100C opened.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Mapped from 0xEA001000 of length 4096.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Allocated 3072 bytes of contiguous memory for DMA: rx at 0x23d6e000, tx at 0x23d6e400, wired at 0xc011000.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Found nForce4 LAN with MAC: 00:04:61:78:D5:18.

Dec 9 22:10:20 vs-computer kernel[0]: forcedeth: Found PHY 0x0000:0x0020 at address 1.

Dec 9 22:10:20 vs-computer kernel[0]: com_triton_forcedeth: Ethernet address 00:04:61:78:d5:18

 

===============

 

vs-computer:~/Desktop/forcedeth/build/Release root# ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

inet6 ::1 prefixlen 128

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

inet 127.0.0.1 netmask 0xff000000

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

en2: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500

ether 00:04:61:78:d5:18

media: autoselect (<unknown type>)

supported media: autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 100baseTX <full-duplex> 100baseTX <half-duplex>

Link to comment
Share on other sites

I found a temporary solution to Leopard's Kernel Panicing!

 

I have a DFI LanParty nForce4-Ultra. forcedeth always wants to kernel panic whenever I'm under high bandwidth. If you kextunload and kextload forcedeth right after boot in terminal, it will be a lot stabler. For me, it's the only way to connect to my laptop. It's not 100% guaranteed, but I've managed to go a lot further.

Link to comment
Share on other sites

try running on one core, this might be a multithreading problem

 

cpus=1 on boot

 

That's probably it. When I wrote the code, I had a very naive understanding of mutexs and the spinlocks I used were really not appropriate. A rewrite is necessary, but I have not had the time nor the inclination for the last couple of years. I'm considering rewriting it in the spring, when I have to connect through ethernet again (right now, I'm on wireless), but I may not get to it. Sorry for the folks who depend on the whims of driver writers. :/

 

EDIT: Actually, just read my code again: CPUS=1 probably would not help. I basically didn't lock where I should, and rapid firing of interrupts (for example when there's high network activity) causes the code to munge itself. From the commented out locks, I obviously had tried to put in spinlocks before, but that kind of lock would've failed comically.

 

The upshot is, I think I can fix this pretty quickly, and if someone would care to link me to the most current version of the code people have been using, I can fix it.

Link to comment
Share on other sites

ive been using MikeInNs driver i think its based on the forcedeth driver and it has the same freezing problems where all the USB devices stop working. Here is the thread:

 

http://forum.insanelymac.com/index.php?showtopic=73317

 

 

so far i havent gotten any freezes when i use cpus=1, but when booting with all cores enabled i freeze when downloading larger files.

Link to comment
Share on other sites

ive been using MikeInNs driver i think its based on the forcedeth driver and it has the same freezing problems where all the USB devices stop working. Here is the thread:

 

http://forum.insanelymac.com/index.php?showtopic=73317

so far i havent gotten any freezes when i use cpus=1, but when booting with all cores enabled i freeze when downloading larger files.

 

That one's for the Marvell controller which is not appropriate for many of the other onboard nForce NICs. Did anyone modify this driver for nForce boards?

Link to comment
Share on other sites

Hey guys!

I have the same problem as "Audit" (see Page 21): I did everything according to the steps in Posting 1, and forcedeth seems to load fine, but all I get is the chown/chmod/kextload commands in the system log, nothing else.

I also don't get the log that is posted on Page 1 (though that might be outdated with current versions now) upon kextloading forcedeth, all i get is this:

 

forcedeth.kext appears to be valid

loading extension forcedeth.kext

forcedeth.kext loaded successfully

loading personalities named:

nForce 4 LAN

sending 1 personality to the kernel

matching started for forcedeth.kext

 

No Ethernet shows up in the Network panel and ifconfig doesn't change a bit, no enX interfaces!.. 8(

 

I noticed that forcedeth.kext does show up in the Extensions in the System Profiler, but forcedeth-nockd.kext does not...

 

I have an Asus A8N-E with an nForce 4 Ultra chipset, an Athlon64 3500+ (Venice) with a beautiful fanless Geforce 7600GT, running a freshly installed, totally unmodified Jas 10.4.8... plz he;lp! ;-D

 

P.S: Just in case someone can help me out (or give me a pointer) on the other issues I have:

1) "About this Mac" crashes pretty much everytime I try to show it. I've heard paulicat made an AppleSMBios.kext that's supposed to fix this, but the download link from http://paulicat.freeflux.net/blog/archive/2006/11/ is dead.

2) Lineout and linein seem to work, but is there any way to get the 8-channel output running? I do know OS X supports PCM-Multichannel-output, it works without drivers with all USB-5.1 devices..

3) Not THAT important, but did anyone try to get SP/DIF to work? 8)

4) Sleep and reboot do not work. This seems to require some heavy trial-and-error on kernels, anyone with an A8N-E that could give me some pointers? 8)

Link to comment
Share on other sites

Okay, please shoot me! 8)

I was given the MoBo by a guy who ran osx86 on it before, but he hadn't installed forcedeth (it wasn't available or stable enough back then!), so he disabled LAN in the BIOS! ;-)

I've enabled it now and it all works like a charm just according to the instructions on page 1, thank you so much for forcedeth! Hooray, GBit-EN works! 8)

However, the other problems mentioned persist..

Link to comment
Share on other sites

That one's for the Marvell controller which is not appropriate for many of the other onboard nForce NICs. Did anyone modify this driver for nForce boards?

I made a special version for cards with the 0269 dev ID, but other than that, I'm not sure if there have been any other modifications to the driver...

 

EDIT: I wrote up a quick shell script that will unload and reload forcedeth or forcedeth-nockd.kext to help with the driver and Leopard's stability. The first one is for forcedeth-nockd and the second one is for regular forcedeth.

nForceNockd_Reload.command.zip

nForce_Reload.command.zip

Link to comment
Share on other sites

I think I have a quick fix for this issue. I did some more research and the problem is a bit different than I had originally thought. It turned out that I did serialize interrupts with IOWorkLoop, but I did not serialize the transmission of the packets. The rest of the commands ought to be thread-safe as well, since they should be automatically serialized via a IOCommandGate on the provider's IOWorkLoop.

 

The fix ought to be as simple as using an IOGatedOutputQueue instead of an IOBasicOutputQueue for the output packet queue. This should be the only change that is needed.

 

Also, I don't see the need to disable interrupts in doNicPoll since everything is explicitly serialized, so that ought to be removed as well.

 

I will compile a version later this afternoon, but I'll need testers to pound the {censored} out of the driver, since I currently use a wireless connection, not the ethernet nic.

Link to comment
Share on other sites

I compiled on Leopard, so that may be the problem. When does the kernel panic happen? What does "nothing" mean?

Compiling on Leopard would cause the problem?

 

I added my devID to forcedeth-nockd, but System Preferences doesnt see a network connection.

Forcedeth makes OS X panic.

 

picture1wx0.th.png

 

It seems like OS X is automatically unloading the kext a few seconds after I load it..

Link to comment
Share on other sites

 Share

×
×
  • Create New...