嵌入式 Linux 下移植 MT7601 无线 WIFI(网卡) 驱动
一、前言
本篇文章要的做的事情是,移植一款 USB WIFI 芯片的驱动到嵌入式 Linux 环境下,让嵌入式开发板能够通过这款 USB WIFI 实现上网,说白了就是安装无线网卡驱动。
这款 USB-WIFI 无线网卡型号是:MT7601,这是 Ralink(雷凌科技) 出品的芯片,是一款 USB 协议的 WIFI。目前这款芯片被很多厂家制作成随身 WIFI 使用了,比如:百度的小度 WIFI,小米的 WIFI,360 的随身 WIFI 一代等等,都是采用这款芯片。在电脑上使用当然很简单,直接下载官方驱动一安装就可以使用。如果要在嵌入式 Linux 环境下使用,就没有现成的驱动可以安装,需要自己写,自己写不出来怎么办? 那就看官方有没有源码,刚好 MT7601 这款芯片在官网上提供了 Linux 下源码下载链接。然后就有了这篇文章。 将源码下载下来要根据自己的开发环境进行配置源码然后编译,生成驱动 ko 文件之后,安装就行了。 光安装驱动还不行,还需要安装移植 WIFI 的管理工具,然后才方便操作 WIFI 做一些事情:比如:扫描周边热点,列出信号强度和名称,连接指定 WIFI,指定连接协议等等。
二、移植流程
步骤 1: 下载官方的驱动源码,移植修改编译工具,arm-linux-gcc。 -------生成一个文件 xxx.ko:

步骤 2: 编译、安装相关的无线 WIFI 管理工具: 无线加密协议、WIFI 启动工具、WIFI 扫描工具……
在解压的源码目录下编译源码,生成驱动文件。 (需要在解压的顶层目录下输入 make) 编译成功后,会在 os/linux/目录下生成 mt7601Usta.ko 文件。

步骤 3: 配置动态 IP 分配功能。
步骤 4: 配置 UBOOT 环境变量,设置开发板本地挂载启动。
UBOOT 环境变量设置:


三、安装 WIFI 管理工具,启动 WIFI 连接进行测试
WIFI 环境配置、连接热点上网的流程总结:
详细步骤如下:
(1) 安装 WIFI 驱动,同时将 360WIFI 插到开发板的 USB 口上

(2)查看所有的网卡

(3)启动网卡

(4) 扫描周边 WIFI(热点)

(5)通过命令,启动网卡,并连接指定的热点

(6)查看 WIFI 当前连接的信息

(7)向路由器请求动态分配一个 IP 地址

(8)测试 WIFI 连接外网

四、socket 编程测试代码(TCP 服务器代码)
为了直观的测试 WIFI 是否能够正常联网通信,这里编写一份 TCP 服务器代码,在局域网的电脑上打开网络调试助手进行连接进行数据收发。
版权声明: 本文为 InfoQ 作者【DS小龙哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/b96309703629443de14d1352e】。文章转载请联系作者。
评论