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
- Criar a árvore ConfigFS – diretórios
.../stream/<domínio>representam cada conexão. - Definir HopIDs – escrevendo
-1para alocação automática ou valores específicos para controle avançado. - Utilizar
/dev/tbstreamX– operar como qualquer outro dispositivo de bloco ou caractere. - 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.