
Estou tentando liberar espaço na minha partição raiz e /lib/firmware está ocupando muito espaço. Há muitos arquivos para dispositivos que sei que não tenho, mas também há muitos arquivos para dispositivos que não reconheço, então não sei se preciso ou não do firmware.
Existe talvez uma maneira de ver quais arquivos de firmware foram realmente carregados?
Responder1
Vou morder aqui: concordo que há potencialmente muitos arquivos que /lib/firmware
você talvez não precise e, como tal, deve ser possível remover alguns deles.
No entanto, em qualquer caso, isso deve ser feito com cautela e você deve estar preparado para recuperar os arquivos de firmware ausentes por meio de uma inicialização USB ativa ou método semelhante.
Fiz a seguinte lista das pastas com /lib/firmware
mais de 5 MB, só para começar:(Eu removi intel
e intel-ucode
, já que você provavelmente não deveria removê-los)
/lib/firmware/netronome : NIC firmware implementation for Agilio SmartNICs /lib/firmware/amdgpu : AMD GPU firmware /lib/firmware/mellanox : Mellanox Ethernet and InfiniBand NIC firmware /lib/firmware/qcom : Qualcomm device firmware /lib/firmware/mrvl : Marvell device firmware /lib/firmware/ath11k : Firmware for Qualcomm IEEE 802.11ax devices /lib/firmware/i915 : Firmware for i915 Intel GFX Driver /lib/firmware/liquidio : NIC firmware implementation for Marvell Liquidio SmartNICs /lib/firmware/qed : Firmware for QLogic Everest FastLinQ Linux Driver /lib/firmware/mediatek : MediaTak device firmware /lib/firmware/dpaa2 : Firmware for DPAA2 (Data Path Acceleration Architecture Gen2) /lib/firmware/ath10k : Firmware for Qualcomm IEEE 802.11ac devices /lib/firmware/brcm : Broadcom device firmware /lib/firmware/radeon : Firmware for AMD Radeon GPU adapters /lib/firmware/rtw89 : Firmware for Realtek rtw89 devices /lib/firmware/cypress : Cypress device firmware /lib/firmware/ti-connectivity : Texas Instruments device firmware
Eu sugeriria então que você executasse sudo lshw
e examinasse completamente a lista. Se você tiver 100% de certeza de que não possui hardware de um fornecedor específico, eu diria que você poderiamoveressa pasta de firmware. Observe que eu sugeriria que vocêmoverem vez de removê-lo primeiro, para que você possa colocá-lo de volta em caso de problemas.
Por exemplo, acredito que as placas de vídeo são um bom exemplo. Se você tiver apenas uma placa de vídeo NVidia, provavelmente poderá remover o firmware da GPU AMD - e vice-versa. Da mesma forma, para adaptadores de rede sem fio, se você tiver de um fornecedor, provavelmente não terá de nenhum outro fornecedor.
Esteja ciente de que se você decidir alterar seu hardware posteriormente, poderá perder repentinamente alguns dos arquivos de firmware. E é por isso que eu (novamente) sugiro que você não remova nada, mas sim mova-o para outro local.
E, finalmente, esteja ciente de que, durante a execução sudo apt upgrade
, novos arquivos podem ser instalados dentro dele /lib/firmware
. Portanto, você provavelmente deve verificar periodicamente as pastas das quais tem certeza absoluta de que não precisa.
Esta é uma solução elegante?Não.É hacky como o inferno?Sim.No entanto, eu ainda argumentaria que existem alguns casos em que os arquivos podem ser removidos sem qualquer consequência. Certamente não há problema em remover o firmware AMD e Nvidia se você estiver executando o Ubuntu Server apenas com um adaptador gráfico integrado. E provavelmente existem outros cenários semelhantes.
Apenas tenha cuidado e esteja preparado para restaurar arquivos em qualquer caso.
NB: No momento, estou investigando uma maneira de descobrir com segurança quais arquivos de firmware foram acessados desde a última reinicialização - apresentarei um relatório sobre isso em alguns dias...
Responder2
Você pode verificar o firmware usado em seu sistema no log do kernel.
grep firmware /var/log/kernel.log
lhe dará uma boa lista de firmware que foi carregado desde a última rotação de log (pode levar vários dias)
No entanto, desde que postei isso pela primeira vez, aprendi que a maior parte do firmware será carregada pelo initrd e que geralmente não gera um arquivo de log do que está fazendo.