惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
博客园 - Franky
GbyAI
GbyAI
B
Blog
WordPress大学
WordPress大学
D
Docker
小众软件
小众软件
月光博客
月光博客
博客园 - 【当耐特】
T
The Blog of Author Tim Ferriss
IT之家
IT之家
腾讯CDC
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
H
Help Net Security
M
MIT News - Artificial intelligence
L
LangChain Blog
云风的 BLOG
云风的 BLOG
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Phoronix

Linux 7.1-rc6 Released Following Another "Larger-Than-I'd-Wish-For Size" Week KDE Linux Prunes Its Insecure & Unused Software Linux 7.1-rc6 To Support The ASUS ROG RAIKIRI II & Nova 2 Lite Controllers Linux Might Finally Disable The Microsoft RNDIS Protocol Drivers In 2026 Wine-Staging 11.10 Fixes 14 Year Old Bug, Also Fixes Issue Of Some Games Being Too Dark Servo 0.2 Released With Revamped Android Browser UI Zrythm 2.0 Alpha Released For Rewriting The Digital Audio Workstation In C++ & Qt/QML Linux 7.1-rc6 To Hide The Documentation On "clearcpuid" Feature AV2 v1.0 Specification Released For Next-Gen Video Coding Various USB Quirks Merged Ahead Of Linux 7.1-rc6 Rust Coreutils 0.9 Released With Additional Security Hardening, Zero-Copy I/O NixOS 26.05 Released With 20,442 New Packages, Stage 1 Now Based On systemd By Default AMD Submits More Graphics Driver Changes For Linux 7.2 AMD Expands The Range Of Zen 6 CPUs Detected By The Linux Kernel G7 Agrees On Shared Language Around Open-Source AI, Open Weights AI GNOME Circle Takes Stand Against AI Slop, Resources App Makes It Into GNOME Incubator Plasma 6.6, 6.7 & 6.8 See Plenty Of Bug Fixing This Week Genode OS 26.05 Released, Finishes Moving From GitHub To Codeberg SteamOS 3.8.6 Beta Released With Initial Native Support For AMD HDMI VRR Ubuntu 26.10 Snapshot 1 Released For Testing Wine 11.10 Released With VKD3D 2.0, Improved VBScript Compatibility Fwupd 2.1.4 Brings Many Fixes For Bugs Spotted By Anthrophic's Mythos, Firmware Update Support For Intel Arc Pro B65/B70 AMD ROCm 7.2.4 Released With Performance & Stability Fixes CachyOS Delivers Lead Over Arch Linux, Pop!_OS & Ubuntu On System76 Thelio Major Linux Networking Still Seeing "Significantly Bigger" Pull Requests Due To AI Btrfs Change Coming For Linux 7.2 Yields Very Healthy Performance Gain Intel To Support DRM Background Color Property With Linux 7.2 Fedora 45 Considering Use Of PURL Metadata For Uniquely Identifying Software Packages Linux 7.2 To Bring Graphics Driver Fix For Old Integrated Graphics On Intel Sandy Bridge Radeon Software For Linux 26.12 Brings Ubuntu 26.04 Support
Intel Introducing USB4STREAM Protocol For Linux - Opening...
Written by Michael Larabel in Intel on 25 May 2026 at 06:46 AM E · 2026-05-25 · via Phoronix

INTEL

An exciting Intel innovation expected to be added for the upcoming Linux 7.2 kernel is introducing the new USB4STREAM protocol for USB4/Thunderbolt as a "super simple" way to "basically just transfer raw packets from one host to another". This can be useful for quickly backing up a system from one host to another, sharing of web cameras or other peripherals across systems, or other environments where not having networking or wanting to avoid the traditional Linux networking stack.

Intel Thunderbolt maintainer Mika Westerberg has been working on the USB4STREAM support with the thunderbolt_stream driver that looks like it's all buttoned up in time for next month's Linux 7.2 merge window.

The thunderbolt_stream driver exposes /dev/tbstreamX devices on each host of a directly-connected USB4/Thunderbolt cable. From there data can be transferred using regular file-system operations, e.g. you can dd or cat from one system to another or similar commands.

USB4STREAM laptop setup

Westerberg further elaborated on the patch introducing the USB4STREAM support to the Linux kernel with some additional use-cases/examples:

"Introduce USB4STREAM protocol and Linux implementation. This allows two (or more) hosts to transfer data directly over Thunderbolt/USB4 cable through a character device without need to go through the network stack.

Any application that supports read(2) and write(2) in some form should be able to use the device without changes. The data is sent out to the other side over a tunnel inside Thunderbolt/USB4 fabric. The character device is called /dev/tbstreamX where X is the minor number starting from 0.

All stream devices need to be configured first. This is done through ConfigFS interface. There can be multiple streams at the same time (this depends on number of DMA rings and available HopIDs) and a single stream supports traffic in both directions. For example there could be an application that uses one stream as control channel and another one as bi-directional data channel.

A real use-case for this is to take a backup as a part of recovery initramfs tooling (no need to setup networking or have ssh or similar tooling as part of the initramfs). Say we want to backup the disk of host1 to host2. First Thunderbolt/USB4 cable is connected between the hosts (there can be devices in the middle too) then the receiving side configures the stream:

host2 # mkdir /sys/kernel/config/thunderbolt/stream/0-1.0
host2 # mkdir /sys/kernel/config/thunderbolt/stream/0-1.0/backup
host2 # echo -1 > /sys/kernel/config/thunderbolt/stream/0-1.0/backup/in_hopid
host2 # echo -1 > /sys/kernel/config/thunderbolt/stream/0-1.0/backup/out_hopid

We use automatic HopID allocation (writing -1 to HopIDs) for simplicity. From this point forward the /dev/tbstream0 can be used pretty much as regular file:

host2 # dd if=/dev/tbstream0 of=/tmp/host1.nvme0n1.backup-$(date +%F) bs=256k

The host that is being backed up then configures the stream accordingly:

host1 # mkdir /sys/kernel/config/thunderbolt/stream/0-503.0
host1 # mkdir /sys/kernel/config/thunderbolt/stream/0-503.0/backup

Here we take advantage of the fact that host2 also announces the active streams through XDomain properties so the name "backup" gives us the HopIDs. It is also possible to configure them manually in the same way we did for host2.

Then it is just a matter of copying the data over:

host1 # dd if=/dev/nvme0n1 of=/dev/tbstream0 bs=256k

Similarly it is possible to transfer parts of the filesystem. For example copy contents of mydir over to the host2:

host2 # gunzip < /dev/tbstream0 | tar xf -
host1 # tar cf - mydir | gzip > /dev/tbstream0

Other end of the spectrum use-case is "borrowing" laptop (host1) camera to desktop (host2):

host2 # gst-launch-1.0 filesrc location=/dev/tbstream0 ! jpegdec ! videoconvert ! autovideosink

host1 # gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080 ! jpegenc quality=90 ! filesink location=/dev/tbstream0

Once the streams are no longer needed they can be removed:

host1 # cd /sys/kernel/config/thunderbolt/stream/
host1 # rmdir -p 0-503.0/backup

host2 # cd /sys/kernel/config/thunderbolt/stream
host2 # rmdir -p 0-1.0/backup"

The patch is in the Thunderbolt.git's "next" branch. With those patches making it into the "next" branch, assuming it's then submitted in time for the USB/Thunderbolt Git tree proper ahead of the Linux 7.2 merge window in mid-June, this nifty protocol should make it for the Linux 7.2 kernel.

USB4STREAM

There is also this documentation patch that further lays out how to make use of USB4STREAM and its innovative capabilities.