Contribute
Register

Intel Network adapters on OS X: Small Tree drivers

Hi
FakePCIID.kext works perfectly in conjuction with FakePCIID_Intel_GbX.kext to instantiate
com.SmallTree.driver.SmallTreeIntel8259x for my Intel X540-AT2 :
sudo chown -R root:wheel /path/to/FakePCIID.kext /path/to/FakePCIID_Intel_GbX.kext
sudo kextutil -vvv /path/to/FakePCIID.kext
sudo kextutil -vvv /path/to/FakePCIID_Intel_GbX.kext
sudo kextutil -vvv /path/to/SmallTreeIntel8259x.kext

The network interfaces appear (as seen in Network Preferences or Network Utility).

But… on reboot no interfaces appear, although I do have com.SmallTree.driver.SmallTreeIntel8259x loaded (as shown by kextcache) unless I unload and reload the Small Tree Drivers :
sudo kextunload /path/to/SmallTreeIntel8259x.kext
sudo kextutil -vvv /path/to/SmallTreeIntel8259x.kext

Am I missing something?
As a workaround, could I delay the loading of SmallTreeIntel8259x.kext? (yes, I could write an applescript to do it on login, but that wouldn't be elegant)

thanks!

Did you install all kexts correctly to the system volume (/L/E or /S/L/E)?
 
Did you install all kexts correctly to the system volume (/L/E or /S/L/E)?

Yes I did, in /S/L/E, and :
- booted without cache (using "NoCaches" -> true in Clover/SystemParameters)
- rebuilt the cache manually (sudo touch /System/Library/Extensions && sudo kextcache -u /)

I also tried to modify the Info.plist of the SmallTree drivers to add "org.rehabman.driver.FakePCIID" to bundleRequired, which guarantees that org.rehabman.driver.FakePCIID will be loaded before SmallTree (as confirmed by kextstat, both are loaded, FakePCIId first ; com.SmallTree.driver.SmallTreeIntel8259x show it has a dependency on FakePCIId –#48 below–)
48 1 0xffffff7f80f5a000 0x8000 0x8000 org.rehabman.driver.FakePCIID (1.3.6) 779C5712-0FBB-3496-9292-C82B78D566CB <12 7 5 4 3 1>
49 0 0xffffff7f80f62000 0x26000 0x26000 com.SmallTree.driver.SmallTreeIntel8259x (3.3.11) CFAD6F25-4554-3D01-A095-3F51F9610404 <48 40 12 5 4 3 1


And I can see FakePCIId is loaded in the log (sudo log show | grep -i fakepci), and in ioregistry that it's correctly hooked up to the device. But FakePCI is queried for configRead16 only after manually unloading and reloading SmallTree). This is confirmed by the log :
2017-01-21 09:37:47.858994+0100 localhost kernel[0]: (SmallTreeIntel8259x) SmallTreeIntel8259x probe b12d0f0: Unsupported Card 0x1528
2017-01-21 09:37:47.883647+0100 localhost kernel[0]: (FakePCIID) FakePCIID: FakePCIID::init() 0xffffff809feb6ea0

So in short, whatever I try with PCIID, FakePCIId kicks in too late, even though the FakePCIId kext is loaded before SmallTree kext, and even though I modded SmallTree kext to depend on FakePCIId.

I also tried to make the subsystem-id change also in Clover/Devices/Arbitrary, with success (I can see the change in IORegistryExplorer), but still no luck getting those drivers to load!

I even tried to add a dependency in SmallTree to one of the kexts loaded last, such as
com.apple.iokit.IOGraphicsFamily. But no luck.
 
Yes I did, in /S/L/E, and :
- booted without cache (using "NoCaches" -> true in Clover/SystemParameters)
- rebuilt the cache manually (sudo touch /System/Library/Extensions && sudo kextcache -u /)

I also tried to modify the Info.plist of the SmallTree drivers to add "org.rehabman.driver.FakePCIID" to bundleRequired, which guarantees that org.rehabman.driver.FakePCIID will be loaded before SmallTree (as confirmed by kextstat, both are loaded, FakePCIId first ; com.SmallTree.driver.SmallTreeIntel8259x show it has a dependency on FakePCIId –#48 below–)
48 1 0xffffff7f80f5a000 0x8000 0x8000 org.rehabman.driver.FakePCIID (1.3.6) 779C5712-0FBB-3496-9292-C82B78D566CB <12 7 5 4 3 1>
49 0 0xffffff7f80f62000 0x26000 0x26000 com.SmallTree.driver.SmallTreeIntel8259x (3.3.11) CFAD6F25-4554-3D01-A095-3F51F9610404 <48 40 12 5 4 3 1


And I can see FakePCIId is loaded in the log (sudo log show | grep -i fakepci), and in ioregistry that it's correctly hooked up to the device. But FakePCI is queried for configRead16 only after manually unloading and reloading SmallTree). This is confirmed by the log :
2017-01-21 09:37:47.858994+0100 localhost kernel[0]: (SmallTreeIntel8259x) SmallTreeIntel8259x probe b12d0f0: Unsupported Card 0x1528
2017-01-21 09:37:47.883647+0100 localhost kernel[0]: (FakePCIID) FakePCIID: FakePCIID::init() 0xffffff809feb6ea0

So in short, whatever I try with PCIID, FakePCIId kicks in too late, even though the FakePCIId kext is loaded before SmallTree kext, and even though I modded SmallTree kext to depend on FakePCIId.

I also tried to make the subsystem-id change also in Clover/Devices/Arbitrary, with success (I can see the change in IORegistryExplorer), but still no luck getting those drivers to load!

I even tried to add a dependency in SmallTree to one of the kexts loaded last, such as
com.apple.iokit.IOGraphicsFamily. But no luck.

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Provide output (in Terminal):
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.
 
Hello,
Did any of you with a i350-T2 succeeded in using the SmallTree drivers?
I managed to set the correct subsystem ID using ethtool, but the drivers don't recognize the card with the error:
kernel[0]: SmallTreeIntel82576 b4d0f0: Invalid EEPROM 0x000a 0x1521 0xffff 0xffff
kernel[0]: SmallTreeIntel82576 b4d0f1: Invalid EEPROM 0x000a 0x1521 0xffff 0xffff

My guess is that those extra 0xffff could refer to the OEM specific words available in the i350 eeprom (words 0x06, 0x07).
Thanks

Edit:
The kext evaluates two word values for each network port (located in some "reserved" areas of the eeprom).
If anyone needs them, please PM me. I did some reverse engineering of the kext code and came up with a program that calculates these values.

i also tried this way a while ago. i ended up putting the id's for the i210 in so the native apple driver would work (somehow - it switches between interrupt and polling mode on heavy traffic)
could you please share your findings?
 
numasan,

Your device ID 8086:1528 is already present in SmallTreeIntel8259x.kext.

Download the SmallTreeIntel8259x.zip attachment from the first post and install the kext using a program such as kext utility.

Let me know if that works, if not we can take additional steps.

Hi there,

I have 10.11 on an SuperMicro X8DTH-6F - running fine - besides the two internet ports. Both are Intel 82576 - AppleIGB does supports this chip, but the driver is buggy (does start/stop/start). So I tried the FakePCI and SmallTreeIntel82576.kext - until now I had no look. Here's what I did:


1. I put the three kexts (FakePCIID, FakePCI_IntelG and SmallTree82576) under /System/Library/extensions
2. Bootet into single user mode
3. Rebuild cache:
chmod -R 755 /Volumes/El Capitan/Library/Extensions
chown -R 0:0 /Volumes/El Capitan/Library/Extensions
touch /Volumes/El Capitan/System/Library/Extensions
kextcache -u /Volumes/El Capitan
4. rebootet.

But none of the kext is actually loaded. and of course no Ethernet is working.

Am I missing something?
 
I have a motherboard with an Intel i211 (8086 1539). After I got my first boot-time panic with AppleIntelIGB.kext, I tried SmallTreeIntel82576.kext from the OP here. After adding my device ID to the kext and to FakePCIID_Intel_Gbx, it works! Maybe this will be more reliable - we'll see.
 
I have Intel 8260 micro wifi into my ultrabook. I can try to test or compile. Would someone help me?
 
etimacias, thanks for the pointer. I've now got this working on my X520-DA2 card.

FOLKS, PROCEED WITH CAUTION. THIS WILL WRITE TO THE CARD EEPROM AND INCORRECT USAGE COULD RENDER YOUR CARD USELESS. THESE STEPS ARE SPECIFIC TO MY INTEL X520-DA2 CARD ONLY. HOWEVER, WITH SOME WORK THEY CAN PROBABLY BE ADAPTED TO WORK ON MOST INTEL NETWORK CARDS.


First step, boot off Ubuntu 16.04 LTS Desktop CD, run terminal and the following commands.
http://www.ubuntu.com/download/desktop

...

Reboot and done! :headbang:

Just wanted to say thanks for these instructions. I adapted them to a "INTEL EXPX9501AFXSR 10 Gigabit Ethernet XF SR Server Adapter" I got off eBay for just $10 (only has an SR fiber connection, not an SFP+ or RJ45) and it's now installed and working. I haven't done any stress testing yet, but at least I can pull a DHCP lease from my router on that interface.

For reference, this is what I was working with:

07:00.0 Ethernet controller [0200]: Intel Corporation 82598EB 10-Gigabit AF Network Connection [8086:10c7] (rev 01)
Subsystem: Intel Corporation 10-Gigabit XF SR Server Adapter [8086:a05f]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at f7140000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at f7100000 (32-bit, non-prefetchable) [size=256K]
Region 2: I/O ports at c000 [disabled]
Region 3: Memory at f7160000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: ixgbe
Kernel modules: ixgbe
[/size][/size][/size]
[size=128K][size=256K][size=16K]

My specific commands were:

sudo ethtool -E enp7s0 magic 0x10c78086 offset 0x716 value 0x0a
sudo ethtool -E enp7s0 magic 0x10c78086 offset 0x717 value 0x00


I don't know if eBay links are allowed, but if they are, the seller I bought from still has 10 available if anyone wants to try this themselves: http://www.ebay.com/itm/INTEL-EXPX9501AFXSR-10-Gigabit-Ethernet-XF-SR-Server-Adapter-/172691441048?
[/size][/size][/size]
 
Back
Top