如果我安装非自由 Linux 发行版,是否所有非自由固件都会复制到我的系统中?

如果我安装非自由 Linux 发行版,是否所有非自由固件都会复制到我的系统中?

我想知道如果我安装非自由 Linux 发行版,是否所有固件都会复制到我的 PC 上。我的意思是,即使我的电脑不使用 WiFi 适配器、键盘等所有设备的固件,是否也会将这些设备复制到我的电脑上?这个不必要的固件会导致内核膨胀/减慢速度吗?

答案1

通常,当您安装 Linux 发行版时,固件会安装到/lib/firmware.当设备需要固件时,Linux 内核会在该目录中查找正确的固件文件并将其加载到设备中。

这取决于安装的固件文件的发行版(默认情况下),但通常这些固件文件针对不同的硬件供应商分为不同的包中。例如,Debian 有各种包含固件文件的软件包,其中大部分(例如firmware-iwlwififirmware-realtekfirmware-amd-graphics)来自上游 linux 固件存储库。有关来自此存储库的非免费固件包的列表,请参阅firmware-nonfree源码包。该存储库中的免费固件文件全部打包在一个firmware-linux-free包中(从firmware-free源码包

通常,Linux 安装程序会询问您是否要安装非免费固件,或者他们甚至可能会根据您的硬件自动检测要安装的固件。

例如,如果您使用 Debian 非自由安装程序,如果设备驱动程序请求不可用的固件,debian-installer 将显示一个对话框,提供加载缺少的固件的对话框。如果选择此选项,debian-installer 将扫描可用设备以查找松散的固件文件或包含固件的软件包。如果找到,固件将被复制到正确的位置(/lib/firmware),并且驱动程序模块将被重新加载。

其他一些 Linux 发行版(如 Ubuntu)也在与内核打包的驱动程序中包含非自由二进制 blob。

答案2

关于固件会以某种方式使内核膨胀/减慢的担忧,它被加载一次从磁盘并存储到设备中。之后,内核不再(直接)参与。如今,许多设备都足够复杂,拥有自己的 CPU 和软件,在启动时加载和启动(将其存储在 ROM 中使得无法在不更改物理设备的情况下修复错误/扩展功能)。

相关内容