对于外接USB设备,为什么Linux除了驱动还需要固件?

Kas*_*ara 7 firmware linux usb drivers

几天前,我试图在旧版本的 linux 中安装 USB WiFi 适配器。我安装成功了。

但是我遵循的过程要求我不仅安装驱动程序,还需要安装该适配器中使用的芯片的固件。

我搜索了固件并了解到固件是在硬件上运行的软件。但是适配器中预装的固件不就像路由器中的固件一样吗?为什么如果它没有预装在芯片中?

Mar*_*iae 7

Ubuntu 维基

许多设备都有两个必不可少的软件部分,使它们能够在您的操作系统中运行。第一个是工作驱动程序,它是让您的系统与硬件对话的软件。第二个是固件,它通常是一小段代码,直接上传到设备以使其正常运行。您可以将固件视为对设备内部硬件进行编程的一种方式。事实上,几乎在所有情况下,固件都被视为硬件,因为它是一个黑匣子。没有随附的源代码随它自由分发。

固件通常由开发硬件设备的公司维护。在 Windows 领域,固件通常是您安装的驱动程序的一部分。它通常不被用户看到。在 Linux 中,固件可以从多个来源分发。一些固件来自 Linux 内核源。其他拥有再分发许可证的来自上游。不幸的是,有些固件没有允许免费重新分发的许可证。

固件与 BIOS 软件有一个重要的共同特点:它不能自我更新。它是完全闭源的(与开源相反),可以通过一些程序重新安装,但下游用户既不能检查也不能纠正。


小智 5

主要原因是厂商希望能够在推出产品后更改其USB设备的固件,因为...

  • ...固件可能有问题
  • ...管辖权可能会改变
  • ...供应商希望以后能够支持更多功能
  • ...现场可能会出现兼容性问题

因此,越来越多的 USB 设备仅配备引导加载程序并需要固件上传。

  • ...他们不想花钱购买设备上的内存来存储固件 (2认同)