从https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi:
iwlwifi 是英特尔当前无线芯片的无线驱动程序。
来自https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi#firmware
Device Kernels Module Firmware
Intel® Wireless WiFi 5150AGN 2.6.29+ iwldvm iwlwifi-5150-ucode-8.24.2.2.tgz
Run Code Online (Sandbox Code Playgroud)
其中说的iwldvm是“模块”。
驱动程序不是模块吗?
wifi 适配器的无线驱动程序(模块)是 iwlwifi 还是 iwldvm?
wext 也是某种驱动程序模块,但为什么没有在lsmodor 中列出lshw?另见https://unix.stackexchange.com/a/198509/674
谢谢。
并非每个模块都是驱动程序,驱动程序可以使用多个模块。有关更多信息,请阅读此 U&L 线程。
至于你的具体问题:
$ modinfo iwlwifi | grep description
description: Intel(R) Wireless WiFi driver for Linux
$ modinfo iwldvm | grep description
description: Intel(R) Wireless WiFi Link AGN driver for Linux
$ modinfo iwldvm | grep depends
depends: iwlwifi,mac80211,cfg80211
Run Code Online (Sandbox Code Playgroud)
如您所见,该iwldvm模块属于一组非常特定的英特尔 WiFi 芯片的驱动程序。它经过优化,可与 WiFi Link AGN 设备配合使用,效果最佳。
但是,它说取决于 iwlwifi,相反,它只是声明为“英特尔 WiFi 驱动程序”,因此它是一个通用驱动程序,应该适用于许多英特尔 WiFi 设备。
我不知道英特尔驱动程序的确切工作方式,但我可以想象以下内容:
iwlwifi 启用与 WiFi 设备的基本交互。如果您只有 iwlwifi,您的 WiFi 可以完美运行,减少或根本不运行。
对于后两种情况,这里有一个更具体的模块,比如 iwldvm,它包含了更复杂任务所需的操作。有了这个驱动,WiFi 应该可以正常工作,但它仍然需要 iwlwifi。