USB无线网卡驱动开发流程

来源:互联网 发布:夜访吸血鬼小说 知乎 编辑:程序博客网 时间:2024/05/01 21:18
       咋一接手USB无线网卡的驱动开发任务,非常迷茫,看起来这东东挺难似的,一时无从下手;实际认真做完了,倒觉得一般,其实如今LINUX社区里已有了国外众多知名厂商的各款无线网卡驱动源码,要做个适用自己嵌入式板子的某款无线网卡驱动,我们的大部分工作却在于源码的修改+调试。如下记录一下我的开发步骤,希望对也在进行相同开发任务的兄弟们有所帮助。

 

一,            我的开发平台

1,  目标机  Ucdragon PXA270 开发板(Intel XSCALE 处理器,嵌入式Linux 2.6.9)

2,  网卡  Netgear WG111 v2,芯片 RTL8187(台湾RealTech,Cop) 支持802.11b/g,USB2.0

3,  主机:Operation System:ReadHat 9.0(kernel 2.4.20)+Windows XP

          cross_complier:arm-linux-gcc,cross-3.3.2

         

二,             驱动代码

1,              RTL8187 for linux驱动RTL8180-0.21下载地址 http://downloads.sourceforge.net/rtl8180-sa2400/rtl8180-0.21.tar.gz?modtime=1113519789&big_mirror=0

2,              拷贝至LINUX系统,解压开包,内含主要文件:

(1)       ieee80211   提供内核支持802.11g的模块,提供WEP数据安全通信协议模块,内有些许bug。一边调试一边修改,至无错误之后,用cross-3.3.2交叉编译,可得到如下几个模块文件,动态加载至目标机运行。

ieee80211_crypt_rtl.ko

ieee80211_crypt_rtl_wep.ko

ieee80211_crypt_rtl_tkip.ko

ieee80211_crypt_rtl_ccmp.ko

ieee80211-r8180.ko

r8187.ko

(2)       beta-8187   提供RTL8187的驱动模块。调试时注意一点:模块链接阶段引用了从 ieee80211文件输出至内核的一些EXPORT_SYMBOL,在编译阶段会发现若干undifiend 变量的警告,暂时忽略它们,将rtl8187.ko加载至内核后,警告自然消除了。

(3)       编译目标板的嵌入式LINUX内核时,在make menuconfig中一定要注意选上kernel对80211的支持,即打上wireless network里的选项。

三,             配置工具

  为配置网络功能需要一些配置工具eg:,iwconfig,iwlist,iwspy ……,但我的目标板根文件系统中没有安装。此时需要自己下载源代码, 交叉编译成可执行文件,下载至目标机运行;本过程注意的是:配置工具的运行依赖于一些库,可选择编译成动态共享库或者静态库。共享库的制作,需要在makefile中设置一下库的加载路径;而静态库的制作则相对简单,直接将库一起编译,但以体积的牺牲为代价了。

我们所使用的工具包是:wireless_tools.26.tar.gz,内含iwconfig ,iwlist, iwspy, iwpriv, iwgetid, iwevent, iwlib等文件。

下载地址:http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.26.tar.gz

                                                                                                                                                       zhaoyang  2006-12 

                           本文版权属于zhaoyang所有,转载请注明出处,欲与作者交流,请至 youta.tsen@gmail.com

原创粉丝点击