intel / thunderbolt-software-user-space

Other
106 stars 20 forks source link

DISCONTINUATION OF PROJECT.

This project will no longer be maintained by Intel.

Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.

Intel no longer accepts patches to this project.

If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.

Thunderbolt(TM) user-space components

Build Status

License

These components are distributed under a BSD-style license. See COPYING for the full license.

Overview

Thunderbolt™ technology is a transformational high-speed, dual protocol I/O that provides unmatched performance with up to 40Gbps bi-directional transfer speeds. It provides flexibility and simplicity by supporting both data (PCIe, USB3.1) and video (DisplayPort) on a single cable connection that can daisy-chain up to six devices.

Features

The user-space components implement device approval support:

  1. Easier interaction with the kernel module for approving connected devices.
  2. ACL for auto-approving devices white-listed by the user.

tbtacl

tbtacl is intended to be triggered by udev (see the udev rules in tbtacl.rules). It auto-approves devices that are found in ACL.

tbtadm

tbtadm is a user-facing CLI tool. It provides operations for device approval, handling the ACL and more.

Supported OSes

Kernel/Daemon Compatibility

The user-space components operate in coordination with the upstream Thunderbolt kernel driver (found in v4.13) to provide the Thunderbolt functionalities. These components are NOT compatible with the old out-of-tree Thunderbolt kernel module.

Build instructions

Build dependencies

Build dependencies are:

You also need a c++ compiler with C++14 support and gzip.

Tested with:

For example, on Ubuntu you can install the dependencies with the following command:
sudo apt-get install cmake libboost-filesystem-dev txt2tags pkg-config

On Fedora, use this:
dnf install cmake boost-devel txt2tags

Building

Use the CMakeLists.txt file found in the root directory to build the project. For example (run it in the directory holding the code):

  1. mkdir build
  2. cd build
  3. cmake .. -DCMAKE_BUILD_TYPE=Release
  4. cmake --build .

On step 3, CMAKE_INSTALL_PREFIX, UDEV_BIN_DIR and UDEV_RULES_DIR variables can be used for changing the default installation location, e.g. to install tbtadm under /usr/bin instead of the default /usr/local/bin run:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr

Installation

Installation can be done in one of 2 options:

Changelog

v0.9.3

v0.9.2

v0.9.1

v0.9

Eng. drop 2

Known Issues

Information

The source for this code:

Mailing list:

For additional information about Thunderbolt technology visit: