Linux resolve falha que restringia placas de captura 4K a 30 quadros por segundo

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.

By Power Play Games

Você Pode Gostar