MT7601的简述
硬件选型的方案是360wifi二代
现在360wifi已经到三代了,二代还有卖大概十几就可以买到。
芯片是MT7601U
MT是联发科的,这是联发科的一个产品。
最近发现开发板插网线太麻烦了,用wifi方便多了。
WG209是一兼容802.11 b/g/n WiFi标准的USB接口 WiFi模块,基于MT7601单芯片全新架构,集成了CPU和内存,可以在片上运行更多的WiFi功能。
USB2.0高速接口。
数据速率
802.11b:1,2,5.5和11Mbps
802.11g:6,9,12,18,24,36,48,54Mbps
802.11n:20MHz信道:1Nss:65Mbps @ 800GI,72.2Mbps @ 400GI(最大值)。
40MHz信道:1Nss:135Mbps @ 800GI,150Mbps @ 400GI(最大)
WPA_SUPPLICANT的移植
wpa_supplicant只是一个工具(用于连接WIFI的),在开发板的QT/E根文件系统中自带的有wpa_supplicant工具,可以找一找就省去了移植的工作。在大家自带的光盘资料中可以找到。
或者可以自己移植一个,并没有多麻烦。↓↓↓
参考文章:→→文章链接
• WPA_SUPPLICANT工具
– wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支
持 – 实现用户通过socket来编程
• wpa_supplicant的移植网上教程一大堆,对应可以使用的版本就成,
一个不行多试几个。
– wpa_supplicant工具涉及到版本问题。
移植的大概思路
找到驱动源码
-
找到官方开发包
-
关注一下源码支持内核版本和驱动源码版本以及编译平台
- 源码支持内核版本
- 驱动源码版本
- 编译平台
-
Makefile的配置
- 找到了内核源码目录和对应编译器
- 对应平台
- 编译器配置位置
- 内核源码路径设置
- 对WPA_SUPPLICANT的支持:
-
驱动源码中修改两个ID
芯片的配置
- 找到使用文档和配置脚本或者配置程序和配置脚本
WPA_SUPPLICANT工具
配置网络和测试
找到联发科官网:→→联发科官网
找到驱动源码包:→→驱动源码包
下载:源码包:DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
发现需要在Makefile中设置"MODE = STA"
和目标TARGET = LINUX
发现需要在os/linux/config.mk
文件中设置'HAS_WPA_SUPPLICANT=y'
和'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
用来支持wpa_supplicant工具来连接WiFi。
发现需要在Makefile中设置对应支持的平台三星(根据十几情况来设置),Makefile 找到PLATFORM = SMDK
取消其注释,并且注释掉原来的PLATFORM = PC
这个要用#
来注释掉。
把360WiFi插在开发板上获取两个ID:
获得ID是idVendor=148f, idProduct=760b
阅读文档还发现需要复制/RT2870STA.dat
文件到开发板的/etc/Wireless/RT2870STA/RT2870STA.dat
编译mt7601驱动
直接使用Qt的根文件系统,跳过WPA_SUPPLICANT的移植。
1 确认配置
确认os/linux/config.mk
中的'HAS_WPA_SUPPLICANT=y'
和'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'
是否配置。
2 配置文件复制
cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat
3 Makefile修改
#PLATFORM: Target platform
,默认=PC肯定不行。
在49行看到SMDK–这个是三星开发板的意思,这个要配置为SMDK。
操作:
注释掉PLATFORM = PC
取消注释PLATFORM = SMDK
- 搜索
SMDK
:
找到:
ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
endif
改为:(根据自己的内核路径、交叉编译工具来设置)
ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /home/topeet/android4.0/iTop4412_Kernel_3.0
CROSS_COMPILE = arm-none-linux-gnueabi-
endif
4 驱动源码中修改两个ID
idVendor=148f, idProduct=760b
在无驱动的情况下插入usb的wifi,获取两个ID:0x148f,0x760b
源码中搜索USB_DEVICE(
使用命令grep -rn "USB_DEVICE(*" *
添加到源码中
在common/rtusb_dev_id.c:
中添加两个ID
4 编译
编译出的ko文件在os/linux/ko
目录中
make -j2
os/linux/mt7601Usta.ko
编译完成:
在os/linux找到驱动mt7601Usta.ko
文件
测试驱动
拷贝驱动到开发板:
挂载驱动:
挂载成功:
找到360wifi的网卡ra0:
查看当前的网络:
关闭eth0网卡:
打开wifi:
开启成功:
编辑要连接wifi信息的脚本:
ssid是wifi名、psk是wifi密码
连接wifi命令 wpa_supplicant -B -i ra0 -c wpa_supplicant.conf
-B选项可以把wifi挂到后台不占用当前的控制台窗口。
连接成功:
在ping之前要动态获取IP:udhcpc -i ra0
获得wifi路由器分配的IP 192.168.0.106
ping测试:
大型ping百度现场: