O mais recente kernel Linux-libre 6.8-gnu foi lançado, endossado pela Free Software Foundation. Este kernel é uma versão derivada do kernel Linux original, mas com uma diferença fundamental: ele elimina o suporte a módulos proprietários e remove drivers/funcionalidades que dependem de microcódigo/firmware binário exclusivo e outros elementos que não atendem aos seus padrões de software livre. Inclusive, separamos um post onde explicamos como funciona a homologação da Free Software Foundation.
Continuando a Tradição de Software Livre
O Linux-libre 6.8-gnu continua sendo utilizado por distribuições Linux aprovadas pela FSF, que não permitem que o kernel interaja com microcódigo/firmware proprietário, mesmo que isso signifique suporte reduzido a hardware e recursos. Com o Linux 6.8, o esforço de “desblobulação” teve que lidar com o novo driver gráfico do kernel Intel Xe, o suporte de hardware QuickAssist Technology (QAT) atualizado da Intel e também o driver Intel Visual Sensing Controller (VSC). Além disso, há o novo driver DRM Imagination PowerVR Rogue que requer microcódigo, juntamente com o Aquantia PHY e outros drivers que necessitam de blobs.
Mudanças no Linux-libre 6.8-gnu
As novas mudanças no Linux-libre 6.8-gnu incluem:
- Os drivers atmel, hermes, orinoco_usb, libertas_cs e zd1201 foram removidos na versão original, então não precisamos mais limpá-los.
- Novos drivers para Intel qat_420xx, Imagination PowerVR, Intel Xe, Chips&Media Wave5, Intel VSC, Aquantia PHY e Realtek rtw8922a precisaram ser limpos.
- O driver coda foi movido na árvore “fonte” original, então sua limpeza foi ajustada.
- Alguns novos nomes de blob apareceram em novos arquivos de árvore de dispositivos ARM e AArch64, então nós os limpamos.
- Os scripts de empacotamento .deb foram alterados na versão original, então ajustamos para as mudanças e aproveitamos a oportunidade para melhorar a redação.
Frustrações com os Drivers Intel
Além das frustrações com os novos drivers Intel, o anúncio do Linux-libre 6.8-gnu também aponta frustrações contínuas com o driver DRM Intel i915 existente em torno do firmware do microcontrolador gráfico (GuC), necessário para o novo hardware gráfico Intel, enquanto é opcional para gerações mais antigas.
O Intel i915, que costumava ser um driver muito amigável à liberdade, tornou-se uma fonte constante de problemas devido aos blobs. No ano passado, aprendemos sobre loops infinitos em certas variantes de hardware i915, pois tentavam voltar para variantes de blob anteriores que tínhamos limpado para nomes indistinguíveis.
Corrigimos isso e até contribuímos com o patch para a versão original. Ele não foi aceito, mas outras mudanças foram feitas em resposta ao nosso patch, que tornaram o driver muito mais barulhento em nosso caso.
Nós lidamos com o ruído extra, mas essas mudanças na versão original não foram o que quebrou o driver novamente para nós. Ainda não sabemos o que fez isso, mas o sintoma é semelhante à quebra anterior: alguns sistemas com gráficos Intel parecem congelar.
Iniciar o sistema com i915.enable_guc=0 evitará o congelamento aparente em sistemas afetados por este problema. Acompanhe toda discussão na lista pública do projeto.