Jump to content

Driver for nForce4 LAN


planetbeing
 Share

765 posts in this topic

Recommended Posts

dmesg will show the kernel message buffer. When the message appears has nothing to do with whether dmesg will show it or not.

 

More specific instructions:

 

1. Use kextunload to unload any old version of forcedeth that was loaded on startup.

2. Use kextload to load the new version of forcedeth

3. Check dmesg.

Link to comment
Share on other sites

Don't think this was taken right after the kextload happened. For example, here's what I get.

 

davids-acpi:forcedeth david$ ./loadkextnockd

Password:

kextload: extension /tmp/forcedeth-nockd.kext appears to be loadable

kextload: loading extension /tmp/forcedeth-nockd.kext

kextload: /tmp/forcedeth-nockd.kext loaded successfully

kextload: sending personalities to kernel:

kextload: from extension /System/Library/Extensions/IONetworkingFamily.kext:

kextload: IONetworkStack

kextload: Kernel Debugging Driver

kextload: from extension /System/Library/Extensions/IOPCIFamily.kext:

kextload: IOPCI2PCIBridge-Name

kextload: IOPCI2PCIBridge-i386

kextload: IOPCI2PCIBridge-PCI

kextload: from extension /tmp/forcedeth-nockd.kext:

kextload: nForce 4 LAN

kextload: sending 6 personalities to the kernel

kextload: matching started for /tmp/forcedeth-nockd.kext

davids-acpi:forcedeth david$ sudo dmesg

 

<snip>

 

forcedeth: Version 0.2

forcedeth: Initializing.

forcedeth: Probing.

forcedeth: Starting.

forcedeth: PCI system 0x10DE:0x0057, subsystem 0x1043:0x8141 opened.

forcedeth: Mapped from 0xD2100000 of length 4096.

forcedeth: Allocated 3072 bytes of contiguous memory for DMA: rx at 0x2df32000, tx at 0x2df32400, wired at 0x2d040000.

forcedeth: Found nForce4 LAN with MAC: 00:15:F2:50:EF:C6.

forcedeth: Found PHY 0x5040:0x0003 at address 9.

com_triton_forcedeth: Ethernet address 00:15:f2:50:ef:c6

 

It's also possible that for some reason, control was never passed to the driver at all. Perhaps another driver for the device was already loaded or something.

Link to comment
Share on other sites

No previous version of forcedeth was loaded? You do have a en0 device present. If no ethernet driver was present, that ought not exist.

I dont see any versions of forcedeth in kextstat.. and I dont see an en0 in ifconfig, although i do see an en0 in System Profiler.. X__x

 

Ok... when I add my device ID to forcedeth-nockd, it panics.. :-/

 

EDIT: I was just looking through console and saw that right before OS X panic ed, it actually started to load forcedeth-nocked properly

 

USER=root; COMMAND=/sbin/kextload -v /tmp/forcedeth-nockd.kext
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Version 0.2
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Initializing.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Probing.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: WARNING - your nVidia device 0x10DE:0x0269 is not known to work, but it could be supported in the future. Please contact the coder. Continuing anyway...
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Starting.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: PCI system 0x10DE:0x0269, subsystem 0x1019:0x1B57 opened.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Mapped from 0xFE02B000 of length 4096.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Allocated 3072 bytes of contiguous memory for DMA: rx at 0x24696000, tx at 0x24696400, wired at 0x215e2000.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Found nForce4 LAN with MAC: 00:16:EC:DF:DD:AB.
Dec 20 21:21:42 macpro kernel[0]: forcedeth: Found PHY 0x50c0:0x002f at address 1.

Link to comment
Share on other sites

Fun. -.-

 

Hmm. Try this version. You'll still need to add in your device id.

Well, I added my devID and it seems to have gotten me online. I've got a green light now for my ethernet in System Preferences and I'm able to load my homepage and the weather widget. I'm gonna go give it a stress-test here..

 

EDIT: Tried going from Digg.com over to Apple.com/downloads. Got a kernel panic about half way through loading the downloads page... hmm..

 

EDITx2: Seems to be working now. I was able to download about 75MB worth of software updates without problems... I'll keep an eye on it though..

Link to comment
Share on other sites

I feel like an optometrist. Is this better or worse?

I installed it... so far so good... I'll post updates as things progress.

 

It says "NIC ring full, stalling" in console. I haven't noticed any performance change though. Dunno if this is a bad thing or not..

 

I think we might've hit the hot spot. I've been able to stream a Stevenote without any problems so far. :)

Link to comment
Share on other sites

I installed it... so far so good... I'll post updates as things progress.

 

It says "NIC ring full, stalling" in console. I haven't noticed any performance change though. Dunno if this is a bad thing or not..

 

I think we might've hit the hot spot. I've been able to stream a Stevenote without any problems so far. :)

 

Yeah, the last version, I put the disable interrupt voodoo back into doNicPoll(). It's unclear why this is needed, as interrupts ought to be serialized with that function anyway.

 

So the current list of changes are:

 

- Changed IOBasicOutputQueue to IOGatedOutputQueue to serialize tx with everything else

- Changed the way the IOWorkLoop is obtained: We now create our own explicitly, and this is now set as the work loop IONetworkController commands use. (previously, they may have been on separate work loops!)

 

The real question is whether this works better than the really old version... does it?

 

P.S.: The NIC ring full, stalling thing should be all right. Basically, the amount of packets that are being queued for sending is swamping the buffer of the NIC, so it's telling the OS not to bother it with more requests until there's more room in the buffer.

Link to comment
Share on other sites

Definately less, but they still occur.

 

Hmm. I believe it's no longer possible to have a race condition in the code, but I could be wrong. I will write a debug version that will make it possible to check for any race conditions. If there are none, then it's probably some other unidentified device driver bug, which would be difficult to fix.

Link to comment
Share on other sites

I'm kinda late to the game, but I've got nothing here...

 

Downloaded the driver from the first post, copied via usb stick, extracted, chown, chmod, kextload.

 

I get back that the driver is loaded, but no messages in system.log, only the sudo commands...

 

From Device Manager in Windows Vista -

NVIDIA nForce Networking Controller

PCI\VEN_10DE&DEV_03EF&SUBSYS_2A5B103C&REV_A2

 

Any on have any ideas?

 

Thanks

Cash

Link to comment
Share on other sites

I'm kinda late to the game, but I've got nothing here...

 

Downloaded the driver from the first post, copied via usb stick, extracted, chown, chmod, kextload.

 

I get back that the driver is loaded, but no messages in system.log, only the sudo commands...

 

From Device Manager in Windows Vista -

NVIDIA nForce Networking Controller

PCI\VEN_10DE&DEV_03EF&SUBSYS_2A5B103C&REV_A2

 

Any on have any ideas?

 

Thanks

Cash

 

It's not directly supported, but you can add the device id to the proper plist. Instructions ought to already be posted somewhere in this thread.

Link to comment
Share on other sites

Hi there! I did not know English well (greetings from Russia!), thats why it is difficult to read all topic. And i try to explain my problem.

I download the attached file and follow the steps in instruction.

But only what i can see in terminal, was:

nForce 4 LAN

sending 1 personality to the kernel

Pages on local server dose not loaded. And in a Network panel no Ethernet shows up. If i run diagnostics - near the Ethernet i see red button.

My motherboard is Asus A8N-VM. Information from Device Manager about my networking controller:

{1A3E09BE-1E45-494B-9174-D7385B45BBF5}\NVNET_DEV0269\4&26A698C5&0&01

{1a3e09be-1e45-494b-9174-d7385b45bbf5}\NVNET_DEV0269

Link to comment
Share on other sites

Hello there.

 

planetbeing: I really appreciate your work. Since you included the source-code I was able to recompile the drivers for Leopard. Actually your first one (from the beginning of the thread) kinda worked.

I have a MCP61 chipset (forcedeth 03EF) and it was detected properly by "forcedeth-nock.kext". I was also able to surf the net for a while but whenever pages exceed a size of about 1.5MB my system freezes (without special messages in dmesg by the debug build :P ).

I would like to try your newer versions, but I always get:

 

sh-3.2# kextload -t forcedeth-nock.kext
can't add kernel extension forcedeth-nock.kext (not a bundle) (run kextload on this kext with -t for diagnostic output)

 

when I try to load the driver. I've also tried recompiling, but this time it doesn't do the trick. On my card "forcedeth-nock.kext" has to be loaded first, otherwise it won't work.

 

Any ideas why I can't load this extension? The other ones load just fine, but don't really do anything without nock.kext...

 

Regards,

mcsmart

dmesg.rtf

Link to comment
Share on other sites

well, I tested the driver and look what I found:

 

I use a eth hub to share my adsl connection here but my hub is too old. an 10/10 hub. And when the Ethernet cable is on it, leopard keep says "unplugged.." but, when I put it directly into the adsl modem - eth port -(I believe it´s 10/100) tan tannnn lights turns green on network control panel, and message turns to connected!) now, I wish to know, if there is a chance to make the driver to work under the 10/10 port...! otherwise I´ll have to buy a new hub/switch...

Link to comment
Share on other sites

 Share

×
×
  • Create New...