第5季:海思平台USB WIFI无线网卡移植(1)

1 海思平台上USB WIFI移植概述

1.1 移植WIFI背景

(1)必要性:家用camera很多需要wifi联网功能
(2)WIFI接口:SDIO or USB

1.2 移植的起点

(1)基于我的 嵌入式Linux小项目专栏中 《USB WIFI网卡在S5PV210上的移植和使用最全攻略(1-2)》文章,欲了解更多的原理知识与技术细节,请阅读这篇文章,本篇文章重操作。

(2)基于USB WIFI网卡官方移植匹配后的驱动来移植

(3)基于海思SDK中已经编译过的内核源码树来编译驱动

(4)使用的模块:联发科的MT7601U

1.3 本季文章安排

(1)HI3518E+WIFI做AP,PC做sta,实现局域网内ortp视频传输

(2)HI2518E+WIFI做sta,PC做sta,外部路由器做AP,实现局域网内ortp视频传输

(3)HI2518E+WIFI做sta,PC做sta,外部路由器做AP,实现全程无线调试(彻底不用有线网卡)

AP模式: Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般
的无线路由/网桥工作在该模式下。AP和AP之间允许相互连接

Sta模式: Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到AP,一般
无线网卡即工作在该模式。

2 AP模式USB WIFI驱动移植

用到的网卡资料:

链接:https://pan.baidu.com/s/1YLCEuQjZ9dvZAwIhPXrdwA?pwd=x0sa 
提取码:x0sa 
--来自百度网盘超级会员V4的分享

其实ap和sta中的源码是一样的,但由于要实现不同的功能,进行不同的修改,所以准备的了两份,放在不同的目录中

2.1 源码

(1)从上述链接中下载源码包到本地,将其复制到ubuntu中的某个目录进行开发

tar -jxvf MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2

在这里插入图片描述
大家去MTK官网下载这个模块的资料,发现只有一份代码,没有ap、sta之分,是将二者合并在了一起,这个模块的源码包有很多个版本,我们这里使用的这个版本是将ap、sta分开的。

2.2 修改移植

(1)include/rtmp_def.h中1627行左右,修改网络名始终为:wlan

cd MT7601U_LinuxAP_3.0.0.1_20130802
vim include/rtmp_def.h

在这里插入图片描述
原本安卓是wlan,linux是要用ra,我们进行了修改。如果提示文件不可修改,通过chmod命令修改文件权限后再进行修改。

(2)使用提供的Makefile替换掉原来的Makefile,百度网盘中提供了一份,但是内核源码树的路径可能和你的路径不同,需要修改,我的路径:
/home/bsp/hisilion/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/kernel/linux-3.4.y 108行
除了内核源码树的路径外,423行的位置的挂载目录,也需要根据你自己的路径进行修改。

我们先make clean,再make进行编译,出现以下报错,找不到头文件,修改相应的配置文件添加头文件目录,即第(3)步。编译时若有些文件因为权限无法操作,可进入root用户编译,但需注意交叉编译链可能找不到,需导出环境变量:source /etc/profile
在这里插入图片描述
(3)./os/linux/config.mk中添加EXTRA_FLAGS
在这里插入图片描述

再次make,编译通过。

(4)修改Makefile或者手工复制xx.ko到/mnt/hisilion_nfs中,这里的目录是nfs挂载的目录
在这里插入图片描述
再次make,至此结束。
在这里插入图片描述

3 AP模式USB WIFI传输视频实战

3.1 部署USB WIFI驱动使之工作为AP

(1)在开发板端先lsusb,然后插入USB WIFI模块,再lsusb,通过前后打印信息的差异从而确认模块被识别了
在这里插入图片描述
(2)在开发板中部署 /etc/Wireless/RT2870AP/RT2870AP.dat,并修改以下几个配置项(这个文件是在源码包中提供的,我们复制到开发板这个目录下,若无这个目录手动创建:mkdir /etc/Wireless/RT2870AP/ -p)

在这里插入图片描述
如果想修改热点的名称和密码,可以修改RT2860AP.dat这个文件

SSID=MT7601AP_WPA(这里的名字是在pc机上看到的连接ssid名)
AuthMode=WPA2PSK(验证模式)
EncrypType=TKIP;AES(加密方式)
WPAPSK=1234567890(这个是密码)

(3)insmod xx.ko安装USB WIFI驱动模块
在这里插入图片描述
(4)ifconfig -a看是否有wlan0

(5)ifconfig wlan0 up, ifconfig wlan0 192.168.0.100

(6)ifconfig查看,确认wlan0工作正常
在这里插入图片描述
(7)用PC或手机的WIFI搜索看一下,是否有一个名为:MT7601AP_WPA的网络了,有了就成功了

3.2 测试用例准备

(1)ORTP版本的sample,common/sample_common_venc.c中,
修改LOCAL_HOST_IP为192.168.0.30

(2)make clean,make #清理并重新编译
make时,出现错误,请查看  《第3季:ORTP库局域网图传和VLC实时预览》的介绍

(3)复制得到的sample_venc到/mnt/hisilion_nfs中

3.3 测试实验

(1)开发板端:cp /mnt/sample_venc /home/ 然后cd /home(我们的有线网络还是通的可以工作的,所以开发板依然挂载在ubuntu)

(2)拔掉网线(此时也可以重启下开发板以彻底消除前面的影响)

(3)PC端WIFI连接 MT7601AP_WPA,输入密码 1234567890

(4)PC端设置无线网络的静态IP地址为:192.168.0.30
打开控制面板:
在这里插入图片描述
在这里插入图片描述
注意:这里的配置是为了完成实验,实验完成后,记得改回来,负责你的电脑就不能使用无线网了。
在这里插入图片描述
要把下面这个设置打开,不然是无法成功的:
在这里插入图片描述
(5)PC端cmd去ping 192.168.0.100,或者反过来开发板端ping PC的无线IP

(6)开发板端执行 ./sample_venc

(7)PC端打开vlc播放器,使用第3季中的sdp配置,注意c=IN IP4 192.168.0.100,就能播放了。

注:
使用无线网络时:
windows:	192.168.0.30
AP:		192.168.0.100
ubuntu:	192.168.0.50	(ubuntu的IP现在可以不管)

使用有线网络时:
windows:	192.168.1.10
开发板:     192.168.1.20
ubuntu:	192.168.1.141
  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值