A comunidade por trás do Raspberry Pi (e, por extensão, do Linux) deu origem a uma quantidade extraordinária de desenvolvimentos, mas se há um elemento com o qual mantém uma dura batalha, é o código proprietário associado ao módulo de vídeo VideoCore IV da Broadcom presente em todos os modelos do computador. O clássico atalho para obter funcionalidade é o que muitos chamam de «blob»; no entanto, a desenvolvedora Kristina Brooks publicou um bootloader preliminar que busca quebrar esse cadeado no Raspberry Pi.

O primeiro firmware (bootloader) livre para Raspberry Pi
Raspberry Pi

A Free Software Foundation descreve a necessidade de código proprietário para inicializar corretamente um Raspberry Pi como «falha fatal». Naturalmente, a FSF estende a mesma cortesia a todo hardware que se encontra em situação semelhante, embora devamos reconhecer que o duelo entre a comunidade e o VPU Broadcom VideoCore IV se estendeu por muito mais tempo do que imaginávamos a princípio (o Raspberry Pi está no mercado há mais de quatro anos). Os benefícios do Raspberry Pi são grandes o suficiente para deixar de lado essa restrição técnica, mas se o objetivo é tornar a plataforma «mais aberta», mais cedo ou mais tarde será necessário cruzar espadas com ela.

O primeiro firmware (bootloader) livre para Raspberry Pi
Um avanço relativamente pequeno se considerarmos o tempo que o Raspberry Pi está disponível, mas avanço, afinal.

É a isso que aponta o recente trabalho da programadora Kristina Brooks, que publicou no GitHub um bootloader open source para o VPU no Raspberry Pi. A descrição oficial fala de um pequeno firmware com a capacidade de inicializar UART, o PLL do VPU e ARM. A ideia é que esse novo código substitua o bootcode.bin que encontramos no cartão SD do Raspberry Pi, e já foi avaliado nas três gerações principais do computador. Brooks explica que é necessário ter UART se espera algum tipo de saída, e restam vários problemas para resolver, entre eles o uso adequado dos núcleos nos novos modelos do RPi.

Nem é preciso dizer que o desenvolvimento está bastante longe de conseguir inicializar o Linux, e de certo ponto de vista, acho mais lógico colocar o bootloader ao nível de uma prova de conceito. A direção do projeto é a correta, e tanto Brooks quanto o restante dos colaboradores mencionados na página do GitHub fizeram um trabalho formidável, incluindo a própria Broadcom por liberar os «headers». Aspectos críticos como aceleração por hardware e suporte para codecs ainda estão no tinteiro, e pode ser que nunca cheguem a uma posição ótima, mas com paciência, esforço e maior colaboração, certamente veremos um Raspberry Pi mais aberto do que é hoje.

Site oficial: