Jump to content

Driver for nForce4 LAN


planetbeing
 Share

765 posts in this topic

Recommended Posts

The supposed fix from the other thread was to set IRQTimer to true in the plist, but that doesn't always work - in fact, it didn't even work in the long run for the original poster :rolleyes: Things that alter the driver timing sometimes make it less likely to crash (which was driving me nuts for a while, since adding IOLogs would change the crash behavior - just like old-school printfs altering memory locations!)

 

Anyhow, the IRQTimer "fix" is probably immaterial. The problem appears to be that replaceOrCopyPacket sometimes returns null under high load, forcedeth doesn't check for it, and some subsequent IONetworkingFamily call using that null crashes (presumably inputPacket). If/when I can convince myself that this is really, truly the fix, I'll post a modified source/kext package. I hope that it's not returning null because packets are being leaked somewhere, but I don't _think_ that's the case - it looks like it's just a load thing. Further bulletins as events warrant...

Link to comment
Share on other sites

Ok - anyone who's been getting kernel panics, try this out. I haven't had any panics since I fixed the null check (except from my SATA driver ;)), and while I'm not 100% sure that it's doing the right thing, at least it's not crashing. Feel free to use the release rather than debug kext, unless you particularly enjoy lots of syslog messages.

 

Note that this is a super-safe version; in the process of tracking down the bug, I put in some additional thread safety and reverted some buffer sizes to their defaults. I suspect neither change is necessary and that you can get some additional performance by taking them out, but I haven't had time to check it out yet. Like I said - not crashing is better than nothing :blink: So here's hoping it's _actually_ not panicking any more...

 

forcedeth.zip

Link to comment
Share on other sites

All I did was take the 'forcedeth_nockd.kext' from /build/release and put it in kext helper. A few seconds later I go to system preferences>network and i'm connected with the proper IP address.

 

The things is, if I restart I'll get the 169.xxxxxx IP, so before I shut it down for later use I have to delete that kext, and the extensions.mkext file, wait a minute, then I can shut it down. The next time I turn it on I just have to put the kext back in kext helper but at least it works.

Link to comment
Share on other sites

Edit: removed the quote

 

hey,

 

i dunno if that driver was meant to solve the internet freezing issue as well and make it possible to boot without cpus=1 or if that driver is just intended for those mainboardowners where nforce4 lan just doesnt want to work. i have tried this driver, but unfortunately it doesnt solve my internet freezing problem. :D thanks anyways. maybe someone else has a clou how to use all cores and still be able to have ethernet working correctly?

 

thx for reading!

Link to comment
Share on other sites

Can you explain the problem a little better? After modification, I haven't had any issues with using both cores. However, I do occasionally see a network freeze with the address reverting to a 169 etc., but it's very rare. I've been able to replicate it most consistently in Mail, actually, when there's a large amount of back-and-forth activity rather than just a bunch of transmission or reception. I haven't had a chance to look into it thoroughly, though, since A) it's much less severe than the kernel panic and B ) it's a lot less obvious when it happens. If you're only seeing this behavior in my modified kext, it could be due to the excessive queue lockdown for thread safety (which would make sense in the context of simultaneous transmits/receives). If you're also seeing it in the original kext, I have fewer guesses offhand :D

 

Anyhow, if you're having problems, please post the details of both your hardware (specific motherboard and ethernet controller) and the context (i.e. what you were doing when the problem occurred). And quoting the entire previous post makes it very difficult to read yours ;)

Link to comment
Share on other sites

so i put in the forcedeth-nockd.kext and watched the log, but it goes crazy. no errors, the link went up at the correct speed, and browsing is fine as far as i can tell. only thing is, i get a whole lot of repeated messages. saying done with packet, ouput, etc. looks funny because its the same packet, and the log says --last message repeated 649 times --. sometimes up to 2407 or 3256 even. is this normal? i wouldnt think so, but i dont know.

 

EDIT #1: not working, nvm. it just locked up on me. is that normal with a malfunctioning lan driver, for the entire computer to freeze up?

 

EDIT #2: i guess the previous one was a kernal panic in the background that i couldnt see. anyways, i have forcedeth.kext installed now and everything appears to be running smoothly. if so, many thanks to planetbeing, and hopefully i wont have to post back, other than to say thanks again. if not, well, we shall see.

 

EDIT #3: noooooooooooooo!!!! it panic'd on me again. time to try the last driver. then ill maybe need some help. lets hope it works.

 

sys specs:

amd 4200 x2

a8n sli

7900 gt

3 satas

g15 keyboard

g5 mouse

Link to comment
Share on other sites

alright, all have failed, so new post. forcedeth.kext worked the best, forcedeth-nockd.kext and forcedeth-d.kext keep giving endlessly repeating packet calls or whatever, and forcedeth-nock wont even load correctly. but with the good one it still freezes after a little while. wheres the logs i can post again? it catches the panic right? or is this unrelated. (processor?)

Link to comment
Share on other sites

Anyhow, if you're having problems, please post the details of both your hardware (specific motherboard and ethernet controller) and the context (i.e. what you were doing when the problem occurred). And quoting the entire previous post makes it very difficult to read yours :)

 

ok my specs are:

 

MOBO

• Thunder K8WE (S2895)

PROCESSOR

• 2x AMD Opteron 885

MEMORY

• 8x 512mb hp ddr server ram

GRAPHICS

• NVIDEA Geforce 8400GS

OS´s

• Windows Vista Ultimate & Mac Os X Leopard 10.5.2

LAN

• NVidea nForce 4 (dev id:0x0057, ven id:0x10DE) (eventhough it says in the manual of my mobo that it is a marvel SSE1111CAA controlled by the nForce Professional 2200/2050 Chipset)

 

ok, basically i have similar issues to fayze´s. i get the repeating message, eventhough they seem to be below 100-200 when using the forcedeth-nockd.kext. i think the other kext that is loadable is the forcedeth-d.kext. the other 2 dont load at all (like fayze said). so when using the forcedeth-nockd.kext i have the best results but it crashes periodically when opening safari and loading the applepage. if i make it past the applepage it will freeze at the second one or when starting a download. now i have downloaded and installed the skge.kext, which works perfectly. it works like yours is supposed to be. only a very few crashes (i had two so far).

 

that is an excerpt (is that spelled right?) from the system.log output:

 

Feb 12 19:27:50 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:27:51: --- last message repeated 92 times ---

Feb 12 19:27:51 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:27:51 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:27:52: --- last message repeated 92 times ---

Feb 12 19:27:52 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:27:52 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:27:55: --- last message repeated 283 times ---

Feb 12 19:27:55 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:27:55 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:27:56: --- last message repeated 92 times ---

Feb 12 19:27:56 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:27:56 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:27:57: --- last message repeated 92 times ---

Feb 12 19:27:57 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:27:57 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:28:00: --- last message repeated 283 times ---

Feb 12 19:28:00 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:28:00 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:28:01: --- last message repeated 91 times ---

Feb 12 19:28:01 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:28:01 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:28:02: --- last message repeated 93 times ---

Feb 12 19:28:02 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:28:02 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:28:05: --- last message repeated 282 times ---

Feb 12 19:28:05 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:28:05 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:28:06: --- last message repeated 92 times ---

Feb 12 19:28:06 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:28:06 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

Feb 12 19:28:07: --- last message repeated 93 times ---

Feb 12 19:28:07 darius-magnoliuss-acpi kernel[0]: 000062e

Feb 12 19:28:07 darius-magnoliuss-acpi kernel[0]: forcedeth: packet 80000000 - 8000062e

 

unfortunately i dont have a saved log when i used the forcedeth-nockd.kext on its own, only this one using the skge.kext in combination. however, the other log didnt look that different, slightly more random repeating times, and sometimes there was something else i remember, which could have been the issue, but as i said i dont have a log to tell you what it was. ^_^

 

My device id is listed in the info.plist, but if i could find the dev id fo a marvell chip as descibed in my mobo manual i could try and add it. maybe it would work? i havent found it yet though. :(

 

btw. do you know why it is recognized as a nForce 4 Lan, eventhough it says something different in my manual? even windows detects it as a nForce 4 Lan with the same dev id and ven id. what chips does nForce4 lans usually use? marvell ones? :D

 

p.s. sorry i didnt want to quote the whole thing. for some reason i might have hit the Apple+Z combo after deleting half of it, which wasnt meant to address the reply but something else to make undo? :)

 

thx for reading...

 

pace out

Link to comment
Share on other sites

I haven't had time to check these out in detail yet, but the "repeating messages" are because you're using the debug kext, forcedeth-d.kext. They generally don't mean anything - they're just plunked into the log every time a packet is received or transmitted. Use forcedeth.kext instead (or edit the Info.plist) to turn them off.

Link to comment
Share on other sites

I haven't had time to check these out in detail yet, but the "repeating messages" are because you're using the debug kext, forcedeth-d.kext. They generally don't mean anything - they're just plunked into the log every time a packet is received or transmitted. Use forcedeth.kext instead (or edit the Info.plist) to turn them off.
cant be forcedeth-d.kext its forcedth-nockd.kext i am using :( . i saw that debugging for this kext is set to true compared to the original forcedeth-d.kext coming from the install disk where it is set to false. i dont think the forcedeth.kext seemed to be loadable. i remember two of the kexts didnt load and i think forcedeth is one of them. but i have got a log generated before it crashes. it is attached to this post. maybe you know what it means?sytemlog_for_forcedeth_nockd.rtfpace out
but i have got a log generated before it crashes. it is attached to this post. maybe you know what it means?
the log doesnt actually show the real last line because this is seconds before it freezes and when it freezes it doesnt show anything anymore but stays as it is. so i cant tell you if there is an actual error line showing up in the end. i am gonna have a look in the error logs, maybe something has been saved to it. but i think these errors and freezes stay generally unreported and noone knows the error unless knowing what happened before to know what could be the cause?
Link to comment
Share on other sites

cant be forcedeth-d.kext its forcedth-nockd.kext i am using :( . i saw that debugging for this kext is set to true compared to the original forcedeth-d.kext coming from the install disk where it is set to false.

-nockd is essentially the same as -d in that they both have debugging turned on :) The packet and output messages aren't indicative of any errors in either case, they're purely for information and logging (because the debug flag's turned on). I'm not positive, but if I remember right, the "nock" kexts simply tune down their strictness when checking for allowed card IDs; there shouldn't be any other difference relative to the plain old forcedeth.kext (although you're right, it wouldn't be loadable if you don't have quite the right hardware).

 

Anyhow, if skge.kext works for you, go with that - there's a whole family of similar-but-not-identical Marvell controllers, and the forcedeth.kext code's based on a particularly old version of a particularly unstable driver. Anything else that works is probably better :) I just started hacking on forcedeth so that _something_ would work with my board without panicking. Speaking of which, when you say "freeze", do you mean that the network dies or that you actually get a kernel panic? If the latter, you can give "debug=0x100" (without the quotes, of course) as a boot flag to get a real, moderately informative kernel dump, even if it's not syslogging anything at the very end or generating a panic log correctly.

Link to comment
Share on other sites

yeah it was a complete system halt, most likely because of a kernal panic. i ended up putting "cpus=1" for boot flags and am still using forcedeth.kext for a couple days now, without any problems. kinda sad that was the problem, but at least i got it figured out. only reason i didnt have it before is that none of the guides for my hardware said to do, and it loaded fine, but only crashed when browsing the web. so hopefully i wont have any future problems.

 

@fluxus: do your specs mean you have 2 cpus or one dual core? if its a dual core like mine, do you have the "cpus=1" flag set? if not, i would try it just to see.

Link to comment
Share on other sites

If you're using my updated kext and still seeing kernel panics with both cores on, please try the debug=0x100 parameter and post what it displays. I haven't had any trouble since making the code changes, and there are no obvious remaining race conditions. Of course, a race condition doesn't have to be obvious (and usually isn't), and the original panic wasn't actually caused by a race condition anyhow, but I'm happy to take a look :| Only using half of a dual core machine is a big letdown (although, granted, not as big as having no network connectivity).

Link to comment
Share on other sites

sorry, but i have a couple of more questions pushing through the back of my forehead,....

 

ok, basically in all forcedeth.kexts my device id is listed as the first one 0x005710DE, which is supposed to be the nforce 4 lan. that is what windows detects as well and it runs correctly and fast and smoothly in windows.

 

now my questions:

 

0. why would any of the forcedeth.kexts not be loadable, if my dev ids are listed in all 4 *.plist´s?

 

1. why is it that the lan is detected as a nforce 4 lan, eventhough it says in my manual that it is a marvell SSE1111CAA chip? is that because nforce 4 lan uses these marvel chips but they are published under nvideas ven id with nforce 4 lans dev id?

 

2. also in my manual it says i have the nforce professional chipset 2200 and 2050 of which each one controlls one lan. now, why does it say nforce 4 lan and not nforce professional lan (if that exists at all)?

 

3. is the reason for my lan not working properly under mac os x -eventhough the device ids seem to be supported- because of the same reason you mentioned about forcedeth being an unstable old driver?

 

4.why would they make a driver with the device ids for a device listed and release that "beta", eventhough it is completely shiiite anyways?

 

Anyhow, if skge.kext works for you, go with that

 

5. when running skge.kext on its own it says i am not connected to the internet. since you said forcedeth is an unstable driver i would like to get rid of it and if possible use skge.kext on its own. however, skge.kext doesnt even load at bootup, i have to manually start it using the terminal. do i have to use skge in combination, or should i be able to use skge.kext the same way as using forcedeth.kext.

 

###if yes, have you got a better command line to load it, make it first choice and start it during boot?

 

6. are there any other nforce 4 kexts worth trying that you could recommend? you said there are a few more?ohh and yes, i meant it freezes like a kernel panic. i always have to nanually reboot. thx for the boot command.btw.:

 

7. does this command only work the first time after manually rebooting my system after network causes kp, or will the error stuff still be there like, now? its not a log you said, so i presume its not there anymore and i have to wait till next kp?

 

i can´t think of any more questions right now, eventhough i look like :thumbsup_anim: but i just feel :D

 

i have just changed to mac os x like a week ago and i am reading every day in this forum. i am coping with terminal and try lot of things, but i realise i have to catch up on a lot of things if i want to have a PERFECT HACKMAC :D

 

thx for reading...and...

 

pace out, fLuXuS

 

@fluxus: do your specs mean you have 2 cpus or one dual core? if its a dual core like mine, do you have the "cpus=1" flag set? if not, i would try it just to see.

 

yes, i have two cpus with two cores each (like a PowerMac Quad-core) and for internet to work i have to use cpus=1 sometimes, well actually i always use it so that i dont get any kps when surfing the web, eventhough i had only two kps when loading the skge.kext as well. but since i never know what i am doing besides surfing the web i found it safer to use the kf cpus=1 to make sure i dont lose something pressureous (is that spelled right?).

 

Only using half of a dual core machine is a big letdown (although, granted, not as big as having no network connectivity).

 

well for me its either using only a quarter of my machine and having internet, or using all my cores and not being able to use internet. i think it could be worse - like having both problems at the same time :wacko: , but it would be better having full power and a working network at the same time :D

Link to comment
Share on other sites

guess what, i have just deleted the old forcedeth-nockd.kext and the skge.kext, replaced it with the new forcedeth.kext instead et voila everything works 100%!! all cores and network connection rocks! thanks a lot!

 

pace out...

Link to comment
Share on other sites

Note that this is a super-safe version; in the process of tracking down the bug, I put in some additional thread safety and reverted some buffer sizes to their defaults. I suspect neither change is necessary and that you can get some additional performance by taking them out, but I haven't had time to check it out yet. Like I said - not crashing is better than nothing :) So here's hoping it's _actually_ not panicking any more...

 

forcedeth.zip

 

Great work chuttenh... The driver works... In that no more freezes with both CPU cores enabled, however, for some reason VPN connectivity has been affected. I used to be able to connect to a PPTP VPN, but after installing your driver iit shows connecting... until finally timing out...

Link to comment
Share on other sites

@ chuttenh

alright ill try your fixed forcedeth. I think ive been getting bad connectivity sometimes, had to disable lan then reenable to fix. very strange, and random. ill post with results after this weekend. ill be home from school for the next couple days, so i wont be able to play with my desktop. just my hackintosh acer. :blink: and yes i agree completely, i would much rather have both cores enabled than just one.

Link to comment
Share on other sites

@ chuttenh

trying out your edited forcedeth.kext now, with not cpus=1 boot flag. we'll see how it goes. ill try dl'ing some stuff and report back if i get panics or not.

 

UPDATE: well, been running on both cores all day, downloaded a movie and some other random files, browsing the web, using adium, etc, without a panic yet. looking good so far.

Link to comment
Share on other sites

If you are getting the (not a bundle) error when you try to load forcedeth-nock.kext it is because there is a line missing out of it's Info.plist file. Right below the "<key>nForce 4 LAN</key><dict>" you need to insert "<key>CFBundleIdentifier</key>".

 

_____________ Incorrect Info.plist in forcedeth-nock ________________

<dict>

<key>nForce 4 LAN</key>

<dict>

<string>com.triton.forcedeth</string>

<key>ChecksumReceive</key>

______________________________________________________________

 

_____________ Corrected Info.plist in forcedeth-nock ________________

<dict>

<key>nForce 4 LAN</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.triton.forcedeth</string>

<key>ChecksumReceive</key>

______________________________________________________________

 

 

I can also report that forcedeth-nock works with 0x026910DE on a Asus Pundit P1-AH2. Chipset nForce 410/430

Oh, and if you have a P1-AH2 and want to fix your sound download the following from this post ALC861_0x10ec0861Installler.zip

Link to comment
Share on other sites

THANK´S VERY MUCH, as follow you guide and now have The NIC working, en0: , another is the wifi Ralink USB to route Internet ADSL, Nvidia MOBO Nic Realtek RTL8201CL 10/100 Ethernet LAN PHY, now connect to my OLD & GREAT iMAC Grafite

computer:Release pacochaves$ ifconfig

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

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

inet 127.0.0.1 netmask 0xff000000

inet6 ::1 prefixlen 128

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

stf0: flags=0<> mtu 1280

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet6 fe80::280:5aff:fe38:5ac1%en1 prefixlen 64 scopeid 0x4

inet 192.168.1.40 netmask 0xffffff00 broadcast 192.168.1.255

ether 00:80:5a:38:5a:c1

media: autoselect status: active

supported media: autoselect

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255

inet6 fe80::219:66ff:fe06:7f8a%en0 prefixlen 64 scopeid 0x5

inet 192.168.1.39 netmask 0xffffff00 broadcast 192.168.1.255

ether 00:19:66:06:7f:8a

media: autoselect (100baseTX <full-duplex>) status: active

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

Link to comment
Share on other sites

Ok - anyone who's been getting kernel panics, try this out. I haven't had any panics since I fixed the null check (except from my SATA driver :rolleyes: ), and while I'm not 100% sure that it's doing the right thing, at least it's not crashing. Feel free to use the release rather than debug kext, unless you particularly enjoy lots of syslog messages.

 

Note that this is a super-safe version; in the process of tracking down the bug, I put in some additional thread safety and reverted some buffer sizes to their defaults. I suspect neither change is necessary and that you can get some additional performance by taking them out, but I haven't had time to check it out yet. Like I said - not crashing is better than nothing :D So here's hoping it's _actually_ not panicking any more...

 

forcedeth.zip

 

You are one in amazillion!! Running 10.4.10 Tubgirl and this kext rocks! My system is an Asus A8N-E, Operteron Dual Core 180, Thank you many many much!

Link to comment
Share on other sites

Hi,

 

i have a problem with downloading the forcedeth.zip file. I allways get an error message.

My sytem:

 

ASRock ALiveNF7G with nforce630a

AMD X2 +4400

Onboard Sound Realtek ALC888 (or so)

Realtek 10/100/1000 Gigabit-LAN (onboard)

Geforce 7600GT

2GB RAM

 

All is working. Only my Network/Internet isn´t working. Which driver could be working on my pc?

 

thanks a lot.

Link to comment
Share on other sites

Hi,

 

I tried a lot of the focedeth versions posted in this thread but still have the reversed MAC problem. Is there any fix for this? Even MeDevil's version didn't work for me although I also have a nForce 430 0x03EF10DE chip...

 

Im using Zepyroth's Leopard 10.5.2.

 

Thanks in advance for any idea to solve this.

Link to comment
Share on other sites

 Share

×
×
  • Create New...