iwlwifi、iwldvm或wext是无线驱动程序吗?

https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi中得知:
iwlwifi是Intel目前无线芯片的无线驱动程序。
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

这段文字说的是 iwldvm 是一个“模块”。

  1. 驱动程序不就是一个模块吗?

  2. 无线网卡的驱动程序(模块)是哪个,iwlwifi 还是 iwldvm?

  3. wext 也是一种驱动程序模块吗?为什么它在 lsmod 或者 lshw 中没有列出来?详见 https://unix.stackexchange.com/a/198509/674

谢谢。

1个回答

不是每个模块都是驱动程序,而驱动程序可以使用多个模块。有关更多信息,请阅读this U&L thread
至于您的具体问题:
$ 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

正如您所见,iwldvm模块属于一个非常特定的英特尔WiFi芯片驱动程序。它被优化为与WiFi Link AGN设备最佳配合。

然而,它要求依赖于iwlwifi,相反,它只是简单地称为“英特尔WiFi驱动程序”,因此它是一个通用驱动程序,应该可以与许多英特尔WiFi设备一起使用。

我不知道具体的英特尔驱动程序工作方式,但我可以想象以下情况:

iwlwifi使得与WiFi设备的基本交互成为可能。如果您只有iwlwifi,您的WiFi可能会完全正常工作、减少功能或根本无法工作。

对于后两种情况,就需要更具体的模块,比如iwldvm,其中包含了执行更复杂任务所需的操作。有了这个驱动程序,WiFi应该能正常工作,但仍需要iwlwifi。


谢谢!wext是什么呢?它也是一种驱动模块吗,只是没有在lsmod中列出来?请参考http://unix.stackexchange.com/a/198509/674。 - Tim