Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
@Squuiid I think i need some help too. I have the four port SFP+ version of this card (Intel 710), and i am a little loss. I have attached what i have as my outputs of my card. It clearly sees the card and all four ports. The ethX is a little weird but it does work when i pull up the long offset table. Let me know if you can help!

I also have a 4 port card with XL710BM1 chipset from a windows machine. Did you get anywhere with flashing the EPROM?
 
sudo ethtool -E enp33s0f0 magic 0x10fb8086 offset 0x32a value 0x0a
sudo ethtool -E enp33s0f1 magic 0x10fb8086 offset 0x32a value 0x0a


You are amazing! THANK YOU! It worked great! If there is a way to buy you a beer or coffee, let me know. I really appreciate the help.

[doublepost=1517527146][/doublepost]
I also have a 4 port card with XL710BM1 chipset from a windows machine. Did you get anywhere with flashing the EPROM?

I wasn't able to find the offset line with the right information. I found it no problem on my two port card, but couldn't on the my 4 port card. My four port card did give me some errors in windows, so i am not sure if its related or not. For now, i just decided to use my two port card in my mac server, and will try again on the four port card at a later date.

Does anyone know if the cards will work in PCs after the flash? I forgot to test before i put it in my server and the server back in the rack.
 
  • Like
Reactions: Squuiid
You are amazing! THANK YOU! It worked great! If there is a way to buy you a beer or coffee, let me know. I really appreciate the help.

Does anyone know if the cards will work in PCs after the flash? I forgot to test before i put it in my server and the server back in the rack.
Ha! You’re welcome, happy to help out ;)
And yes, the cards will work just fine in a PC after the susbsytem ID change. You now have a Mac/PC compatible NIC.
 
Last edited:
I also have a 4 port card with XL710BM1 chipset from a windows machine. Did you get anywhere with flashing the EPROM?
Give it a go. There is no reason why this shouldn't also work.
 
Yes, you should indeed see both the onboard LAN and X540 being displayed. Where did you get your X540 from, are you sure it works? Try installing it in a Windows 10 box and see if recognised perhaps?


It worked now. It's all fine. :)
After modifying the card it was just super important to disable SMB signing as you mentioned to reach the full power.
 

Attachments

  • 10GBit ****ING WORKSs.jpg
    10GBit ****ING WORKSs.jpg
    766.9 KB · Views: 520
This is a really amazing guide, thanks so much @Squuiid . I have just flashed my 2 x X520-DA1 and it worked perfectly, taking mere minutes. I keep a Ubuntu USB stick handy for such occasions - I've had a few instances recently where Linux's combination of low-level tools and decent driver coverage has proved very useful for tinkering with hardware.

Knowing that I could use my 10G cards in macOS was vital to my deciding to spend the last few days fixing and upgrading my Hackintosh install. Since I last used it I have gone 10GB and am getting great performance in Windows 10, connecting via a Brocade TurboIron 24X switch to my Solaris home server/NAS which has an X520-DA2. I wanted to be back in OSX to be back in UNIX and have iTerm 2 and other great developer/command-line tools. But it would have been a tough choice if that meant I couldn't also have 10G. I'm glad I didn't have to make that choice :)

Great to see it also supports Jumbo Frames, and I see some limited performance tweaking via the stexeutil tool. Doesn't seem to support teaming/LACP, but that's fine for what I'm doing at home.

Now if only Apple would support SMB 3.1's MultiChannel.. :)

Thanks again for publicising this method and keeping the excellent guide up-to-date over time.
 
  • Like
Reactions: Squuiid
Thanks a LOT for this guide.
I got two Intel X520-DA1 cards, one for my FreeNAS and one for my hackintosh.
I followed the guide and everything seems to be working except that I'm not getting any traffic through.
On the mac the card has a MAC address of 00:00:00:00:00:00 and I suspect this is part of the problem.
I have changed the mac address in the terminal (sudo ifconfig en3 ether 90:e2:ba:25:3b:6d) but it doesn't help.
I can ping my own 10Gb address but not the server. The server can ping itself on the 10Gb address too.
Do I need to flash the card again with the mac address or do something else?

This is what I get from ifconfig:
en3: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>

ether 90:e2:ba:25:3b:6d

inet6 fe80::14a7:e627:b0b:4d12%en3 prefixlen 64 secured scopeid 0xc

inet 192.168.2.202 netmask 0xffffff00 broadcast 192.168.2.255

nd6 options=201<PERFORMNUD,DAD>

media: <unknown type>
 
It's definitely not right that you don't have a MAC. This is what my ifconfig look like:
Code:
en3: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 9018
   options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
   ether 90:e2:ba:1d:a2:72
   inet6 fe80::1065:dce8:e271:53a2%en3 prefixlen 64 secured scopeid 0xf
   inet 192.168.100.20 netmask 0xffffff00 broadcast 192.168.100.255
   nd6 options=201<PERFORMNUD,DAD>
   media: 10GbaseSR <full-duplex,flow-control>
   status: active

So it's not detecting your media either.

Have you tested the card works OK in another OS, post-flashing?

Are the drivers definitely loaded OK? Seems like they must be else you wouldn't get the interface at all. This is what About This Mac -> Hardware -> Ethernet cards -> en3 shows for me:

xR0A6IW.png


Then under Software -> Extensions -> SmallTreeIntel8259x, I see:

gpnYHmw.png


Under System Preferences -> Network -> Ethernet 2 -> Advanced -> Hardware, I have configured Manually as follows. You might want to try doing the same, especially setting the Speed to 10GbaseSR, just in case that makes any difference.

rvoeXq5.png


Beyond all that, I'm afraid I don't know. For me it seemed to just work immediately.

The main thing I'd do first is confirm the card definitely works in another OS, to verify it hasn't been damaged in flashing. You probably already have. If it is fine, then I suppose it must be a macOS software issue but I'm not experienced to know what to do, besides the manual settings above.

And trying to reinstall the drivers, I suppose. But the above tests in About This Mac should confirm if they're properly loaded, and if they are I don't know why they'd partly work but not give a MAC.

I suppose another thing to try is deleting the interface in System Preferences -> Network, rebooting, then re-adding it with the +.
 
@Robertr I suspect you might have made a mistake when changing the subsystem id and overwritten an area of the card that shouldn’t have been.
Please post a screenshot of your changes. You should be able to re-trace your steps and post the info so that we can help you restore the original values.
 
@Robertr I suspect you might have made a mistake when changing the subsystem id and overwritten an area of the card that shouldn’t have been.
Please post a screenshot of your changes. You should be able to re-trace your steps and post the info so that we can help you restore the original values.
The only command I gave after checking the offsets was this:
sudo ethtool -E ens5 magic 0x10fb8086 offset 0x32a value 0x0a
Should I try to change anything else in order to make it more like a Smalltree card?

In Ubuntu everything works with proper MAC address and 10Gb connection detected although the speed is only around 100MB/s when reading/writing to FreeNAS server.
In OSX I actually get a bit higher speeds over the 1Gb network.

The problems in OSX might have to do with a screwed up ACPI on my Hackintosh. The card looks like it's sitting in an HDMI port :confused: but the drivers are loading and the other PCI cards work fine even though their PCI Slots look weird too.
If the cable isn't connected when I boot or if I unplug/plug it the link will not become active.
I'll look into it some more.
 

Attachments

  • F50B24A2-E3D4-4BEA-95A6-186EDFB9882E.jpeg
    F50B24A2-E3D4-4BEA-95A6-186EDFB9882E.jpeg
    2.1 MB · Views: 470
When booting in verbose mode it looks like the cable isn’t connected even though it is.
 

Attachments

  • 4BE870F1-DC15-41BF-8414-96D42DD46F3E.jpeg
    4BE870F1-DC15-41BF-8414-96D42DD46F3E.jpeg
    1.8 MB · Views: 375
When booting in verbose mode it looks like the cable isn’t connected even though it is.
Oh, it’s a Hackintosh. Probably best to start a new thread about this then.
Try disabling all other NICs except the 10GbE card.
 
Squuid:

First of all, thanks for the guide! I hope you're still around, or there is someone who can assist me....

So, I modded an Intel 540-T1 card, but I'm not getting great speed. I've upload some screenshots of what I did, and I'm hoping I didn't screw up (the card works in macOS with the smalltree drivers, but it's oddly slow at times....). In the first attachment jpeg (name: commands.jpg), check out the ping times. They got worse after the modding.....maybe I just got a bad card, but I had to ask if maybe I didn't get it quite right......

And yes, I disabled SMB signing, both inbound and outbound.


another command result-a.jpg commands.jpg
 
Last edited:
Squuid:

First of all, thanks for the guide! I hope you're still around, or there is someone who can assist me....

So, I modded an Intel 540-T1 card, but I'm not getting great speed. I've upload some screenshots of what I did, and I'm hoping I didn't screw up (the card works in macOS with the smalltree drivers, but it's oddly slow at times....). In the first attachment jpeg (name: commands.jpg), check out the ping times. They got worse after the modding.....maybe I just got a bad card, but I had to ask if maybe I didn't get it quite right......

And yes, I disabled SMB signing, both inbound and outbound.


View attachment 774536 View attachment 774537
What cables are you using? Try different ones if you have them to hand and see if it improves.
 
So, I modded an Intel 540-T1 card, but I'm not getting great speed.

Doing what exactly? And what is "not great speed" in MB/s? Do both endpoints actually support higher transfer rates?

check out the ping times.

You're pinging an external host. The speed of your internet connection and your internet provider's load have MUCH more impact on these ping times.
 
  • Like
Reactions: Squuiid
I recently spent some time with an Aquantia 10GbE card in my 2010, but my switch had 4 bad ports.. will have to retest later. I was having lesser performance on the Mac side than on the PC (Intel X550-T2) or NAS (Intel X540-T2) side. Didn't get to determine why but guessing PCIE revision or perhaps not optimal slot position.
 
What cables are you using? Try different ones if you have them to hand and see if it improves.

So, I had a Asus Aquantia flashed 10G card, with the same cable (Cat 7 cable) and I was not seeing these issues. Ping times to DNS servers at Google and other providers were perfectly as expected. With the Intel modded card, connecting via the same cable and the same switch port, with the same MTU (Jumbo) ping times are extremely erratic - and often they time out. Download tests show downloading speeds vary as much 30 Mb. Both cards are using the same cable, same slot in the motherboard, same switch port, same switch port settings, same settings in macOS, and the same tests.

I wanted to change to the Intel because the Aquantia is totally dependent on a patch, and on any given macOS update, that patch could break. So, I feel safer using the Intel 540 card with the smalltree kext.

If, based on the JPGs I posted, I got the modding for the Intel correct, then I have to assume that there's nothing that can be done. As I said before, maybe I just got a not so good/marginal Intel 540 card.
 
Last edited:
So, I had a Asus Aquantia flashed 10G card, with the same cable (Cat 7 cable) and I was not seeing these issues. Ping times to DNS servers at Google and other providers were perfectly as expected. With the Intel modded card, connecting via the same cable and the same switch port, with the same MTU (Jumbo) ping times are extremely erratic - and often they time out. Download tests show downloading speeds vary as much 30 Mb. Both cards are using the same cable, same slot in the motherboard, same switch port, same switch port settings, same settings in macOS, and the same tests.

I wanted to change to the Intel because the Aquantia is totally dependent on a patch, and on any given macOS update, that patch could break. So, I feel safer using the Intel 540 card with the smalltree kext.

If, based on the JPGs I posted, I got the modding for the Intel correct, then I have to assume that there's nothing that can be done. As I said before, maybe I just got a not so good/marginal Intel 540 card.
Maybe a fake card? How much did you pay and which vendor did you buy it from?
https://forums.servethehome.com/index.php?threads/intel-x540-t2-fake-chinese-counterfeit.9715/
 
Maybe a fake card? How much did you pay and which vendor did you buy it from?
https://forums.servethehome.com/index.php?threads/intel-x540-t2-fake-chinese-counterfeit.9715/

The card is used, and I got it off e-Bay. So, if you use a X540 card, and you ping any DNS server, you get normal responses? Like consistently in the 15-30 ms range?

I did some more double checking and it does seem like it might be my network connection to Comcast.......I'd love to know if you have a 10G card what it's ping times to Googles DNS (ex: 8.8.8.8) is......but if you're busy, just forget it.....thanks again for the guide!
 
Last edited:
The card is used, and I got it off e-Bay. So, if you use a X540 card, and you ping any DNS server, you get normal responses? Like consistently in the 15-30 ms range?

I did some more double checking and it does seem like it might be my network connection to Comcast.......I'd love to know if you have a 10G card what it's ping times to Googles DNS (ex: 8.8.8.8) is......but if you're busy, just forget it.....thanks again for the guide!
Pings to external servers are meaningless and any discrepancies will not be card related. Ping an internal server or your router even and see what the response times are.

I would also test pulling data from a file server running off of SSDs in order to fully saturate the 10GbE link and see what speeds you get. 1100MB/s is the maximum thereabouts and 900MB/s is typical.
 
Last edited:
So, I got the issue sorted. It really was my connection to Comcast.

Does anyone know if the Intel cards do WOL? I've heard conflicting reports. Some say it can't, but others say it can.....
 
I'm happy to report another success with Intel X540-T2 cards -- thank you, Squuiid!!

I searched carefully to find cards with the blue "Yottamark" hologram sticker on the back. I saw tons of fakes on Amazon and eBay -- if you see a card pictured with a fan mounted on the board, it is not genuine. It may or may not work with this procedure, but it is not a genuine Intel card.

I had 3 cards to convert, so I installed Ubuntu 18.04.1 LTS on a spare SSD, and it worked perfectly. My cards had different names (ens4f0 and ens4f1), but other than that everything looked exactly the same as described by Squuiid.

My commands were:

sudo ethtool -E ens4f0 magic 0x15288086 offset 0x48e value 0x0a
sudo ethtool -E ens4f1 magic 0x15288086 offset 0x48e value 0x0a

Tested with iperf3, and using standard 1500 MTU I got 8.99 Gbits/sec between two machines through a 10g switch, and with MTU set to 8870 I got 9.46 Gbits/sec.

Blackmagic test results mounting a 960 EVO blade remotely with AFP were 680 MB/sec write and 880 MB/sec read. With SMB (signing turned off), results were 725 MB/sec write and 712 MB/sec read. I did not try NFS.

===

I can also provide some info about the Akitio NBASETNC-A01, which I tried first. Their web site said the driver would work with El Capitan 10.11.x, which I need to stay on until a project is finished. But it failed with my MacPro5,1 running 10.11.6 -- no PCI Ethernet port ever appeared in the Network tab of System Preferences. After some impressively quick investigation by Akitio tech support, I got a note from a developer saying that 10.11.6 is using an older version of the KPI library than the Tehuti driver requires for 5-speed operation. They have since updated the system requirements on their web page saying it needs at least 10.12.5 for use with the cMP. I had High Sierra 10.13.6 on a spare SSD, so I booted it up and can verify that the Akitio does work with Tehuti driver v1.52. I wasn't able to test performance between two machines, but the lights on the card and the switch both reported establishing a 10g link.

I'm networking together 3 cheesegraters (cMPs) with one of them acting as a file server. I already had cat6 riser cable (this stuff) connecting all 3 machines to a 1g switch through wall plates - max cable run is about 70 feet. So I upgraded to 10g with the little Netgear XS505m switch, and got 3 Intel NICs to run under 10.11.6, and I’m seeing terrific speed between the boxes. Large file performance is improved considerably by turning on jumbo frames, and dramatically by turning off SMB signing.

The XS505m was plug-and-play, with one hiccup. After I enabled jumbo frames on the NICs I saw a DECREASE in speed! Contacted Netgear, and I was unlucky enough to have one from a batch that doesn’t support jumbo frames. They RMA’ed me a replacement, and it works fine -- my ping tests show it passes up to 8870 packet size.

===

Wake-on-LAN does NOT appear to be supported by the Intel x540-t2 on cMP. I could not wake a remote machine from sleep by invoking Go > Connect to Server to mount a drive, and I'm pretty sure that used to work over 1G with the built-in Ethernet adapter. I also tried the wakeonlan.py script with no luck.
 
UPDATE: how to disable the boot firmware on the Intel x540-t2 from Ubuntu

After installing the modded x540-t2, when I tried to boot from my Windows drive (using Legacy mode), the screen would flash briefly then show an Intel boot options menu, then flash again and show the same menu, then about half the time it would hang on a black screen with flashing white cursor -- and the rest of the time it would continue to load Windows 10. The Intel card boot menu says to hit "ctrl-S" to change options, but it would not respond to my keyboard input.

Squuiid describes how to disable the Intel boot firmware using Intel's "bootutil.exe" from DOS in this post. But I wasted several hours and lots of CD-R blanks failing to create a bootable DOS CD, based on either FreeDOS or DOS 6.22, using procedures similar to those described in this ancient thread. So I gave up and tried the Linux version of the Intel tools, and that worked fine without too much trouble. So if you already have a Linux installation I think this is an easier path.

Here is the Intel download page for the DOS and Linux tools. Tool documentation is here.

I used the same install of Ubuntu 18.04.1 LTS that I created for modding the cards in my post above. I unpacked preboot.tar.gz into a folder on my Ubuntu desktop. Before you run the tool, you have to build the tool's driver, which is what talks to the cards for flashing purposes. In a terminal window, cd into the unpacked folder, then keep going down into APPS/BootUtil/Linux_x64/DRIVER. If you installed the basic Linux like I did, you'll need the build tools, so type "sudo apt-get install build-essential". Then you can do "sudo ./install" and it will build and install the driver. You may need to reboot at this point -- I can't recall. The 64-bit tool is one folder above the DRIVER, called "bootutil64e" -- not sure if you need to "chmod a+x bootutil64e" or not, but I think it had no exe perms. If you try "sudo ./bootutil64e" and it fails with a message like "insufficient permission to contact blah-blah" then the app can't reach the driver and you should reboot. When it works, bootutil64e with no options displays a 3-line prompt, then hangs for about 15 secs probing for intel Ethernet adapters, then shows you what it found and exits. I had 4 ports, numbered 1-4, with NICs 1 and 2 being the 10gbE ones. At this point I tried the following, which executed without error, but with no obvious effect either:

./bootutil64e -NIC=1 -BOOTENABLE=DISABLED
./bootutil64e -NIC=2 -BOOTENABLE=DISABLED

Then I did as Squuiid suggested, and tried the following:

./bootutil64e -NIC=1 -FLASHDISABLE
./bootutil64e -NIC=2 -FLASHDISABLE

This time the listing of NICs from the app showed that the firmware was disabled on NICs 1 and 2, as desired.

I exited Ubuntu and restarted the machine, selected my Windows (Legacy) drive using rEFInd, and it booted straight to Windows 10 much faster than before, with no intervening prompts from Intel boot menus.
 
  • Like
Reactions: Squuiid
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.