Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Hey all, I'm having some troubles with the SmallTree drivers. I bought two Dell branded x520 cards, and successfully changed the subsystem ID in both. I have one installed in a Sonnet Echo Express SE1 for my cylinder Mac Pro (running Mojave), and in a 16x PCI slot on my old 2008 Mac Pro (running Snow Leopard). I installed the appropriate SmallTree driver in each.

Unfortunately, neither machine sees the cards in MacOS. While a generic "ethernet" device is showing up under PCI Cards in System Profiler (with Subsystem ID of 0x000a!), both are showing a "No" under the Driver Installed column. The kext is loaded on the newer Mac Pro, but not the old one.

Any ideas what might be causing this?

UPDATE: It turns out I had bought Dell-rebranded x520's, which use a different ROM and require their Device ID to be modified as well. Thanks to a friend, I was able to figure this out. It's now working in my cylinder Mac Pro, but I still can't get the drivers to load in Snow Leopard. About to give up on that one...
 
Last edited:
Hey all, I'm having some troubles with the SmallTree drivers. I bought two Dell branded x520 cards, and successfully changed the subsystem ID in both. I have one installed in a Sonnet Echo Express SE1 for my cylinder Mac Pro (running Mojave), and in a 16x PCI slot on my old 2008 Mac Pro (running Snow Leopard). I installed the appropriate SmallTree driver in each.

Unfortunately, neither machine sees the cards in MacOS. While a generic "ethernet" device is showing up under PCI Cards in System Profiler (with Subsystem ID of 0x000a!), both are showing a "No" under the Driver Installed column. The kext is loaded on the newer Mac Pro, but not the old one.

Any ideas what might be causing this?

UPDATE: It turns out I had bought Dell-rebranded x520's, which use a different ROM and require their Device ID to be modified as well. Thanks to a friend, I was able to figure this out. It's now working in my cylinder Mac Pro, but I still can't get the drivers to load in Snow Leopard. About to give up on that one...
Snow Leopard?! Ha! That’s a security nightmare. I hope you don’t have that connected to the network anyway, let alone 10GbE.
 
Hi there,

Like user jesvakis, I was also having issues with the SmallTree drivers, but I'm using a i350-T4 (also I believe a Dell Intel NIC). I made the backup of each of the four ports, then successfully used ethtool to change the values. However when I installed them in my thunderbolt dock, under PCI devices I found it wasn't using the SmallTree driver.

I tried re installing the SmallTree Drivers for Mojave (1.2.5) but I ended up getting the same result. When I Hardware > PCI, the ethernet ports were all listed there, and each one had the right Vendor ID, Subsystem Vendor ID, and Subsystem ID, as well as the correct Device ID for the driver. Yet it still wasn't invoking the driver.

The only thing to note is that when I did the ethtool change and checked it out with "lspci -nn -vvv | grep Ethernet" it was no longer showing the line about "Subsystem ID" and I did see one before I made the changes. I've included a screenshot of this below as well as the PCI readout from System Information. I did confirm however that after medication the card still works in Linux.

At least I have a backup so I can restore the card to the stock and try again. But any advice would be appreciated!

Screen Shot 2018-12-22 at 3.02.09 PM.png
Screen Shot 2018-12-22 at 1.01.53 PM.png

EDIT: After looking at it some more, I think I must have made some mistake in the flashing process. Looking though the console I noticed the image below which shows that even though the modification appeared successful in Linux (and then in system profiler) it's not being accepted by the driver.

Squuiid, could you tell me how to restore my backup bin I made earlier? I can try just restoring it from scratch and giving it another go, or at least that's my preferred method.

Screen Shot 2018-12-25 at 8.03.22 PM.png
 
Last edited:
I have purchased 2 NICs X540 T2 one I've installed in a windows 2012 R2 server with no modification and the other one in a Mojave OS in a PC modified with small tree drive, The Mojave writing speed on server is perfect it hits more than 900MB/s in BM Speed Test but reading is horrible it is worst than 1 Gbe speed oscillate between 20 to 60 MB/s , Can someone help me please?
 
I'm thinking of getting an X520-DA1 and doing this for my Hackintosh, as my Mellanox ConnectX-3 only works under Windows/Linux. As I still dual-boot with Windows, can anyone confirm if the card still works properly under Windows after the flash?
 
I'm thinking of getting an X520-DA1 and doing this for my Hackintosh, as my Mellanox ConnectX-3 only works under Windows/Linux. As I still dual-boot with Windows, can anyone confirm if the card still works properly under Windows after the flash?
The flashed card will work perfectly in Windows. Confirmed.
 
I‘m using six T-540 cards with Mojave and High Sierra. They work in cMP and also via Thunderbolt (3) in a Sonnet Echo enclosure.

May I know if you need any mode to the Intel T540 card to make it work in Mojave and High Sierra?
 
I was able to change the vendor and device ID of an HP branded X520 dual SFP+ card and it works great in Mojave, however I'm experiencing a weird issue related to the smalltree drivers. I tried both 3.3.15 and 3.4.1 and they both present the same issue. If I'm first booting up or after a restart, I get no video {unfortunately I have an RX580 so I can't see the EFI of what's happening. I might have to see if I can find the old 5770 that was in it to see if there's an error happening)

However, if I turn it on, it gets stuck at a black screen, if I wait 10min for it to sleep, and then resume from that sleep it works perfectly. I get full speed, it's detected properly, etc. This also happens whether or not the card is physically installed. It happens after installing the smalltree drivers and only does this when the kext is present. If I remove the driver it boots fine, even if I leave the card physically installed.

This is on a cMP 4,1 flashed to 5,1 running the latest version of Mojave. I also have all PCIe slots populated (USB3, NVMe, RX580 and the 10gbe card.
 
I was able to change the vendor and device ID of an HP branded X520 dual SFP+ card and it works great in Mojave, however I'm experiencing a weird issue related to the smalltree drivers. I tried both 3.3.15 and 3.4.1 and they both present the same issue. If I'm first booting up or after a restart, I get no video {unfortunately I have an RX580 so I can't see the EFI of what's happening. I might have to see if I can find the old 5770 that was in it to see if there's an error happening)

However, if I turn it on, it gets stuck at a black screen, if I wait 10min for it to sleep, and then resume from that sleep it works perfectly. I get full speed, it's detected properly, etc. This also happens whether or not the card is physically installed. It happens after installing the smalltree drivers and only does this when the kext is present. If I remove the driver it boots fine, even if I leave the card physically installed.

This is on a cMP 4,1 flashed to 5,1 running the latest version of Mojave. I also have all PCIe slots populated (USB3, NVMe, RX580 and the 10gbe card.
You’re not done yet. See here...
https://forums.macrumors.com/thread...all-tree-macos-drivers.1968456/#post-22839400
 
  • Like
Reactions: randallphoto
does anyone have to patch the driver to get it to work or you only need to change the device ID in the firmware? Thank you
 
does anyone have to patch the driver to get it to work or you only need to change the device ID in the firmware? Thank you
No driver patching required. That’s the sole reason for editing the device ID.
 
Thanks to this guide, I made 2 intel 10Gbe worked.

As I modify my IBM X3550 M4, first port of on board i350 4 port, failed, oh no.......

Port 1 disappeared!!!
I searched lots of websites, no use, until I find this on IBM LENOVO SITE.
https://support.lenovo.com/at/de/solutions/ht114184

After lots of tried, I did it, port 1 is back.
Commands
1) eeupdate64e.efi
Find your netcard number
My i350 is 3
2)
eeupdate64e.efi -nic=NIC# -d IBM_FOD_i350_2-4port_Copper_NCSI_1-64a_80861521_LEDupdate.eep

NIC# means 3.
Attention not NIC3, stupid like me, fail several times, finally I understand it just only the number,
eeprom, use my backup, change .bin to .eep
mine
eeupdate64e.efi -nic=3 -d ibm_i350.eep

Done ✅


3) eeupdate64e.efi -nic=NIC# -eepromver

Check again.

One last thing
-d, must use it to skip MAC address, it’s very important, or you will jump into more trouble.

NathanYung

Now I need help to find out exactly to modify my onboard i350.
 
A1F6DC5A-7192-4EB1-8723-0C51D1F3C0E6.jpeg
Renew:

How to restore eeprom, I wrote above, but one important thing, binary file from ethtool command is smaller than real, cause some problems.

Here is my recommendation :
Boot to UEFI as I wrote, then follow these steps.

1)Eeupdate64e.efi -nic=X /DUMP
X is your card number.

Dump file will be MAC.EEP
MAC=mac address.

Backup this file.
Rollback is simple.

Just use UEFI.

Remember when rollback, -d must add to prevent write other MAC.

I350 4 port, just modify one port, make sure everything is fine, then do again with the other three ports.
 
  • Like
Reactions: Squuiid
The flashed card will work perfectly in Windows. Confirmed.

Intel X520-DA1 10GbE Network Adapter + Intel FTLX8571D3BCV SFP+
- 4x PCIe in a 16x slot ( running at x4 )

Code:
root@ubuntu:/home/ubuntu# dmesg | grep ixgbe

[    5.194501] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver - version 5.1.0-k
[    5.194501] ixgbe: Copyright (c) 1999-2016 Intel Corporation.
[    5.375856] ixgbe 0000:03:00.0: Multiqueue Enabled: Rx Queue count = 8, Tx Queue count = 8 XDP Queue count = 0
[    5.376126] ixgbe 0000:03:00.0: 16.000 Gb/s available PCIe bandwidth, limited by 5 GT/s x4 link at 0000:00:1b.4 (capable of 32.000 Gb/s with 5 GT/s x8 link)
[    5.376429] ixgbe 0000:03:00.0: MAC: 2, PHY: 20, SFP+: 5, PBA No: G30771-004
[    5.376430] ixgbe 0000:03:00.0: 9c:69:b4:60:70:a5
[    5.377314] ixgbe 0000:03:00.0: Intel(R) 10 Gigabit Network Connection
[    5.377365] libphy: ixgbe-mdio: probed
[    5.377871] ixgbe 0000:03:00.0 enp3s0: renamed from eth0
[   16.734493] ixgbe 0000:03:00.0: registered PHC device on enp3s0
[   16.916835] ixgbe 0000:03:00.0 enp3s0: detected SFP+: 5

Original EEPROM
Code:
0x0320:         03 00 1f 00 03 00 00 50 03 53 06 00 86 80 a6 10

Update commands
Code:
ethtool -E enp3s0 magic 0x10fb8086 offset 0x32a value 0x0a
ethtool -E enp3s0 magic 0x10fb8086 offset 0x32b value 0x00

Results in High Sierra after installing SmallTree drivers

Screen Shot 2019-09-07 at 08.51.26.png

Screen Shot 2019-09-07 at 08.51.44.png


Seems to be detected with the SFP+ module.
Will update once i get some fiber and am able to connect it to my switch.
 
  • Like
Reactions: Squuiid
...
Will update once i get some fiber and am able to connect it to my switch.

Finally got the last of the hardware i needed and I can confirm the card works.

My setup:
- Hackintosh ( High Sierra ) - Intel X520-DA1 10GbE Network Adapter ( Modded EEPROM ) + Intel FTLX8571D3BCV SFP+
- Debian 9 Machine - HP NC560SFP ETHERNET 10GB 2-PORT 560SFP+ Full Hight + FIBERSTORE SFP-10GSR-85
- Both hooked up to a CSS326-24G-2S+RM using LC-LC OM3 850nm multi-mode fiber.

Configured with Jumbo frames ( 9000 ) on Mac / MTU 9000 on Debian.
Reported speeds 9.73 Gbits/sec.

FIY, if you're using an old CPU on the other end make sure to use jumbo / 9000 mtu, maybe disable smb signing as suggested by apple, otherwise you can expect lower speeds ( ie. 5 Gbits/s on an i3 4600 ).

Only drawback of doing this is that you're going to need a switch that does 9000 to 1500 conversion if you're using any static routes and want to reach them from this subnet.


Screen Shot 2019-09-13 at 18.41.59.png


Screen Shot 2019-09-13 at 19.00.23.png


Screen Shot 2019-09-13 at 18.42.05.png


Squuiid, thank you so much for your work on this!
 
  • Like
Reactions: Squuiid
I know this is an older thread, but...
I followed the instructions and it appeared to work correctly but I can't add the card as a network in the Network CP. Here is my lfconfig output:

Any ideas or help would be greatly appreciated!
 

Attachments

  • Screen Shot 2019-09-26 at 7.10.06 PM.png
    Screen Shot 2019-09-26 at 7.10.06 PM.png
    458.6 KB · Views: 268
Has anyone used a Small-Tree card on macOS Catalina? I just upgraded my Mac Pro 2013 and the 3.5.0 installer package from the Small-Tree site indicates it's Catalina compatible but I get an error on installation. The .pkg file is from February 2019.

 
Update. I found an older installer I had saved from 2017 that is working in Catalina. The filename is SmallTreeIntel8259x-3.3.15.dmg.zip. Hopefully Small-Tree will update the latest driver to install properly in Catalina.
 
hi guys, need some help here.
I wanted to get 10gbe from my xserve to the macpro, and wanted a out of the box solution, so i went with two sonnet solo 10gbe card.
instal went smooth on the macpro running HS , but I totally forgot that the xserve is under el capitan who dont support aquantia chipset.
as it is a machine for work i wanted to keep everything straight so i changed the exchanged one of the solo 10gbe for a presto 10gbe twin based on intel x550 because it was supposed to work from 10.8.x up to mojave.
instaled the card fine, with sonnet drivers, the card is detected but system profiler say driver not instaled.
and it just dont work.
So what are the option to have a reliable 10gbe rj45 on a xserve under el capitan.
does anyone have modifed x550 to use small tree driver with success?
the card is brand new and i can return it, so i don’t really want to brick it.

I could go with dosdude high sierra patch to run HS on the xserve, but again, this is a work horse machine with 96 Tb of achive on it so i am reluctant to mess with it.
 
First, i want to say thanks to author of original post for idea!

I recently bought X520-DA2, but it has device-id differ then retail board:

Code:
[root@dev-5 ~]# lspci -v -n -s 03:00.0
03:00.0 0200: 8086:154d (rev 01)
        Subsystem: 8086:7b11

Intel site ( https://www.intel.com/content/www/u...0005612/network-and-io/ethernet-products.html ) mention 8086:10FB for retail board.

Problem that Smalltree driver does not work with that device-id. Even adding 0x154d8086 to Info.plist does not help.

One guy ( https://www.insanelymac.com/forum/topic/305880-guide-native-intel-ct-nic-82574l-uefi-fastboot/ ) has successful experience in changing device-id of board.

So i decide to change a device-id in additional to subsystem-id. Lets find where current value of device-id stored:

Code:
[root@dev-5 ~]# ethtool -e enp3s0f0 | grep "4d 15"
0x0340:         66 dc e2 6a 03 00 05 00 3f 06 4d 15 00 00 04 14
                                              ^^^^^
                 ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
                 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

0x0350:         00 00 05 00 3f 16 4d 15 00 00 04 14 00 00 07 00
                                  ^^^^^
                 ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
                 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

And subsystem:

Code:
[root@dev-5 ~]# ethtool -e enp3s0f0 | grep "11 7b"
0x0320:         03 00 1f 00 00 00 00 2b 03 33 11 7b 86 80 a6 10
                                              ^^^^^
                 ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
                 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

We want:

Code:
    before:  8086:154d
    after:   8086:10FB

    before: Subsystem: 8086:7b11
    after:  Subsystem: 8086:000A

So we build a plan:

Code:
    0x032A: 0x11 => 0x0A
    0x032B: 0x7b => 0x00

    0x034A: 0x4d => 0xFB
    0x034B: 0x15 => 0x10

    0x0356: 0x4d => 0xFB
    0x0357: 0x15 => 0x10

Prepare a commands:

Code:
    ethtool -E enp3s0f0 magic 0x154d8086 offset 0x32a value 0x0a
    ethtool -E enp3s0f0 magic 0x154d8086 offset 0x32b value 0x00

    ethtool -E enp3s0f0 magic 0x154d8086 offset 0x34a value 0xFB
    ethtool -E enp3s0f0 magic 0x154d8086 offset 0x34b value 0x10

    ethtool -E enp3s0f0 magic 0x154d8086 offset 0x356 value 0xFB
    ethtool -E enp3s0f0 magic 0x154d8086 offset 0x357 value 0x10

And for second board:

Code:
    ethtool -E enp3s0f1 magic 0x154d8086 offset 0x32a value 0x0a
    ethtool -E enp3s0f1 magic 0x154d8086 offset 0x32b value 0x00

    ethtool -E enp3s0f1 magic 0x154d8086 offset 0x34a value 0xFB
    ethtool -E enp3s0f1 magic 0x154d8086 offset 0x34b value 0x10

    ethtool -E enp3s0f1 magic 0x154d8086 offset 0x356 value 0xFB
    ethtool -E enp3s0f1 magic 0x154d8086 offset 0x357 value 0x10

Execute these commands and reboot system. What we got:

Code:
[root@dev-5 ~]# lspci -n -v -s 03:00.0
03:00.0 0200: 8086:10fb (rev 01)
        Subsystem: 8086:000a

Seems it looks like a native SmallTree 10G board.

Lets move this board to Mac (i use Mac4,1 flashed to 5,1 with Mojave). Install driver and reboot:

Code:
nle7:~ root# ioreg -l
[...]
    | |   |       |   | +-o SmallTreeIntel8259x  <class SmallTreeIntel8259x, id 0x10000047c, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |       |   |   | {
    | |   |       |   |   |   "IOClass" = "SmallTreeIntel8259x"
    | |   |       |   |   |   "IOActiveMedium" = "00000020"
    | |   |       |   |   |   "IOResourceMatch" = "IOBSD"
    | |   |       |   |   |   "EN Number" = 3
    | |   |       |   |   |   "IOMinPacketSize" = 64

Seems looks fine, so we need to do a traffic tests. We would prefer iperf3 for that reason. We will connect Mac with Dell R620 under Linux, connect them directly with OM3 patchcord.

Code:
nle7:~ root# iperf3 -i 10 -t 60 -O 1 -c 192.168.0.10

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-60.00  sec  69.1 GBytes  9.89 Gbits/sec                  sender
[  5]   0.00-60.00  sec  69.1 GBytes  9.89 Gbits/sec receiver


nle7:~ root# iperf3 -i 10 -t 60 -O 1 -c 192.168.0.10 -R

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-60.00  sec  69.2 GBytes  9.90 Gbits/sec    0             sender
[  5]   0.00-60.00  sec  69.2 GBytes  9.90 Gbits/sec receiver

Nice result!
 
Last edited:
  • Like
Reactions: Squuiid
Another one 10Gbe NIC boards for MAC supplier is Sonnet

Their model Sonnet Presto 10GbE looks similar to X520-DA2 (see https://www.sonnetstore.com/products/presto-10gbe-sfp )

And their driver accept list of pci-id:

SonnetEthernet-10GE.kext/Contents/Info.plist
Code:
[...]
            <string>0x10c68086 0x10c78086 0x10c88086 0x10ec8086 0x10d88086 0x10fb8086 0x10f18086 0x151c8086 0x150b8086 0x15288086 0x10fc8086 0x15608086 0x15628086 0x15638086</string>
[...]

Exactly the same as driver from SmallTree

SmallTreeIntel8259x.kext/Contents/Info.plist
Code:
[...]
            <string>0x10c68086 0x10c78086 0x10c88086 0x10ec8086 0x10d88086 0x10fb8086 0x10f18086 0x151c8086 0x150b8086 0x15288086 0x10fc8086 0x15608086 0x15638086 0x154d8086</string>
[...]

even more, if you dump strings from driver's binary:

Code:
[root@dev-5 comp1]# strings SmallTreeIntel8259x | grep stockRxRing
stockRxRing
SmallTreeIntel8259x %s %s: page spans page boundary in stockRxRing
stockRxRing: Enter mcount = %d head = 0x%x tail = 0x%x new tail = 0x%x
stockRxRing: No mbuf available, slot %d
stockRxRing: datap = %p mbuf = %p mbuf_data(mbuf) = %p slot = 0x%x
stockRxRing: page spans page boundary
stockRxRing: mask: 0x%08x; tail: 0x%08x; rxRing.tail: 0x%08x
__ZN19SmallTreeIntel8259x11stockRxRingEj


[root@dev-5 comp1]# strings SonnetEthernet-10GE | grep stockRxRing
stockRxRing
SonnetEthernet_10GE %s %s: page spans page boundary in stockRxRing
stockRxRing: Enter mcount = %d head = 0x%x tail = 0x%x new tail = 0x%x
stockRxRing: No mbuf available, slot %d
stockRxRing: datap = %p mbuf = %p mbuf_data(mbuf) = %p slot = 0x%x
stockRxRing: page spans page boundary
stockRxRing: mask: 0x%08x; tail: 0x%08x; rxRing.tail: 0x%08x
__ZN19SonnetEthernet_10GE11stockRxRingEj

You will find that it is exactly the same driver developed by SmallTree with some rebrandings.

I suspect they use other one subsystem-id for branding their boards but technically it is the same driver. So, no need to write article on how to modify retail board for drivers support from Sonnet :)
 
  • Like
Reactions: Squuiid
Does Small Tree driver work in Catalina, although not officially supported yet?

On the Small-Tree website it only quotes: "waiting for Apple bug fixes"
 
so I finally made my sonnet presto work.
I had to install previous version of the driver... not the latest...
getting 500mb/s transfer, with smb off and jumbo 9000 on ... I have to test with very high quality cable because so far i have tested with a 50m cat 6 cable.
just wanted to follow up on my previous post
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.