Thunderbolt allows for peer-to-peer network connections by connecting two computers directly via a thunderbolt cable. Mika from Intel added support for this to the 4.15 kernel. Recently, Thomas Haller from NetworkManager and I worked together to figure out what needs to be done in userspace to make it work. As it turns out, it was not that hard and the pull-request was merged swiftly.


GNOME Settings' Network Panel

So now if you connect your GNU/Linux box to another machine, NetworkManager will configure the connection to be a Link-Local one.

pinging macOS

ping Linux from macOS

I have successfully tested Fedora to Fedora, Fedora to macOS and Fedora to Windows 10. The other operating systems also use a Link-Local address by default.


Copying from Linux to Windows

The technical details

When another host is connected via thunderbolt, we get a new device in sysfs that resembles a normal thunderbolt device but is of DEVTYPE thunderbolt_xdomain. Like a normal thunderbolt device, it has a unique_id and a device_name, but is missing the authorized and key attributes. A new udev rule in NetworkManager was added to load the thunderbolt-net kernel module. As a result, we get a new network device (thunderbolt0).

nmcli showing the thunderbolt networking device

Another udev rule will set a new udev property (NM_AUTO_DEFAULT_LINK_LOCAL_ONLY) to all network devices where the driver is thunderbolt-net to instruct NetworkManager to use the Link-Local configuration on these interfaces.

The dev snapshot release 1.11.3-dev has the thunderbolt networking support. Grab it, build it, and start playing around with it! Feel free to post your record transfer speeds in the comments ⚡ 🏆.

Discussion

  1. Pingback: Links 24/5/2018: RIP Robin “Roblimo” Miller, Qt 5.11 Released | Techrights

    • Yes I would like to know what's up also. Before I go invest in a thunderbolt PCIe card for my nas. Is his system just slow or is something wrong with the software that limits the speed?

  2. This is very nice, can other connectors that provide networking be setup to work as simply?

    IP over USB or HDMI spring to mind.

  3. Pingback: Thunderbolt Networking Now Supported in Linux's NetworkManager Software - Server Install

  4. Pingback: Episode 29 | This Week in Linux – TuxDigital

  5. Pingback: LWDW 120: ARM’d And Systemd-angerous – LinuxGameCast

  6. I was wondering whether the thunderbolt IP module allowed you to daisy chain more than 2 hosts together? eg. If you have 3 hosts and at least one of those hosts has 2 x thunderbolt ports, can all hosts communicate with one another? This would be fantastic for home labs using Intel Hades Canyon NUCs.

  7. Hello, I am using supermicro 7048GR-TR. they said their thunderbolt 2 card is not supported in Linux.

    Reading your post, I wonder if it is Bios issue or /dev/ issue.

  8. Hello,

    I am using Supermicro thunderbolt 2 add-on card, which they said only support Windows 7. Not Linux.

    I wonder if it is their Bios issue (can't recognise in linux). Or just ignore and go ahead with your approach.

    thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

Made by ThemesKult