转载,侵删

7 无线wifi传输视频开发

MT7601的驱动源码提供了两种:AP模式和STA模式源码。此时我使用USB作为AP热点,电脑作为STA模式,并使用ORTP实现无线传输视频

7.1、AP模式下USB WIFI驱动移植

(1)准备wifi源码并将源码复制到ubuntu服务器下解压

源码在主机的:E:\winshare\HI3518EV200\MT7601_driver\下,此后打开Ubuntu终端,并执行以下命令:
cd /home/aston/sambashare[进入目标目录]
cp /mnt/hgfs/winshare/HI3518EV200/MT7601_driver/ ./ -rf[复制到ubuntu]
cd MT7601_driver/ap[进入AP模式源码目录]
tar -jxvf MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2[解压wifi源码]
cd MT7601U_LinuxAP_3.0.0.1_20130802/[进入源码目录]

(2)根据硬件条件对源码作出修改以适应硬件平台

步骤一:在include/rtmp_def.h中的1627行,修改完网络名始终为:wlan:
Sudo vi include/rtmp_def.h[打开目标头文件]
:1627[跳到1627行]
将下面的

#ifdef ANDROID_SUPPORT
#define INF_MAIN_DEV_NAME “wlan”
#define INF_MBSSID_DEV_NAME “wlan”
#else
#define INF_MAIN_DEV_NAME “ra”
#define INF_MBSSID_DEV_NAME “ra”
#endif

第一句和后面四句用//注释掉

(3)进入makefile目录,编译并修改错误

Cd ../Makefile ./ [进入源码根目录]
Make clean;make [清除并编译]
错误提示:linux/rt_profile.c:26:23: 致命错误: rt_config.h:没有这样的文件或目录
推测:cd os/linux [发现rt_profile.c]
Sudo vi rt_profile.c [打开 rt_profile.c源码文件]
: 26[跳转至第26行,发现#include "rt_config.h" ,即包含了rt_config头文件]
Cd ../../include [进入源码的头文件总目录,发现已经有了"rt_config.h"头文件,但是编译时找不到这个头文件,因此这个错误应该是编译没有把这个头文件链接包含进去,导致找不到这个文件 ]
解决:在./os/linux/config.mk中添加EXTRA_FLAGS
Cd os/linux
Sudo vi config.mk[打开wifi源码配置文件]
/DM6446[搜索关键字DM6446]
在DM6446平台架构之上添加HI3518E支持[1048行],如下:
ifeq ($(PLATFORM),HISI_3518E)
EXTRA_CFLAGS := $(WFLAGS) //指定预定义变量EXTRA_CFLAGS作为C编译器选项编译HI3518E源码树
endif
Cd ../../ [重新进入源码根目录]
Make clean;make [清除并编译]

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

ls /os/linux/*.ko[发现os/linux/mt7601Uap.ko驱动已经生成]
sudo vi Makefile
/ko [搜索关键词ko]
将原来415行的内容改成:
cp -f $(RT28xx_DIR)/os/linux/mt$(MODULE)ap.ko /home/aston/rootfs [将生成的ko驱动挂载到 /home/aston/rootfs共享目录中]
Make[重新编译]
Cd /home/aston/rootfs[进入共享目录]
Ls [发现mt7601Uap.ko已经复制到了共享目录中去了]

7.2、AP模式下USB WIFI开发板部署

(1)测试wifi硬件是否能够正常使用

将开发板连上电脑,并进入Hilinux模式:
A:不插wifi时,串口输入命令lsusb,此时显示
Bus 001 Device 001:ID 1d6b:0002
Bus 001 Device 001:ID 1d6b:0001
B:现在插入wifi,会提示新高速USB设备002即hiusb-ehci.
这时执行命令:lsusb,发现新增加一个设备
Bus 001 Device 002:ID 148f:7601[这就是wifi设备,它的ID时002]

(2)将USB WIFU的AP模式驱动部署到开发板上

A:Ubunu:复制配置文件RT2870AP.dat文件到nfs共享文件夹中
Cd/home/aston/sambashare/MT7601_driver/ap/MT7601U_LinuxAP_3.0.0.1_20130802 [进入目标目录]
cp RT2870AP.dat ~/rootfs/ -f [将RT2870AP.dat复制到共享目录中]

B:Hilinux中执行命令建立目录
cd /mnt [进入mnt共享目录]
Ls [发现RT2870AP.dat已经复制进入了此目录]
mkdir -p /etc/Wireless/RT2870AP [建立目标目录]
cd /etc/Wireless/RT2870AP/ [ls查看此目录发现为空目录]
cp /mnt/RT2870AP.dat ./ [从共享目录中复制配置文件到当前目录]
Ls [RT2870AP.dat文件,说明复制成功了]
vi RT2870AP.dat [更改这个文件,因为默认没有密码,不安全,要改成带密码的,按照以下方式修改]
SSID=MT7601AP_WPA(这里的名字是在pc机上看到的连接ssid名)AuthMode=WPA2PSK(加密方式)
EncrypType=TKIP;AES(加密算法)
WPAPSK=1234567890(这个是密码)

C:insmod xx.ko安装USB WIFI驱动模块
cd /mnt/
insmod mt7601Uap.ko [装载驱动]
lsmod[在最前面发现了mt7601Uap驱动模块已经安装]
ifconfig -a[发现有eth0,lo和wlan0三个网卡,即有wlan0目标网卡生成,说明安装成功]

D:设置IP地址
ifconfig wlan0 192.168.0.100[设置无线网卡wlan0的IP地址]
ifconfig wlan0 up[唤醒无线网卡wlan0]
ifconfig [发现wlan0网卡的inet addr地址为192.168.0.100,证明设置成功,注此时eth0的ip地址时192.168.1.10,即开发板的有线网卡和无线网卡都在工作了,注ifconfig是查看已经工作的网卡,ifconfig -a是查看所有的网卡]
windows和开发板都有一个无线网卡和一个有线网卡,它们彼此独立,可以同时工作。开发板和主机windows要处在同一个网段[局域网]
无线:
windows: 192.168.0.30
AP: 192.168.0.100

E:用PC或手机的WIFI搜索看一下,是否有一个名为:MT7601AP_WPA的网络了,有了就成功了,但是输入密码之后会提示连接不成功[此计算机当前已将连接限制为MT7601AP_WPA],其实当前已经连接成功了,但是此时的AP还是不能访问外网,所以会提示有限的访问权限。
主机上选择打开网络共享中心,点击无线网络连接(MT7601AP_WPA),选择详细信息,发现自动分配的IP地址时169.254.158.163,子网掩码时255.255.0.0,即全部都是乱的,因此需要给PC端强制分配一个静态IP地址。

F:给PC强制分配静态IP
主机上选择打开网络共享中心,点击无线网络连接(MT7601AP_WPA),选择属性,选择Internet协议版本4(TCP/IPv4),选择"使用下面的IP地址",指定ip地址为162.168.0.30,指定子网掩码为255.255.255.0,点击确定,点击确定,确定,选择详细信息,发现此时的ip地址为192.168.0.30,子网掩码为255.255.255.0,证明设置成功了。然后关闭对话框。此时的开发板和window已经通过无线wifi连接通了。

8 效果

7 无线wifi传输视频开发的更多相关文章

  1. 通过BSSID和无线流量传输后门Payload

    本文将探讨无线接入点(AP)和BSSID(MAC地址AP).我们不借助文件系统加密和文件系统中(仅内存中)的硬编码Payload即可获得后门Payload,通过该方法可绕过所有的杀软,可以不使用Pay ...

  2. 13-H.264编码解码器的无线应用:1080P60 3D无线影音传输器

    H.264编码解码器的无线应用:1080P60 3D无线影音传输器 一.应用领域 家庭媒体娱乐中心 新闻现场采访 无线3D投影机 高清视频会议终端无线延长器 教学,医疗示教 考古,高档商业区域,监狱等 ...

  3. Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  4. Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  5. 浅谈iOS视频开发

     浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...

  6. Android IOS WebRTC 音视频开发总结(六)-- iOS开发之含泪经验

    前段时间在搞webrtc iOS开发,所以将标题改为了Android IOS WebRTC 音视频开发总结, 下面都是开发过程中的经验总结,转载请说明出处(博客园RTC.Blacker): 1. IO ...

  7. 无线 WIFI 的13个信道频率范围

    目前主流的无线WIFI网络设备不管是802.11b/g还是802.11b/g/n 一般都支持13个信道.它们的中心频率虽然不同,但是因为都占据一定的频率范围,所以会有一些相互重叠的情况.下面是13个信 ...

  8. WebRTC 音视频开发

    WebRTC 音视频开发 webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译 ...

  9. iOS 视频开发学习

    原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我 ...

随机推荐

  1. vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档

    今天整理文档突然发现了一份md文档,打开一看 瞬间想起当年学习vue的艰难路,没人指导全靠自己蒙,下面就是md文档内容,需要的小伙伴可以打开个在线的md编译器看一看,我相信不管是新人还是老人  入门总 ...

  2. 使用Bulk Binding批量绑定的模式高效处理ORACLE大量数据

           用批量绑定(bulk binding)的方式.当循环执行一个绑定变量的sql语句时候,在PL/SQL 和SQL引擎(engines)中,会发生大量的上下文切换(context switc ...

  3. SpringMVC实现RESTful服务

    SpringMVC实现RESTful服务 这里只说service,controller层的代码.Mapper层则直接继承Mapper<T>则可以,记住mybatis-config.xml一 ...

  4. 深入理解angularjs $watch ,$apply 和 $digest --- 理解数据绑定过程

    转自:http://www.angularjs.cn/A0a6 Angular用户都想知道数据绑定是怎么实现的.你可能会看到各种各样的词汇:$watch,$apply,$digest,dirty-ch ...

  5. httpclient cookie使用介绍

    COOKIE的处理 session的保持是通过cookie来维持的,所以如果用户有勾选X天免登陆,这个session就X天内一直有效,就是通过这个cookie来维持. 如果没有选中x天免登陆,基本上就 ...

  6. POJ 3352 Road Construction 双联通分量 难度:1

    http://poj.org/problem?id=3352 有重边的话重边就不被包含在双连通里了 割点不一定连着割边,因为这个图不一定是点连通,所以可能出现反而多增加了双连通分量数的可能 必须要用割 ...

  7. 跟我一起学习ASP.NET 4.5 MVC4.0(六)

    这一系列文章跨度有点大,由于最近忙于其他事情,没有更新,今天重新安装了下Win8系统,VS2012和SQLServer 2012,顺便抽空继续一篇.随着VS2012 RC版本的放出,ASP.NET M ...

  8. 玩转X-CTR100 l USB功能-HOST鼠标键盘

    更多塔克创新资讯欢迎登陆[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] X-CTR100控制器具有MicroUSB接口,支持SLAVE和HOST两 ...

  9. <二叉树的基本操作>

    #include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK ...

  10. 《C语言中分配了动态内存后一定要释放吗?》

    问:比如main函数里有一句 malloc(),后面没有free()1.那么当main结束后,动态分配的内存不会随之释放吗?2.如果程序结束能自动释放,那么还加上free(),是出于什么考虑? 答: ...