USB-Wifi驱动移植(FS_4412)

作者:刘老师,华清远见教育科技集团讲师。

FS_4412可以同链接USB-Wifi模块实现无线上网功能,本章节主要描述了如何在FS_4412开发板上移植USB-Wifi模块的驱动和相关的WPA加密工具。

1.获取RT2780驱动

我们采用的USB-Wifi模块使用的是RT2780芯片,相关的驱动源码在\Cortex-A9\移植部分\Wifi目录下的USB-Wifi_driver。或者从官方自行下载,进入网址//www.mediatek.com/en/downloads/下载所需的驱动

将USB-Wifi_driver拷贝到工作目录中。

解压驱动源码包

tar -jxvf USB-Wifi_driver.bz2

解压完后可以看到目录DPO_MT7601U_LinuxSTA_3.0.0.4_20130913

2. 移植RT2780驱动

2.1 修改Makefile

2.1.1修改DPO_MT7601U_LinuxSTA_3.0.0.4_20130913目录下的Makefile

viMakefile
        修改49行中的
        #PLATFORM = SMDK
        为
        PLATFORM = SMDK

改前如下图所示

改后如下图所示:

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

修改前如图:

修改后如图:

2.1.3修改include/rtmp_def.h文件中第1604行

将上图中1604行和1605行中的ra改成wlan

改完如下图所示:

2.1.4查看os/linux/config.mk文件

确保config.mk文件中WPA_SUPPLICANT配置如下图所示。

3编译源码

DPO_MT7601U_LinuxSTA_3.0.0.4_20130913目录下执行以下命令编译源码

make clean
        make -j2

编译成功后如下图所示

其中生成的mt7601Usta.ko文件即是我们所需要的驱动程序

/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/目录中

5.测试

请确保以上几步已经完成

5.1插上USB-Wifi模块

将USB-Wifi模块插到开发板的USB接口上,可以在端口上看到如下打印信息

5.2加载USB-Wifi模块

加载驱动程序mt7601Usta.ko

在开发板上执行以下命令

insmodmt7601Usta.ko

加载过程如下图所示

加载成后如下如所示

5.3配置wlan0网络

在开发板上执行以下命令

ifconfig wlan0 up

通过ifconfig命令查看网络设备信息

如果前面步骤都成功,则应该出现类似下图所示的情况