MT7601WIFI-Linux驱动总结

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百度现场:

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lazy_Goat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值