Jump to content

AppleIGB.kext

intel ethernet

  • Please log in to reply
64 replies to this topic

#1
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male

I have just ported Intel igb ethernet driver ( for server adapters), which works with 82575, 82576, 82580, dh89xxcc, i350 and i210, though I have tested with 82580 quad port adapter only - tell me the result if you have different ones.
It supports basic functions only ( for example, no WOL), probably the performance is lower than the Linux version as it does not utilize available sophisticated hardware features.

The latest binary is available at: sourceforge.

 

2014/5/18

.code base updated to 5.2.5.

.Lessen the number of used mbufs.

 

2013/9/25

. code base updated to 5.0.6.

. UDP csum disabled for 10.8.5.

 

2013/8/20

. code base updated to 5.0.5.

 

2013/8/19

. fixed load/unload, jumbo frame

2013/8/16

. fixed VLAN.

2013/8/15

. incorporated 4.3.0.

 

2013/1/26
. incorporated 4.1.2.

2012/11/24
. incorporated 4.0.17.

2012/09/17
. enabled hardware checksum again
2012/09/08
. incorporated 3.4.8.
. VLAN support.
. 10.8 support.
. 10.5 binary is no longer included.

2012/04/21
. baseline to 3.4.7
. input performance improves when packet size < 2048.
3.4.7

2011/12/17.
. updated baseline to 3.3.6
. enabled hardware tx checksum
. added 10.5 driver.



#2
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male
Code base update.

#3
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male
Incorporated Linux driver 3.4.7.

#4
justroach

justroach

    InsanelyMac Protégé

  • Members
  • PipPip
  • 59 posts
SWEEEEEET!!! Thanks! This works great on my S5520SC with the 82575EB (0x10a7) NIC. I greatly appreciate your work.

#5
pointman05

pointman05

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
Hello all and great work thus far.

I have attempted to install the AppleIGB kext version 3.4.7 on a supermicro Mobo X8DTT-F with the 82576 Intel chipset. The driver works, in that it, I see the interfaces. They will not aquire a DHCP address. I am able to set a static address which will allow me to ping the localhost and static IP. So I imagine the TCP stack is intialized correctly. However I cannot ping any other device on the network including the gateway. So it seems there must be an issue communicating to the hardware.

Please let me know what else I can do to help debug this issue or if anyone has seen this and knows of the fix.

#6
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male

The driver works, in that it, I see the interfaces. They will not aquire a DHCP address. I am able to set a static address which will allow me to ping the localhost and static IP. So I imagine the TCP stack is intialized correctly. However I cannot ping any other device on the network including the gateway. So it seems there must be an issue communicating to the hardware.

Similar things also happened on AppleE1000e, though I cannot reproduce in my environment. It is basically impossible to solve problems of hardware which is not in my hands.
If you are a programmer, you can get the source from soucrforge.net and tweak it.

#7
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male
Code base update, VLAN support and Mountain lion support

#8
surrealillusion

surrealillusion

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
Thanks for working on this hank, I finally have working ethernet on my X8DAH+F motherboard (both Intel gigabit quad port NIC's show up as well). One thing I am noticing is that after using network based applications for a while it stops responding. Are there any logs I should be looking at to identify what the issue is? Web browsing, SMB access, even something simple like a ping doesn't appear to work.

#9
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male

Thanks for working on this hank, I finally have working ethernet on my X8DAH+F motherboard (both Intel gigabit quad port NIC's show up as well). One thing I am noticing is that after using network based applications for a while it stops responding. Are there any logs I should be looking at to identify what the issue is? Web browsing, SMB access, even something simple like a ping doesn't appear to work.

Does Network Utility.app show anything related to errors, how many packets are transmitted / received before stall ? Is it easily reproducible ?

#10
surrealillusion

surrealillusion

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts

Does Network Utility.app show anything related to errors, how many packets are transmitted / received before stall ? Is it easily reproducible ?


No packet errors and it appears to happen at random times. Network connectivity appears to die after trying to use Screen sharing (tried it twice so far and each time I lose connectivity to the system). Interestingly enough if I swap to another port and get another IP things start working again.

#11
pointman05

pointman05

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
Not sure if this helps but what seems like a similar issue was fixed in a freebsd/freenas bug for the igb driver

set kern.ipc.nmbclusters=262144

http://support.freenas.org/ticket/1763

#12
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male

Not sure if this helps but what seems like a similar issue was fixed in a freebsd/freenas bug for the igb driver

set kern.ipc.nmbclusters=262144

http://support.freenas.org/ticket/1763

They increased the number of kernel packet buffers. I don't know if it is configurable in Mac OS X. Define it in /etc/sysctl.conf and see what happens.
In case of NetBSD 4.x, I needed to recompile the kernel to change the value.
You might be able to test it by disabling 1 - 3 ports of the quad NIC card.

#13
surrealillusion

surrealillusion

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts

They increased the number of kernel packet buffers. I don't know if it is configurable in Mac OS X. Define it in /etc/sysctl.conf and see what happens.
In case of NetBSD 4.x, I needed to recompile the kernel to change the value.
You might be able to test it by disabling 1 - 3 ports of the quad NIC card.


I yanked both quad port NIC's out and used the two onboard NIC's (which are also the same chipset) and made the addition to /etc/sysctl.conf. Remote connectivity worked for all of about 15 seconds then it froze again.

#14
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male

I yanked both quad port NIC's out and used the two onboard NIC's (which are also the same chipset) and made the addition to /etc/sysctl.conf. Remote connectivity worked for all of about 15 seconds then it froze again.

I am writing this on ARD connected screen via my Quad NIC ( 82580 x 4 ), driven by 3.4.8 driver. It does not stall after sending/receiving a million packets.

Or, does it stall when the traffic is heavy ?

#15
surrealillusion

surrealillusion

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts

I am writing this on ARD connected screen via my Quad NIC ( 82580 x 4 ), driven by 3.4.8 driver. It does not stall after sending/receiving a million packets.

Or, does it stall when the traffic is heavy ?


Not sure if remote screen sharing is considered heavy traffic but I would notice every time I would go to vnc to this new Hackintosh box it would connect then freeze (the connection drops). I go to open a terminal and ping and nothing responds. Move the cable to another port and have it pick up a new IP and it works again.

To try and rule out any other component potentially causing issues I luckily had some single port Intel gig PT cards lying around. I tried your e1000 driver and that seems to be a bit more stable so far (had some similiar connection drop issues until I deleted the inteligb.kext). It's been up and running since Friday afternoon and I can still VNC to it over VPN.

#16
Synth1980

Synth1980

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
Hi!
Does anyone solved a frozen connection issue? I using this driver with S5520SC motherboard with Intel 82575EB on 10.7.1 MacOSX retail. When I downloading a big files from LAN or from Internet my connection getting freeze. If I plug cable to second LAN port it does not work. Only reboot helps.
Thank you for your help!

#17
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male
I have updated the code base to 4.0.17 ( e1000.sourceforge.net Linux driver ).
i210 is supported.

#18
krysDE

krysDE

    InsanelyMac Protégé

  • Members
  • Pip
  • 1 posts
Hi Hnak,

I would like to report some errors and related information to it.

First of all my setup:

SuperMicro X9DAE Board with Intel® i350 Dual Port Gigabit Ethernet (Vendor 0x8086 Device 0x1521 Subsystem Vendor 0x15d9 Subsystem 0x1521 Version 0x0001)
OS 10.8.3 (12D44)
using AppleIGB.kext in version 4.0.17
en0 connected to a gigabit-port of a managed switch with full speed negotation

What I've seen / detected:

1) Editing files on remote storage servers

I have a 10.5 Server in my network. If I edit larger files (10 MB+) for e.g. in Pages networking is broken down in some cases. I copied the same files to my machine, edited them and copied them back and everything is doing well.

2) Copying larger (15 MB+) files on LAN

2.1) from Mac to LAN-Servers

2.1.1) via Parallels / Win 7 / VMWare Client for ESXi

I've a VMWare ESXi 5.0 Server in my network. I needed to install a new image to setup up a virtual machine. I started my VMWare Client (on Win 7 via Parallels 8.0.x) and connected to my ESXi. I was able to administer everything, I can do Console-Administration etc. But when I start to upload the image file, the networks gets stale. I've monitored that and I've a reproducable case.
Next time I first started a terminal with ping to my router, everything works well until I start this upload. In networking tool of apple I can see that no more packets will be sent.

2.1.2) via Panic's Transmit on SSH

Files up to 550 MB are will have no problem. I started with a larger file of 3.13 GB and I got stale network after 622 MB of 3.13 GB.
Later (after 2.1.3) I tested with a file of 4.5 GB and got stale after 2 GB.

2.1.3) via SSH on scp command line

The same file of 3.13 GB I was able to copy via scp command line to the server without any stale but after a fresh reboot.

2.2) from LAN-Servers to Mac

Copying large files from servers on LAN to Mac is no problem.

3) Copying larger files on WAN

I've a 150 mbit WAN downlink with 5 mbit uplink. Getting files from apples very fast servers with more than 15 MB/sec. is no problem.

4) Managing capabilities of en0

4.1) Manual throttling down config in hardware network panel

I started throttling down the interface by editing the configuration on hardware of system network panel. I put down the speed from auto negotated 1000mbit to 100mbit full duplex and saved the configuration.
When I go back to the panel, it remains an manual config but with 1000baseT.

4.2) Manual throttling down config at managed switch

4.2.1) 100 Mbit Full Duplex

That's why I started throttling down by switch. This is possible, networking service application shows 100MBit/s now.
Now I can the send errors on network interface and collisions when I try to upload the file from 2.1) but other networking like ping is still possible, such as writing more informations to my post.
When I stop the transfer, it stops counting up send errors and collisions.

4.2.2) 100 Mbit Half Duplex

Worst case. Collisions on nearly every network request. Network service application shows 100Mbit/s but many send errors and collisions. An upload of file from 2.1) will take networking offline. Pings are no more submitted, send and receive packet counters are stale.

4.2.3) 1000 Mbit Full Duplex with Flow Control (RX/TX)

Same as without Flow Control.

4.3) Setting of kern.ipc.nmbclusters
I started in terminal, doing su and sudo -s and tried to

sysctl -w kern.ipc.nmbclusters=262144

but it showed that the variable is read only. Then I found a hint. So I rebooted my system with edited kernel flags. (just add ncl=262144 to kernel flags)

After a reboot sysctl kern.ipc.nmbclusters showed the set value. But transfering the image from 2.1) to the Server will end in a stale network too.

5.) Stale network needs Reboot

But restarting OSX is only possible by hardware reset. I always need to reset my computer by reset button, because it gets stale on reboot.


dmesg does not show any problems on startup, meanwhile operating or on failure.

This looks like a problem with the send buffer to me. And it happens

- always if Parallels Desktop has a started VM
- sometimes if Transmit is used with SSH
- never when SSH is used directly
- always if you try to save files via AFP

#19
hnak

hnak

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 316 posts
  • Gender:Male
Thanks, il will investiate the code to check the transmit buffer status when I have time.

#20
kokowashed

kokowashed

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts
Hello all,

I recently built my first hackintosh and got everything working (even video ATI Radeon 7970) and ethernet with the kext provided in the first post above (thanks by the way), but I do have a similar problem as krysDE does.

My configuration is:
Motherboard: Asus Z9PE-D16
Network: Intel I-350 (onboard)
CPUs: 2 Intel Xeon E5-2620 @ 2Ghz
Memory: 32GB DDR3
Video: ATI Radeon 7970 HD 3GB
Main Hard Drive: 128 GB SSD (Samsung)

So basically, I can navigate the web, access the internal network for other Mac's, Windows PC's, Linux boxes (using SMB), etc, but I've had problems with VNC and/or Screen Sharing and at times, when the load is "heavy" (I was using iTunes home share with an iPad for music as I don't have a sound card yet) the network card fails, and going to System Preferences > Network > Hardware is not possible as it gets stuck, "sudo reboot" does not work, so I need to do a hard reset.

I tried different combinations and configurations, and nothing has worked, I can easily test the changes I make by going to SpeedTest.net and wait for the "Upload" stage, it does not go through with it, it freezes and the hard reset is required again, the "Download" test works fine.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy