USBwifi移植
姓名:张猛
引用自:http://www.embedu.org/Column/Column911.htm
【嵌牛导读】:要实现视频信息的实时无线传输,这里用到了wifi模块,wifi模块采用的是联发科的MT7601U模块,在USBwif模块编译、加载过程中还是遇到了很多问题,这里也是通过分享自己看过的帖子,对驱动编译和加载过程的一个梳理吧。
【嵌牛鼻子】:wifi USB 驱动 加载
【嵌牛提问】:拿到一个陌生的wifi驱动,如何看懂其代码的大概意思,并能修改使得它能在自己的平台上能顺利编译生成.KO驱动文件,并能被海思平台识别。
【嵌牛正文】:
1.购买模块的时候,卖家一般都会给提供驱动文件,以及一些其他的资料,这里卖家提供了两个驱动包,由于Mt7601U支持两种模式,AP模式和STA模式,但是这两个模式并不能同时加载,我们选择加载的是STA模式。
接下来我的操作就是参考下面的内容
将USB-Wifi_driver拷贝到工作目录中。
解压驱动源码包
tar -jxvf USB-Wifi_driver.bz2
解压完后可以看到目录DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
![](https://img.haomeiwen.com/i7897738/28520e0f79aecf4f.png)
2. 移植RT2780驱动
2.1 修改Makefile
2.1.1修改DPO_MT7601U_LinuxSTA_3.0.0.4_20130913目录下的Makefile
viMakefile
修改49行中的
#PLATFORM = SMDK
为
PLATFORM = SMDK
![](https://img.haomeiwen.com/i7897738/77a054acd84f357c.png)
2.1.2在275行,修改linux源码目录和交叉工具链
275 ifeq ($(PLATFORM),SMDK)
276 LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
277 CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
278 endif
改为
275 ifeq ($(PLATFORM),SMDK)
276LINUX_SRC = /home/linux/work/4412/linux-3.0-fs4412_V3
277 CROSS_COMPILE = arm-cortex_a8-linux-gnueabi-
278 endif
![](https://img.haomeiwen.com/i7897738/d10928816eb7b9fc.png)
2.1.3修改include/rtmp_def.h文件中第1604行
![](https://img.haomeiwen.com/i7897738/bdabec9085e79dc9.png)
将上图中1604行和1605行中的ra改成wlan
改完如下图所示:
![](https://img.haomeiwen.com/i7897738/bf26c92f564d1568.png)
2.1.4查看os/linux/config.mk文件
确保config.mk文件中WPA_SUPPLICANT配置如下图所示。
![](https://img.haomeiwen.com/i7897738/1e429157c4dea246.png)
3编译源码
在DPO_MT7601U_LinuxSTA_3.0.0.4_20130913目录下执行以下命令编译源码
make clean
make -j2
编译成功后如下图所示
![](https://img.haomeiwen.com/i7897738/b673b71b5c335398.png)
其中生成的mt7601Usta.ko文件即是我们所需要的驱动程序
![](https://img.haomeiwen.com/i7897738/5eb0d8f67827ffc4.png)
将/home/linux/work/4412/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/mt7601Usta.ko拷贝我们的根文件系统中(开发板的根文件系统)。
4.拷贝所需的数据文件RT2870STA.dat
在开发板的根文件系统中创建目录/etc/Wireless/RT2870STA/(注意,此目录为开发板的根文件系统)
mkdiretc/Wireless/RT2870STA/ -p
将源码目录中的RT2870STA.dat(如下图所示)拷贝到刚才创建的etc/Wireless/RT2870STA/目录中
![](https://img.haomeiwen.com/i7897738/8eb1b4d103699ad9.png)
5.测试
请确保以上几步已经完成
5.1插上USB-Wifi模块
将USB-Wifi模块插到开发板的USB接口上,可以在端口上看到如下打印信息
![](https://img.haomeiwen.com/i7897738/33018feea27e70e0.png)
5.2加载USB-Wifi模块
加载驱动程序mt7601Usta.ko
在开发板上执行以下命令
insmodmt7601Usta.ko
加载过程如下图所示
![](https://img.haomeiwen.com/i7897738/4cb6bafb1e641be2.png)
加载成后如下如所示
![](https://img.haomeiwen.com/i7897738/a4cdaf722c7052e8.png)
5.3配置wlan0网络
在开发板上执行以下命令
ifconfig wlan0 up
![](https://img.haomeiwen.com/i7897738/b959c253bdc1780c.png)
![](https://img.haomeiwen.com/i7897738/285b909da7960be5.png)