O projeto Debian tomou a decisão em outubro de 2022 de criar um novo componente de repositório non-free-firmware (firmware não livre) e incluir seu conteúdo em mídia de instalação para a próxima versão do Debian 12 (bookworm) para tornar as coisas mais fáceis para nossos(as) usuários(as). Essa mudança foi implementada a tempo para o lançamento do debian-installer (instalador debian) do bookworm alpha 2 em fevereiro de 2023, e todas as versões do d-i e das imagens diárias e semanais desde então incluem firmware.
Para mais informações sobre lançamentos antigos, consulte "lançamentos anteriores" mais abaixo nesta página.

O que é firmware?

Firmware refere-se a software embutido que controla dispositivos eletrônicos. Limites bem definidos entre firmware e software não existem, já que ambos os termos podem se referir aos mesmos códigos. Em geral, o termo firmware lida com operações de baixo nível em um dispositivo, sem as quais um dispositivo seria completamente não funcional (leia mais na Wikipedia).

Muitos dispositivos requerem firmware para operar. Historicamente, o firmware era incorporado à ROM do dispositivo ou à memória flash, porém cada vez mais uma imagem de firmware tem que ser carregada na RAM do dispositivo por um driver durante a inicialização do dispositivo.

Algumas imagens de firmware são software livre e de código aberto, mas infelizmente quase todas são não livres, o que significa que o Debian não pode incluí-las normalmente no repositório sob main ou contrib.

Usando firmware não livre em um sistema Debian

Debian 12 (bookworm) e posteriores

Para o Debian 12 em diante, todos os binários de firmware não livres empacotados que o Debian pode distribuir foram movidos para um novo componente no repositório Debian, chamado non-free-firmware (firmware não livre). Se você está atualizando de uma versão mais antiga do Debian e precisa desses binários de firmware, você deve atualizar o apt sources.list em seu sistema para usar esse novo componente. Se você tiver apenas o componente non-free habilitado em seu sistema, que permite que você instale firmwares, você pode removê-lo com segurança agora.

A instalação do Debian e as imagens live agora incluem todos esses pacotes de firmware. O sistema deve automaticamente detectar, carregar e instalar o firmware disponível para seus dispositivos, sempre que possível. Existem alguns casos em que o Debian não poderá fazer isso, normalmente porque não é autorizado a distribuir os binários de firmware necessários.

Se você estiver iniciando o instalador Debian pela rede, não serão incluídos todos os pacotes de firmware no initramfs. Isso foi uma escolha deliberada devido ao espaço extra necessário para todos os firmwares. Muitos(as)/A maioria dos(as) usuários(as) já precisa modificar o initramfs quando define a inicialização por rede, então um passo extra aqui é razoável. Adicionar os blobs de firmware para o seu initramfs é fácil: basta pegar o repositório cpio apropriado para sua distribuição em vista de https://cdimage.debian.org/cdimage/firmware/ e anexá-lo diretamente ao arquivo initramfs.

Como desabilitar a detecção e uso de firmware não livre

A partir do Debian 12, o instalador verificará automaticamente osblobs de firmware necessários e os adicionará conforme necessário. Se você preferir que isso não aconteça, adicione

firmware=never

para os parâmetros de boot do instalador conforme descrito no guia de instalação.

Em uma ISO Debian Live, adicione

firmware=never live-installer/enable=false

para os parâmetros de boot do instalador conforme descrito no Manual do Instalador Debian Live.

Nota: o uso de firmware=never também pulará a detecção e a instalação de firmwares livres, você terá que fazê-lo manualmente no caso de serem necessários.

Distribuições antigas

Para o Debian 11 (bullseye) e anteriores, o Debian não incluiu firmware na instalação oficial e nas imagens live. As seções a seguir devem ajudar caso você precise de firmwares.

Firmware durante a instalação

Em alguns casos, o instalador detecta a necessidade de firmware não livre e solicita que o(a) usuário(a) disponibilize o firmware para o instalador para concluir a instalação. Isso pode acontecer, por exemplo, com placas de rede que muitas vezes exigem firmware não livre para funcionar (veja ipw2200 para um exemplo).

Imagens de instalação com firmware

Um método fácil é usar uma 'imagem de instalação que inclui todos os pacotes de firmware não livres diretamente. Veja https://cdimage.debian.org/cdimage/unofficial/não-free/cd-incluindo-firmware/

Firmware em mídias removíveis

Você também pode baixar o arquivamento de firmwares para sua plataforma e desempactá-lo em um diretório chamado firmware na raiz de um dispositivo de armazenamento removível (drive USB/CD). Você pode encontrar downloads de firmware para sua versão Debian em https://cdimage.debian.org/cdimage/firmware/. Quando o instalador iniciar, encontrará automaticamente os arquivos de firmware no diretório do armazenamento removível e, se necessário, instalará os firmwares necessários.

Em alguns casos, o firmware fornecido em mídias removíveis pode não ser detectado automaticamente (por exemplo, 740503. Nestas situações, vá ao console (Ctrl+Alt+F2) e [[8/mount|monte(8)] manualmente seu armazenamento removível em um um diretório temporário (ou seja, em /media).

Firmware em mídias removíveis e preseeding

Também é possível contornar o processo de pesquisa e instalação do instalador via preseed e fornecer os arquivos de firmware diretamente para o núcleo:

Installation+Archive+USBStick
preseed/early_command="modprobe vfat ; sleep 2 ;
mount /dev/disk/by-label/FIRMWARE /media ;
cp -a /media/firmware /lib"

Uma vez que a rede esteja configuradas, o instalador Debian pode baixar os firmwares dos repositórios.

Firmware após a instalação

isenkram e outras ferramentas podem solicitar a instalação do firmware apropriado e outros pacotes de suporte de hardware quando o hardware está conectado. Esse modo baseia-se principalmente pacotes que declaram via AppStream quais hardwares suportam. Isso pode não funcionar para todos os firmwares, então continue lendo para outras soluções.

Se ainda ver mensagens de console de firmware ausentes quando o initramfs estiver atualizando (por exemplo, sempre que uma atualização do núcleo é aplicada):

W: Possible missing firmware /lib/firmware/i915/skl_guc_62.0.0.bin for module i915

você pode usar apt-file ou a pesquisa de conteúdo de pacotes Debian para procurar pelo pacote que contém os arquivos de firmware, instalá-los e então atualizawr o initramfs:

$ apt-file search skl_guc_62.0.0.bin
firmware-misc-nonfree: /lib/firmware/i915/skl_guc_62.0.0.bin
$ sudo apt install firmware-misc-nonfree
$ sudo update-initramfs -c -k all

Firmware ausente no Debian

Se o firmware ausente não estiver disponível no Debian ou se você ainda vir mensagens de firmware ausentes, mesmo quando já tiver instalado o pacote firmware-* correto, você pode baixar e instalar o firmware a partir do repositório linux-firmware; por exemplo, para o firmware i915:

mkdir firmware
cd firmware
wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/
sudo mv *.bin /lib/firmware/i915/
sudo update-initramfs -c -k all

Localização dos arquivos de firmware

Debian 8 "Jessie" e mais recentes

udev usado no Debian Jessie e posteriores, somente verifica um diretório por arquivos de firmware: /lib/firmware. Consulte 729252 para detalhes.

Debian 7 "Wheezy", Debian 6.0 "Squeeze"

Firmwares são buscados dos seguintes lugares (veja /lib/udev/hotplug.functions do udev e /lib/udev/firmware.agent)

  1. /lib/firmware/$(uname -r) - Firmware fornecido por um pacote, específico para um núcleo.

  2. /lib/firmware/ - Firmware fornecido por um pacote, válido para todos os núcleos.

  3. /usr/local/lib/firmware - Localização para firmwares instalados manualmente.

  4. /usr/lib/hotplug/firmware - Firmware fornecido por um pacote, válido para todos os núcleos.

Lista de firmwares no Debian

Para encontrar qual pacote fornece um dado arquivo de firmware, use esta página de pesquisa:
https://www.debian.org/distrib/packages#search_contents

Firmware/List lista os firmwares distribuídos pelo Debian.

Firmwares de inicialização livres e de código aberto

Outros projetos além do Debian podem fornecer firmwares FOSS para inicializar seu sistema Debian, projetos como o coreboot.

Mantemos uma lista em Firmware/Open - alguns (não todos) estão empacotados no Debian.

Esses projetos oferecem uma alternativa interessante para muitos firmwares BIOS/UEFI proprietários e outros tipos de firmware. Por exemplo, podem fornecer certos recursos de segurança avançados.

Firmware de computador

EFI/UEFI

Encontrado na maioria dos PCs e servidores x86, junto com algumas placas ARM - (wikipedia)

BIOS

Encontrado em antigas máquinas "IBM-PC", geralmente na maioria de PCs normais e servidores que foram produzidos antes de 2011 - (wikipedia)

OpenFirmware

também conhecido como OpenBoot, encontrado em sistemas Sun SPARC, IBM Power, Apple Macintosh baseados em PowerPC, IEEE 1275-1994... (wikipedia)

Coreboot (LinuxBIOS)

Pode ser usado em algumas placas e testado em alguns emuladores - (wikipedia)

PMON2000

Encontrado no Lemote Yeeloong e dispositivos embarcados

Atualizando firmwares

Firmwares podem ser atualizados usando métodos diversos.


CategoryPermalink | CategoryHardware | CategoryProprietarySoftware