5.海思平台上USB WIFI的移植实现局域网无线视频监控

目录

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

1.1、移植WIFI背景

1.2、移植的起点

1.3、实验案例

2.AP模式USB WIFI驱动移植

2.1、源码

2.2、修改移植

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

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

3.2、准备测试用例

3.3、测试实验

4.USB WIFI做sta模式的驱动移植和部署

4.1、源码修改

4.2、部署驱动

5.移植wpa_supplicant

5.1、源码下载

5.2、移植openssl

5.3、移植wpa_supplicant

6.USB WIFI做sta模式的ORTP视频传输实验

6.1、部署wpa_supplicant

6.2、sta模式的USB WIFI设置

6.3、ORTP视频传输测试

7.纯WIFI无线调试环境的搭建

7.1、原理

7.2、实战


 

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

1.1、移植WIFI背景

(1)必要性:家用camera很多需要wifi联网功能

(2)WIFI接口:SDIO or USB

1.2、移植的起点

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

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

1.3、实验案例

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

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

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

2.AP模式USB WIFI驱动移植

2.1、源码

链接:https://pan.baidu.com/s/1JI-bMboFRbUk6dwR8y6myQ?pwd=0000 
提取码:0000

(1)复制到ubuntu中实验目录

(2)解压进入

2.2、修改移植

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

205db049d07a4704929364a320dee237.png

(2)使用提供的Makefile替换掉原来的Makefile

(3)./os/linux/config.mk中添加EXTRA_FLAGS

(4)修改Makefile或者手工复制xx.ko到/home/aston/rootfs中

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

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

(1)先lsusb,

113c7200845546febd938a5bfdc254f8.png

然后插入USB WIFI模块,

d731eacabab44d2a8585d7a149884d0b.png

再lsusb,

4c3e1aef3c504a75a833033cde2d6687.png

确认模块被识别了

(2)在开发板中部署 /etc/Wireless/RT2870AP/RT2870AP.dat(驱动执行时会加载这个配置文件),

af83197d5eb141bebcdc2c7c0eb5bc19.png

并修改以下几个配置项

SSID=CHM_MT7601AP_WPA(这里的名字是在pc机上看到的连接ssid名)

AuthMode=WPA2PSK(验证模式)

EncrypType=TKIP;AES(加密方式)

WPAPSK=1234567890(这个是密码)

(3)insmod xx.ko安装USB WIFI驱动模块

99c27560338a4e04bb69af76d1ce2c04.png

lsmod查看装载了的驱动模块

f2d8022d66ea4c7e9c176fe543b525ec.png

(4)ifconfig -a看是否有wlan0

edb6bef91efa4aa6ab7542692a74a1b7.png

(5)ifconfig wlan0 up, ifconfig wlan0 192.168.0.100

(6)ifconfig查看,确认wlan0工作正常

8c1e8658a787487da7c7b193da7dcc54.png

(7)用PC或手机的WIFI搜索看一下,是否有一个名为:MT7601AP_WPA的网络了,有了就成功了

6e44fa4b4d334db893f2959f5cdcc5e8.png

(8)给PC强制分配静态IP

75587db9cd5f46afa18a20eaf5ba0ee8.png

3.2、准备测试用例

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

7d1e7ca123994e51a6d7574ddeee964e.png

(2)make clean,make

(3)复制得到的sample_venc到/home/aston/rootfs中

c00bc978c44f4d2fab5886c6213cc4f7.png

3.3、测试实验

(1)开发板端:cp /mnt/sample_venc /home/ 然后cd /home

2ad449b6bf344299b1efb47e73ca4549.png

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

cd6d620c79244714b4ddc7d96df33558.png

(3)PC端WIFI连接 MT7601AP_WPA,输入密码 1234567890,之前已做

(4)PC端设置无线网络的静态IP地址为:192.168.0.30,之前已做

(5)PC端cmd去ping 192.168.0.100,或者反过来开发板端ping PC的无线IP

1bbfcfe588cb419d8f7b8585434aaefe.png

(6)开发板端执行 ./sample_venc_ortp_wifi 0

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

7952956b8fff4dc19ba09d25be4cc123.png

注:

无线:

windows: 192.168.0.30

AP: 192.168.0.100

ubuntu: 192.168.0.50 (ubuntu的IP现在可以不管)

有线:

windows: 192.168.1.20

开发板: 192.168.1.10

ubuntu: 192.168.1.141

4.USB WIFI做sta模式的驱动移植和部署

4.1、源码修改

(1)修改网卡名称为wlan

(2)用sta版本的driver,可以简单看一下区别

(3)修改makefile,参考AP模式下的修改点修改

(4)config.mk中修改,参考AP模式下的修改点修改

(5)make clean && make

4.2、部署驱动

(1)部署/etc/Wireless/RT2870STA/RT2870STA.dat

(2)部署ko

5.移植wpa_supplicant

5.1、源码下载

(1)wpa_supplicant Linux WPA Supplicant (IEEE 802.1X, WPA, WPA2, RSN, IEEE 802.11i)

(2)openssl ftp://ftp.openssl.org/source/old/0.9.x/

下载openssl-0.9.8za.tar.gz

分别tar -zxvf解压wpa_supplicant-2.5.tar.gz和openssl-0.9.8za.tar.gz,

5.2、移植openssl

(1)给openssl打补丁。把wpa_supplicant-2.5里面的patches文件夹下的openssl-0.9.8za-tls-extensions.patch文件拷贝到openssl-0.9.8za目录下,运行:patch -p1 < openssl-0.9.8za-tls-extensions.patch

224d0353751f4107a69278cd684a50a7.png

(2)修改Makefile

CC=arm-hisiv300-linux-gcc

AR=arm-hisiv300-linux-ar $(ARFLAGS) r

ARD= arm-hisiv300-linux-ar $(ARFLAGS) d

RANLIB=arm-hisiv300-linux-ranlib

INSTALLTOP = /tmp/openssl

OPENSSLDIR = /tmp/openssl

(3)make && make install

(4)如果报错

****Expected text after =item, not a number

****Expected text after =item, not a number

****Expected text after =item, not a number

****Expected text after =item, not a number

原因:OpenSSL 与 perl版本不兼容

解决方法:sudo rm -f /usr/bin/pod2man

(5)查看是否安装成功

4cfe58b56c1a4943969b63f68ad2754a.png

5.3、移植wpa_supplicant

(1)解压并进入主目录/wpa_supplicant

(2)cp defconfig .config

(3)修改.config,增加以下内容:

CC=arm-hisiv300-linux-gcc -L/tmp/openssl/lib

CFLAGS+=-I /tmp/openssl/include

LIBS+=-L/tmp/openssl/lib

(4)make 如果报错:

driver_nl80211.c:17:31: fatal error: netlink/genl/genl.h

进入wpa_supplicant目录下.config

将CONFIG_DRIVER_NL80211=y 注释掉即可

(5)继续make,生成wpa_supplicant和wpa_cli后整个移植成功完成

a74bfe333b584a96be1a8f6fcc5e8610.png

6.USB WIFI做sta模式的ORTP视频传输实验

6.1、部署wpa_supplicant

(1)将wpa_supplicant、wpa_cli丢到开发板/usr/bin目录下

(2)创建配置文件/etc/wpa_supplicant.conf(放哪个目录都可以),内容如下:

ctrl_interface=/var/run/wpa_supplicant
network={
ssid="wifipig"
scan_ssid=1
key_mgmt= WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk="12345678"
}

6.2、sta模式的USB WIFI设置

(1)安装驱动 insmod mt7601Usta.ko

(2)设置静态IP地址

ifconfig wlan0 up, ifconfig wlan0 192.168.43.233

(3)开发板sta连接AP (-dd打开调试信息)

wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant.conf -dd &

让wpa_supplicant服务器先工作起来

(4)查看连接状态

wpa_cli -i wlan0 status

d5bc193db9074a6fa62a1876deda0a07.png

(5)测试连接效果

ping 192.168.43.1 (网关AP)

3339a78596724e0d8d725400708fc6da.png

ping 192.168.43.150 (windows)

d6d07b8c2bc94559a49152444e05870c.png

route add default gw 192.168.43.1 dev wlan0 设置完gw后就可以访问外网了

ping 8.8.8.8 (google的dnw server)

b3b3aef2178d4feea31e37b14ccff72d.png

6.3、ORTP视频传输测试

(1)修改LOCAL_HOST_IP 为192.168.43.150(和我的Widnows的WIFI自动分配的IP一样)

(2)编译得到sample并到开发板运行

(3)修改sdp中c=IN IP4 192.168.43.150,打开sdp播放

2e03e0fff9de42ebb0262517cac0c11c.png

注:

AP: 192.168.43.1

PC: 192.168.43.150

开发板: 192.168.43.233

ubuntu: 192.168.43.244

7.纯WIFI无线调试环境的搭建

7.1、原理

(1)UBUNTU和Windows桥接,这样ubuntu、windows、开发板三者都做sta,连同一个AP

(2)开发板事先移植部署好USB WIFI驱动、wpa_supplicant等

(3)开发板/etc/profile中设计好配置WIFI启动、连接AP、静态IP等

(4)开发板/etc/profile中设置让开发板通过无线mount虚拟机

7.2、实战

(1)先确认开发板部署好USB WIFI驱动、wpa_supplicant工具

(2)sample放到虚拟机ubuntu的共享文件夹中

(3)开发板/etc/profile中做好各种配置

#ifconfig eth0 192.168.1.10

#mount -t nfs -o nolock 192.168.0.103:/home/aston/rootfs /mnt

cd /ko

./load3518e -i -sensor ar0130 -osmem 32 -total 64

insmod /home/mt7601Usta.ko //装载USB WIFI驱动

ifconfig wlan0 up

ifconfig wlan0 192.168.43.233 //设置IP

wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf & //开启wpa_supplicant服务器

route add default gw 192.168.43.1 dev wlan0 //设置gw,才能访问外面

mount -t nfs -o nolock 192.168.43.244:/home/aston/rootfs /mnt //无线挂载到虚拟机

cd /mnt

(4)设置ubuntu桥接到windows的无线网卡,并给ubuntu设置静态IP地址192.168.43.244

12078f411eb94414831d695be8ebc142.png

(5)测试windows、ubuntu、开发板互ping

ubuntu ping windows

48cfa51c37264e6894303cf4d6fd85b5.png

开发板 ping ubuntu

7700c104b2454b579276c62b3e7bad85.png

(6)拔掉网线、开发板重启,看效果

挂载成功,并且开启了wlan0然后设置了IP

27721cb195ca4b9eb65fe5cc8759fc07.png

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值