Pular para o conteúdo
Intel traz USB4STREAM ao Linux 7.2: transferência de dados via Thunderbolt simplificada

Intel traz USB4STREAM ao Linux 7.2: transferência de dados via Thunderbolt simplificada

Novo driver thunderbolt_stream adiciona o protocolo USB4STREAM ao kernel Linux 7.2, permitindo backup, streaming de câmera e muito mais via cabo USB4/Thunderbolt.

A Intel anunciou a inclusão do USB4STREAM no próximo kernel Linux 7.2. O novo driver thunderbolt_stream permite que dois ou mais hosts conectados por cabo USB4/Thunderbolt troquem pacotes brutos como se fossem arquivos, sem precisar da pilha de rede tradicional.

O que é o USB4STREAM?

O USB4STREAM é um protocolo de camada de caráter que cria um túnel de dados direto dentro da malha Thunderbolt/USB4. Cada host expõe um dispositivo /dev/tbstreamX (onde X é o número menor) que pode ser lido ou escrito por qualquer aplicação que suporte as chamadas read(2) e write(2). A configuração dos fluxos é feita via ConfigFS, permitindo múltiplos streams simultâneos e comunicação bidirecional.

Principais casos de uso

Backup de disco em initramfs

Sem precisar de rede ou SSH, um sistema pode enviar seu disco inteiro para outro host durante a fase de recuperação:

# No host2 (destino)
mkdir /sys/kernel/config/thunderbolt/stream/0-1.0
mkdir /sys/kernel/config/thunderbolt/stream/0-1.0/backup
echo -1 > /sys/kernel/config/thunderbolt/stream/0-1.0/backup/in_hopid
echo -1 > /sys/kernel/config/thunderbolt/stream/0-1.0/backup/out_hopid
dd if=/dev/tbstream0 of=/tmp/host1.backup bs=256k
# No host1 (origem)
mkdir /sys/kernel/config/thunderbolt/stream/0-503.0
mkdir /sys/kernel/config/thunderbolt/stream/0-503.0/backup
dd if=/dev/nvme0n1 of=/dev/tbstream0 bs=256k

Transferência de arquivos e diretórios

É possível copiar diretórios compactados de um host para outro usando tar/gzip:

# Host2 recebe
gunzip < /dev/tbstream0 | tar xf -
# Host1 envia
tar cf - mydir | gzip > /dev/tbstream0

Compartilhamento de câmera entre laptops e desktops

O fluxo de vídeo pode ser encaminhado em tempo real:

# Host2 (exibe)
gst-launch-1.0 filesrc location=/dev/tbstream0 ! jpegdec ! videoconvert ! autovideosink
# Host1 (captura)
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080 ! jpegenc quality=90 ! filesink location=/dev/tbstream0

Como funciona a configuração

  1. Criar a árvore ConfigFS – diretórios .../stream/<domínio> representam cada conexão.
  2. Definir HopIDs – escrevendo -1 para alocação automática ou valores específicos para controle avançado.
  3. Utilizar /dev/tbstreamX – operar como qualquer outro dispositivo de bloco ou caractere.
  4. Remover – ao terminar, basta remover os diretórios criados em /sys/kernel/config/thunderbolt/stream/.

Impacto para desenvolvedores e usuários

  • Redução de latência: eliminação da pilha de rede diminui overhead.
  • Simplicidade: ferramentas padrão (dd, tar, gst-launch-1.0) funcionam sem modificação.
  • Flexibilidade: múltiplos streams podem coexistir, permitindo canais de controle e dados separados.
  • Recuperação de sistema: backups rápidos diretamente do initramfs, ideal para ambientes de recuperação automática.

Estado atual e cronograma

O código-fonte está disponível no branch next do repositório Thunderbolt da Intel. As alterações devem ser submetidas ao tree oficial de USB/Thunderbolt antes da janela de merge do Linux 7.2, prevista para meados de junho de 2026. Uma documentação complementar detalhando o uso do USB4STREAM também foi incluída no patch.

Conclusão

Com o USB4STREAM, a Intel oferece ao Linux uma solução elegante para transferência de dados ponto‑a‑ponto via USB4/Thunderbolt, abrindo caminho para backups ultrarrápidos, compartilhamento de periféricos e outras aplicações que antes dependiam da rede. O suporte está programado para o kernel Linux 7.2, prometendo benefícios imediatos para distribuidores, administradores de sistemas e entusiastas de hardware.

Por · Última atualização: