Jump to content

AppleIntelE1000.kext


hnak
 Share

22 posts in this topic

Recommended Posts

I ported the Intel e1000 Linux driver (e1000.sourceforge.net) to Mac OS 10.6/10.7 (32/64).

The base version is 8.0.35.

This is PCI NIC driver for 8254x ( PCIe driver is AppleIntelE1000e.kext, which I posted in this forum )

 

Supported IDs are:

 

0x1000,0x1001,0x1004,0x1008,0x1009,0x100C,0x100D,0x100E,0x100F

0x1010,0x1011,0x1012,0x1013,0x1014,0x1015,0x1016,0x1017,0x1018,

0x1019,0x101A,0x101D,0x101E,

0x1026,0x1027,0x1028

0x1075,0x1076,0x1077,0x1078,0x1079,0x107A,0x107B,0x107C

0x108A

0x1099

0x10B5

 

 

My NIC has 0x107c.

 

Download the driver here

 

05/30/2012

Last release. Enabled VLAN. e1000 project will no more update the driver.

 

03/29/2010

initial release.

 

The license should be GPL, though I do not include the text.

 

Are there still users of those hardware ?

Link to comment
Share on other sites

  • 5 months later...
  • 1 year later...
  • 3 months later...

Hi hnak,

 

great work. Can't believe Apple dropped support for this card themselves. Anyhoo...

 

Are you still developing this driver for OSX even though you mention the Linux team isn't? If so, I believe there is an issue with jumbo frames:

 

My hardware:

Mobo: GA-X58A-UD3R

NIC: ethernet:

 

Type: Ethernet Controller

Bus: PCI

Vendor ID: 0x8086

Device ID: 0x10b9

Subsystem Vendor ID: 0x8086

Subsystem ID: 0x1083

Revision ID: 0x0006

Link Width: x1

BSD name: en0

Kext name: AppleIntelE1000e.kext

Location: /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleIntelE1000e.kext

Version: 2.0.0

 

When changing to 9000 byte frames, the first 30 or so 8000 byte pings (with DF set) work fine, then I lose a few, then I get one or two DUP! (duplicate) messages, and from then on I get about 1 ping in 1000 return.

When I drop back to 1500 byte frames (and reduce ping size accordingly) it all works again.

I also tried 4K frames and got the same issue as 9K.

 

Could it be a buffer problem?

 

Having said all this though, I just noticed my card is NOT in your list above. Perhaps that's the issue.

 

Thanks

Scott

Link to comment
Share on other sites

  • 2 months later...

Hello hnak,

 

I hope you're still reading this thread.

 

This year I've been giving puredarwin a try, an something that's laking is driver support as puredarwin cannot use apples' proprietary drivers.

Puredarwin is actually based on darwin 9, so leopard driver are compatibles.

 

Actually your AppleIntelE1000.kext is not working as it. If your ok to continue to support leopard I propose you a patch.

It's based on the svn revision 45.

It does 2 things :

- remove flashPCIAddress as it's not used in the driver ( I guess it's from E1000E).

- change allocation of IOBufferMemoryDescriptor from inTaskWithPhysicalMask to withOptions method for tx_ring and rx_ring.

 

I don't really understand why this doesn't work with inTaskWithPhysicalMask, normally your way is the recommended way but it fails on leopard.

 

The patch :

http://codetidy.com/paste/raw/3999

or here:AppleIntelE1000-45.p1.patch.zip

 

 

If you're not interested by theses changes just tell me.

Link to comment
Share on other sites

I have to use VM to run puredarwin, this version based on 10.5.8 source is 100% open-source and support only ATA disk which I don't have (USB work only with ACPI platform expert and SATA driver are not open-source).

 

http://smuckola.org/projects/puredarwin/Puredarwin-darwin_9.8-version_9L30.qcow2.xz

 

This is the first version of puredarwin with networking but there was only one (open source) network driver working : RTL8139 and it's qemu only.

I tried to hack your E1000 kext but I didn't know much about network drivers at this time...

As pcnet is supported by qemu and virtualbox I first ported the myxomycota OS pcnet driver as it's a very simple driver it was very fast to port. Then I searched an old version of pcnet for linux (before the switch to their new network api) and ported it (sort of).

Well at this time I come back to E1000 and make it works in puredarwin in like 5min which is good because it's supported by qemu, vbox and vmware.

 

I also find out there is a very old PCNet.kext from maxuss (!!!) but he never released the source.

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...

The link on mediafire is broken.

It seems mediafire removed the files. They sometimes automatically remove files because of "regulation violation".

It seems violating their regulation to upload files which are written and built by the user.

I rewrote the top post to refer the sourceforge.net.

Link to comment
Share on other sites

  • 11 months later...
  • 1 month later...

Me too :( .

I have 04:00.0 Ethernet controller [0200]: Intel Corporation 82541PI Gigabit Ethernet Controller [8086:107c] (rev 05)

 

running fine under Mavericks 10.9.2. But upon wake from sleep, the system powers up, but the screen stays black (does not get sync).

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 months later...

I am trying to use this kext on Yosemite, the kext loads but the device is listed as "unknown" in the PCI section of System Information. It is also listed in the Network Preferences, but doesn't detect that the cable is connected. Has anyone had any luck with this kext on Yosemite?

 

 Intel Corporation 82541PI Gigabit Ethernet Controller [8086:107c] (rev 05)

Link to comment
Share on other sites

  • 1 year later...

Kext: AppleIntelE1000.kext

 

Result: Seem do nothing.

Kext: AppleIntelE1000e.kext
Result: Network detect with dynamical ip automatic. Tried delete the plist files and settings but no difference. Lights came on red and green then crash at connect.

HP 6930p
osx86 10.5.4

Link to comment
Share on other sites

 Share

×
×
  • Create New...