2.6.24内核发布,以及ipw3945 vs iwl3945

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid/gid is 1400/1400 is not allowed to access /tmp owned by uid/gid 0/0 in /home/wangxum1/public_html/site/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid/gid is 1400/1400 is not allowed to access /tmp owned by uid/gid 0/0 in /home/wangxum1/public_html/site/includes/file.inc on line 190.

前天的事了,今天才有功夫上来聊聊。对这次发布的内核,有些什么期待呢?就我个人而言,当然是 iwlwifi 无线网卡驱动了,不过老实说,对 x60 的 ipw3945 网卡来说,还是 ipw3945 驱动的功能和速度更好些,iwl3945连接速度比较慢,而且还点不亮LED指示灯,不过很理解,一个用户空间的 regulate daemon 真的那么 eval 么,非要除之而后快。
说到这里,我们聊聊 iwlwifi 和 ipw3945 两款驱动的关系吧,这要从他们的远房哥哥 ipw2100 说起。早年,Intel 推出了平台化战略,也就是著名的迅驰(TM),即给带有 Pentium-M 处理器、Intel 芯片组以及 Intel Pro/Wireless 2100 (ipw2100) 802.11b 无线网卡的笔记本贴迅驰 (Centrino) 标志,缺一样就没有这个标志,于是,Intel 的无线网卡作为后来者几乎一统笔记本的天下。
当时,Intel 发布时间非常紧张,并没有同步推出无线网卡的 Linux 驱动,这引起了 Linux 界的比较大的不满,不过 Intel 还是承诺会很快提供驱动的。和 NVidia 不同,比 AMD/ATi 更是不知道强多少,Intel 在驱动方面相当的大气,很快就支持了开源的 ipw2100 项目,提供了大量的代码和开发支持,可以看出,这些开源项目的主要贡献者都是来自Intel的,2100之后,又衍生了 ipw2200/3945,分别支持不同型号的 Intel 无线网卡。
ipw2100 在发布的时候就可以分为两个主要部分,2100 网卡部分和802.11通用协议栈部分(rf_kill部分先暂且不提)。80211协议栈部分也可以被其它项目用来支持其它无线局域网相关的驱动开发。
早年的无线网卡的很多mac层操作都是在firmware里完成、在网卡上运行的,不过随着时间的推移,功能越来越多,很多功能都逐渐转移到操作系 统内的驱动来完成,有别于在网卡上运行的代码,这部分 mac 代码被称为 ieee80211-softmac,这就是 softmac 的由来,不过,由于这部分的 softmac 是逐步累积到 ieee80211 之上的,其代码的结构并没有最初的统筹设计,因此开发者们都在筹划一个新的模块化、易于添加新功能的架构,这就是d80211,随后改称 mac80211,所以,不要误认为和 softmac 相对应的 mac80211 是 hardmac 哦,两者只是架构不同而已。
对于 Intel 的 ipw 无线网卡来说,这一变化发生在 3945 身上,当初 ipw3945 已经即将发布,不过由于FCC的规定的变化,需要添加一些新的功能(具体参考 iwlwifi 网站的介绍),时间原因驱动架构很难调整了,于是就不得已引入了一个用户态的 regulator,也就是 ipw3945d,当然,这是让开发者们很懊恼的一件事情,后来,在 mac80211 的基础上,又开发了 iwlwifi,它支持 ipw3945/4965 无线网卡,具有更漂亮的架构,理论上说也是更好的性能,同时 ipw3945 驱动的开发也就同时停止了。
不过,iwlwifi/mac80211 还相当年轻,too young, sometimes naive,所以,我倒是觉得,尽管目前 2.6.24 之中的 iwlwifi 比起前一段 debian developer们 backport 到 2.6.23 的 iwlwifi 驱动已经成熟了不少,但还是推荐能用 ipw3945 的同学们继续用这个,一个用户态的 regulator 也不过如此嘛。