来自Wi-Fi专家的声音

 

无线模块厂商的工作内容(2)

撰写于2011年4月15日
作者:silex Wi-Fi专家

上期我们以“可支持无线局域网的嵌入式设备”为主题,主要从硬件方面介绍了silex technology的“工作内容”。 这次,作为第2期,我们将从软件方面介绍“无线模块厂商的工作内容”。
假设您已经解决了我在上一篇文章中介绍的许多困难并完成了可支持无线的硬件。而下一个问题是获取驱动程序让它运行。如果是市售的 PC 无线局域网模块,它的PC(Windows 或 Mac)的驱动程序会由制造商提供,但是如果是嵌入式操作系统的驱动程序呢?

首先,可以默认为芯片或模块制造商不会提供 iTRON 和 VxWorks 等专用嵌入式 RTOS 的驱动程序。虽然有时会提供用于 Windows CE 的驱动程序,但是一般情况下不会提供。
但是 Linux 呢?这通常不是由制造商提供的,您必须从开源项目中下载和使用(预计)与您的产品相匹配的驱动程序。但是,即使是同一个 Linux,驱动程序 API 的规格也因内核版本而不同。特别是自从内核版本 2.6.26 以来,无线 API 已被扩展 (nl80211),因此以此为目标的驱动程序是无法在 2.6.24 之前的内核上运行的。但是,也不是版本越新越好,这也是Linux内核麻烦的地方,在2.6.24中确认过运行的驱动,但是在2.6.38的版本下运行后,会有部分功能无法使用。

此外,由于根据CPU体系结构不同而驱动的运行操作也不同,因此无法保证已确认适用于英特尔 PC 的驱动程序也可以在其他 CPU(ARM、MIPS、PowerPC、SuperH 等)中正常运行。“它可能会运行”,但并不意味着会有人对各个组合事例负责并验证运行情况。而如果采用开源驱动,原则上需要用户自行负责运行验证。
那么,“无线局域网功能的操作验证”具体是指什么呢?我觉得只要能连接到接入点并收发数据包就可以了,而所谓的“接入点”,世界上的机型也是多如繁星。那么到底使用哪一款才可以被认为是已经通过“常识范围内的互操作性”验证呢。无线局域网有 11b, 11g, 11a, 11n, 11ac, 11ax等的多种通信模式,也有WEP, WPA/TKIP, WPA/AES, WPA2 等的加密方式,还有Open, Shared, EAP 等的认证方式。EAP进一步细分为TLS, PEAP, TTLS, LEAP, FAST等协议。一想到需要确认所有组合的话会感到郁闷,更不要说只对验证对象的接入点机种实施重复验证的作业了。

好吧,让我们尽力进行验证工作。如果没有问题,那是最好的,但可能会出现“EAP-LEAP 无法与公司 A 的接入点 B 结合使用”之类的问题。 但是,当您寻求帮助咨询时,接入点的制造商可能会说“这一定是芯片或驱动程序问题”,如果询问芯片制造商可能会被说“这是接入点问题”。
如果是开源的驱动的话,当联系到社区,有人可能会说“哦,原来如此”并告诉你答案,当然也不保证一定会得到解答。如果是使用特殊的CPU或者内核中有过改动的话,“有人知道内容且帮助你”的机会也会小很多。当然,由于是开源系统,所以可以自己修改好的话是最好的,但是修改好系统是否一件非常简单的事情,那就不好说了。

当涉及到无线安全认证时,还有另一个复杂因素。上述所说的WPA或EAP、WPS(WiFi Protected Setup)等的功能并不是在芯片或者驱动之中统一实现,有时还可能实装在操作系统,或者作为中间件安装在操作系统和驱动之间。Linux一般会使用 hostapd 或 wpa supplicant 等的开源中间件,这些中间件也并不是验证过所有的内核版本和驱动兼容运行。使用中间件的安全动作如果出现问题,也是需要原因的排除和实施修改作业。

在此总结一下,作为无线模块厂商的工作是:

·将驱动程序移植到非标准操作系统
·中间件和驱动的集成和测试
·多种模式组合的情况下的驱动运行验证

在某些情况下,可在以上的工作内容中另添加“无线设置界面的设计”等有用户交互界面,或“漫游性能的高速化”、“WiFi 非标准运行模式的对应(高速点对点模式等)”等的定制化开发的工作内容。
在本期文章当中,多次使用了“有可能是/也许”这类词语,这种用法并不是猜测或是危险词语,而是基于实际业务中所遭遇的一些经验。那么无线局域网技术是国际标准的规格,而为什么有着这事态呢,应该也有很多人带有这种疑惑吧。下期我们会讲这些方面的内容。

下一篇:「无线模块厂商的工作内容(3)」