Usuários de placas de captura 4K no sistema operacional Linux agora podem comemorar a resolução de um problema persistente. Uma atualização no kernel corrigiu um erro que causava a desconexão da porta USB em diversos modelos, impedindo a gravação em 4K a 30 FPS, mesmo em dispositivos que prometiam 4K a 60 FPS.
A questão, que foi relatada pelo Phoronix, afetava equipamentos bastante utilizados por streamers e criadores de conteúdo. Marcas como Elgato, AVerMedia, ASUS e UGREEN já tiveram seus dispositivos beneficiados pela correção.
Problema reduzia conexão de 10 Gbps para 5 Gbps
A falha ocorria durante a comunicação entre a placa e o sistema. Inicialmente, ao conectar o dispositivo, o link USB estabelecia uma taxa correta de 10 Gbps, necessária para suportar vídeo 4K a 60 quadros sem compressão severa. Contudo, após essa etapa, o kernel pedia o descritor BOS, um procedimento padrão na identificação USB, e o equipamento deixava de responder.
Após alguns segundos tentando restabelecer a conexão, o sistema recuava para uma taxa de 5 Gbps, que só permite gravação em 4K a 30 FPS.
No caso da Elgato 4K X utilizada como exemplo na análise, houve até mudança na identidade do dispositivo: seu product ID mudava de 009b para 009c, eliminando os modos de 60 quadros do sistema.
Johannes Brüderl, responsável por identificar o problema, explicou em seu blog:
“O link sobe para 10 Gbps; então o kernel solicita o descritor BOS, o dispositivo falha ao responder e depois de algumas tentativas se reconecta como 009c a 5 Gbps. A leitura do BOS é onde tudo começa a dar errado; as falhas subsequentes com descritores de configuração e endereço são apenas consequências disso.”
O ponto crucial sobre esse defeito é que ele se origina de um bug no firmware do próprio dispositivo e não no Linux. Isso significa que no Windows a ordem de enumeração USB é diferente e não resulta na mesma falha, razão pela qual a Elgato não havia lançado nenhuma correção para um produto destinado apenas aos sistemas Windows e macOS.
Solução originou-se do primeiro patch feito por um usuário
A correção foi desenvolvida fora do grupo habitual de programadores do kernel. Brüderl criou uma solução alternativa chamada USB_QUIRK_NO_BOS, que permite ao sistema ignorar a leitura do descritor problemático nos dispositivos afetados. Dessa forma, a placa permanece operando em SuperSpeed Plus a 10 Gbps e utiliza o driver nativo uvcvideo para vídeo.
Os efeitos da correção já são visíveis no OBS Studio: com essa solução, a Elgato 4K X consegue gravar e transmitir em 4K a 60 FPS sem necessidade de software adicional do fabricante – algo que nem mesmo no Windows acontece sem instalação prévia.
Este foi o primeiro patch desenvolvido por Brüderl para o kernel, contando com apoio significativo. Greg Kroah-Hartman, conhecido mantenedor do subsistema USB e figura proeminente do projeto, adquiriu uma Elgato 4K X pessoalmente para reproduzir o problema antes de aprovar as alterações.
A motivação por trás do trabalho de Brüderl era pessoal: ele desejava gravar gameplays de Nintendo em 4K60 para compartilhar no canal da filha.
Elgato, AVerMedia, ASUS e UGREEN já estão incluídas na lista
A solução foi introduzida na versão Linux 6.19, recebendo backport para as versões estáveis mantidas do kernel, abrangendo as séries 6.1, 6.6, 6.12 e 6.18.
A partir desse ponto, outros fabricantes também tiveram seus dispositivos adicionados à tabela correspondente:
Conforme reportado pelo Phoronix, usuários que utilizam o mais recente kernel Linux 7.1 já contam com suporte para todos os modelos atualmente listados.
No entanto, é importante ressaltar que essa correção não se aplica automaticamente ao restante do mercado: se outra placa apresentar problemas semelhantes, seu device ID ainda precisa ser adicionado manualmente à tabela por algum colaborador.
Navegue também:
- Patches da SteamOS 3.8.9 Beta solucionam problemas com HDMI e aperfeiçoam recurso contra tearing nos jogos
- Valve colabora diretamente com a NVIDIA para aprimorar suporte ao SteamOS
- Dúvidas sobre qual placa de vídeo escolher para streaming no PC?
Como verificar se sua placa de captura já está funcionando corretamente
A maneira mais eficaz é atualizar sua distribuição para um kernel 6.19 ou superior, ou qualquer versão estável que tenha recebido backport da correção. Distribuições com ciclos rápidos como Fedora e Arch já incorporaram essa atualização; usuários que gravam jogos no Steam Deck deverão receber ajustes assim que o SteamOS adotar uma versão mais recente do kernel.
A verificação é simples: conecte sua placa e veja se os modos de gravação em 4K a 60 FPS aparecem no OBS. Se ela continuar limitada a apenas 30 quadros por segundo, utilize lsusb para checar se está negociando corretamente à velocidade de 10 Gbps.
No caso das placas fora da lista apresentarem os mesmos problemas mencionados anteriormente, Brüderl está aberto a relatos com device IDs em mãos; adicionar novos modelos à tabela quirks requer apenas algumas linhas de código.
