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.
Contents
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:
Assume-se que os arquivos de firmware necessários estão em um diretório chamado firmware em uma partição FAT formatada com mkfs.vfat e rotulados como FIRMWARE.
A seguinte adição é feita na linha de comando do núcleo no instalador. É um único comando, mas foi quebrado aqui para legibilidade. Pressione TAB quando a escolha de instalação é destacada para tornar a linha de comando visível. Uma variação nesta técnica é apresentada aqui.
Installation+Archive+USBStick preseed/early_command="modprobe vfat ; sleep 2 ; mount /dev/disk/by-label/FIRMWARE /media ; cp -a /media/firmware /lib"
NetbootFirmware - Firmware para boot via rede.
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)
/lib/firmware/$(uname -r) - Firmware fornecido por um pacote, específico para um núcleo.
/lib/firmware/ - Firmware fornecido por um pacote, válido para todos os núcleos.
/usr/local/lib/firmware - Localização para firmwares instalados manualmente.
/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) |
Encontrado em antigas máquinas "IBM-PC", geralmente na maioria de PCs normais e servidores que foram produzidos antes de 2011 - (wikipedia) |
|
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