Por que alguns drivers ainda exigem firmware?

6

Há uma tonelada de drivers de engenharia reversa na árvore do kernel do Linux. No entanto, alguns drivers, especialmente os sem fio, exigem que os blobs binários do firmware sejam executados corretamente.

O que impede alguém de fazer engenharia reversa, e tornar o driver 100% gratuito? Ou é diferente para diferentes condutores?

    
por strugee 15.09.2013 / 09:32

2 respostas

5

Firmware é um software que é executado em um processador no próprio dispositivo, não no processador principal. É mais provável que o firmware seja de código fechado do que os drivers por diversos motivos.

O firmware deve ser feito apenas uma vez, enquanto sistemas operacionais diferentes exigem drivers diferentes. Portanto, os fabricantes de hardware têm um incentivo para permitir que terceiros escrevam seus próprios drivers para seu sistema operacional favorito, enquanto não há incentivo para o firmware.

O firmware está mais próximo do hardware, e as empresas de hardware geralmente querem manter o funcionamento do hardware em segredo. Portanto, eles não gostam de revelar como o firmware foi feito também.

Firmware é muito mais difícil de fazer engenharia reversa do que o código do driver. Geralmente, os dispositivos periféricos não podem ser depurados facilmente, ao contrário dos drivers que estão sendo executados na CPU principal. Além disso, o firmware está sendo executado em um ambiente que muitas vezes é mal documentado (se houver poucos tipos de CPU, quais dispositivos de E / S são mapeados para quais endereços são extremamente variáveis).

No caso de drivers de Wi-Fi, há um problema adicional. A lei na maioria das localidades proíbe o uso de certas radiofreqüências e determina que os dispositivos de consumo sejam protegidos contra a transmissão nessas freqüências proibidas. Muitas vezes o hardware é bastante flexível e a única proteção está no firmware. Se o fabricante facilitasse muito a modificação do firmware para transmitir em freqüências proibidas, eles poderiam violar essas regulamentações.

    
por 17.09.2013 / 02:21
3

Você está certo de que é diferente para diferentes drivers. Muitos desses drivers estão cobertos por patente ou NDA, o que impede essa ação.

    
por 15.09.2013 / 09:42