第五季1:AP模式USB-WIFI网卡移植与测试
以下内容源于朱有鹏课程,如有侵权,请告知删除。
1、WIFI接口
- WIFI模块与SoC的接口有多种,如SDIO、USB、串口(低带宽)等。
2、AP、STA
- AP(Access Poin,接入点t),一般指(有线或者无线的)路由器。
- STA(Station,站点),指的是连接到路由器的终端设备,比如手机笔记本等等。
3、USB-WIFI网卡选作AP模式、STA模式
- USB-WIFI的模式选项,就是让你选择,你这(拥有USB-WIFI模块的)设备,是作为站点还是作为接入点。如果它作为站点,那么它联网的时候就会去寻找一个接入点来接入网络。如果是作为接入点,那么局域网中其他设备在联网的时候会接入它。
4、移植起点
(1)前置课程《USB-WIFI网卡在x210板子上的移植》
- 此课程见https://blog.csdn.net/oqqHuTu12345678/article/details/78945699
- 此课程中USB-WIFI网卡仅作station模式,它接入房间里的无线路由器来上网。
(2)USB WIFI网卡官方提供的驱动
(3)基于海思SDK中已经编译过的内核源码树来编译驱动
- 因为板载系统的内核和用来编译驱动的内核源码树必须对应一致,这样编译出来的驱动才能在板载系统上安装与工作。
5、本课程内容
- HI3518E+WIFI做AP,PC做STA,实现局域网内ortp视频传输
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,实现局域网内ortp视频传
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,实现全程无线调试(不用有线网卡)
6、USB-WIFI驱动源码
- 网盘资源【提取码: p3e7】
- 将Makefile替换掉压缩包里的Makefile。
7、假设的IP地址
无线 | 有线 | |
windows | 192.168.0.30 | 192.168.1.20 |
开发板 | 192.168.0.100 | 192.168.1.10 |
ubuntu | 192.168.0.50 | 192.168.1.141 |
一、AP模式USB-WIFI网卡移植与测试
1、在虚拟机中合适目录解压
2、修改移植工作很简单
(1)在include/rtmp_def.h中1627行左右,修改网络名始终为:wlan。
- 但其实不改也行,只是将来网络名字不叫wlan而是叫ra。
(2)将提供的Makefile替换掉原来的Makefile;
- 注意路径问题,如果你自己的内核源码树的路径不是所提供的Makefile中规定的,则需要将所提供的Makefile里的内核源码树的路径修改下。
(3)此时执行make时报错(注意分析错误的过程,挺受启发的)。
- 需要在./os/linux/config.mk中添加EXTRA_FLAGS;(即添加1044~1046所示的内容)
- 报错原因是找不到某些头文件,但实际上在include目录中有这些头文件,为何还是找不到呢?在Make文件中有下面一句,即包含配置文件config.mk,进入到config.mk文件中查看,发现是flag的问题。因此要添加。
(4)执行make时依然出错,原因是缺少autoconf.h文件。
- 海思SDK直接解压后得到的kernel中并没有包含此文件,因为(猜想的)在执行make distclean时删除了此文件。解决方法是重新单独编译kernel,可以获得此文件。
- 解释见https://www.cnblogs.com/Suzkfly/p/11763948.html
(5)修改Makefile。
- 因为Makefile文件规定将得到xx.ko文件放在/tftpboot中,但我们想用NFS将驱动拷贝到板载系统,因此修改Makefile,使其将生成的ko文件放到/root/all_qianrushi/rootfs/hisrootfs中。
(6)执行make。
- 生成的驱动是./os/linux/*.o所示的文件(主要mt7601Uap.ko文件)。
- /root/all_qianrushi/rootfs/hisrootfs中也有一份(即mt7601Uap.ko)。
3、部署USB-WIFI驱动使之工作为AP
(1)确认模块被识别。
- 先lsusb,然后插入USB WIFI模块,再lsusb,确认模块被识别了
(2)在开发板中部署 /etc/Wireless/RT2870AP/RT2870AP.dat,并修改以下几个配置。
此配置文件在虚拟机的源码中,将之拷贝到板载目录/etc/Wireless/RT2870AP/(板载系统无此目录而需要自己创建)并作修改。
- SSID=WIFI_XJH(此名字是在pc机上看到的wifi名字)
- AuthMode=WPA2PSK(加密方式)
- EncrypType=TKIP;AES
- WPAPSK=123456789(这个是密码)
(3)insmod mt7601Uap.ko安装USB WIFI驱动模块
(4)ifconfig -a看是否有wlan0
- 如果只ifconfig命令,只能看到打开状态下的网卡。所以用ifconfig -a
(5)ifconfig wlan0 up, ifconfig wlan0 192.168.0.100来启动wlan0并设置其IP。
(6)ifconfig查看,确认wlan0工作正常
(7)用PC或手机的WIFI搜索是否有一个名为:MT7601AP_WPA的网络了,有了就成功了
(8)给PC强制分配静态IP
设置无线网卡的IP为:192.168.0.30
设置有线网卡的IP为:192.168.1.20
4、测试用例准备
(1)在ORTP版本的sample中,在/common/sample_common_venc.c中,修改LOCAL_HOST_IP为192.168.0.30
(2)在sample/venc/下执行make clean,再执行make,得到sample_venc。
这步居然出现了问题,折腾大半天死活得不到sample_venc文件。
1)首先make clean和make的时候,出现一个提示说缺少文件。
ls: cannot access ‘./hiwork/osdrvhi3518e.C01’: No such file or directory
由于编译得不到sample_venc文件,我以为是缺少该文件导致的。复制粘贴上网查询,有人说不影响编译结果的,的确如此,但得不到我需要的sample_venc文件,只得到sample_venc.o文件。
与我一样有强迫症的网友提供了方法:https://blog.csdn.net/PecoHe/article/details/89528018,即修改mpp目录下的那个Makefile.param,如图注释掉部分代码。
2)经过上面步骤后,执行make clean 和make时不再提示缺少文件,而且也得到了想要的文件。但将其放在板载系统上运行时出现下面图片所示的错误。
根据提示是初始化失败了。为何会失败呢?我只是在sample_venc.c 修改了通道数目为1,然后在common/sample_common_venc.c中修改了主机IP,而之前的RTP传输视频实验是成功的,对比之下,这次只是修改了主机IP,为何就出错了呢?我回到之前的实验,发现自己缺失一个步骤,这个步骤在之前的RTP传输视频实验中我做过了,因此之前的实验可以成功,但是因为我曾经重新执行过./sdk.cleanup和./sdk.unpack,所以那步骤的修改丢失了,而这次我修改了其他内容而唯独忘记这个步骤,因此出错。步骤是:由sample目录下的readme的第三点可知,需要对sample目录下的Makefile.param进行修改。如图箭头所示。
这两个参数的值会影响其他参数,从而影响结果。
这番折腾花费我蛮多时间的,只因为缺失一个修改步骤,得到教训:做实验时,如果没有沿用之前的设置,而是新建立项目内容时,要注意新旧文件内容对比,注意步骤是否完成。
(3)复制得到的sample_venc到/root/all_qianrushi/rootfs/hisrootfs。
5、测试实验
(1)开发板端:cp /mnt/sample_venc /home/,然后cd /home
- 拔掉网线后不能再通过/mnt访问虚拟机的内容,所以要将用到的文件拷贝到板载系统中。
(2)拔掉网线
- 证明是无线传输
(3)PC端WIFI连接WIFI-XJH,输入密码123456789
(4)PC端设置无线网络的静态IP地址为:192.168.0.30
(5)PC端cmd去ping 192.168.0.100,或者反过来开发板端ping PC的无线IP
- 开发板ping PC端的时候,记得关掉PC端的防火墙(在cmd输入control选择关闭),否则ping不通的。
(6)开发板端执行 ./sample_venc
(7)PC端打开VLC,使用第3季中的sdp配置,注意修改c=IN IP4 192.168.0.100,就能播放了。
第五季1:AP模式USB-WIFI网卡移植与测试相关推荐
- 海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程-朱有鹏-专题视频课程...
海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程-143人已学习 课程介绍 本季课程在开发板上移植USB WIFI模块(套装附带的MT7601模块), ...
- USB WIFI网卡在S5PV210上的移植和使用最全攻略(1)
目录 一.本季文章将会带来那些干货 1.MT7601网卡驱动的移植 2.无线网卡的配置和使用 3.在自己定制的rootfs中移植USB WIFI 4.在自己定制的rootf中添加dhcp支持 二.项目 ...
- 嵌入式linux usb wifi驱动移植
文档名称:嵌入式linux usb wifi驱动移植 版本历史 版本号 时间 内容 v1.0b001 2012-6-18 初始版本,介绍在嵌入式 ...
- USB WIFI网卡在S5PV210上的移植和使用最全攻略(2)
目录 一.在自己制作的rootfs中移植网卡 1.确认自己制作的rootfs可正常工作并启动 2.需要的工具集确认 3.交叉编译iwconfig 二.移植wpa_supplicant并制作镜像 1.交 ...
- EP-N8530S USB WIFI 驱动移植
/************************************************************************ EP-N8530S USB WIFI 驱动移植* 说 ...
- android的wifi网卡移植详细过程已经通用驱动的问题
这里有一篇详细的教程,看完还有一个问题 就是android的wifi驱动移植,如果有wifi网卡的驱动代码,是一定需要对android系统本身的代码修改重写编译吗?就是说,有无可能不改变android ...
- 第五季2:STA模式USB-WIFI网卡移植与测试
以下内容源于朱有鹏课程,如有侵权,请告知删除. 本课程实现内容: HI2518E+WIFI做STA,PC做STA,外部路由器做AP,实现局域网内ortp视频传 HI2518E+WIFI做STA,PC做 ...
- ESP8266_设置AP模式,WiFi名称密码
1.AP(Access Point)访问接入点 ESP8266设置成AP模式,就等于了创建一个WiFi环境的无线局域网,知道这个WiFi名字和密码的终端设备就可以连接此WiFi: 可以想象,网络拓扑是 ...
- esp8266 接收udp广播_【零知ESP8266教程】AP模式下WIFI UDP协议通信示例
[mw_shl_code=cpp,true]/********************************************************** * 文件: udp-serve ...
最新文章
- Mastering Algorithms with C中文版附带源码说明
- 影响堪比登月!谷歌等设计DL新方式让神经网络无限深无限窄
- python3(七)os模块
- Hibernate入门级实例
- 页面无任何操作30秒后退出1
- mysql乐观锁总结和实践 - 青葱岁月 - ITeye博客
- dosubmit 成功不成功_什么是成功,不放弃!
- json-lib解析json之二维JSONArray
- 【优化算法】鼠群优化算法(RSO)【含Matlab源码 1462期】
- visio安装包大小,怎么判断安装那个版本?
- 三星Galaxy S4 刷入CWM Recovery和获取ROOT教程
- DHCPv6(dhcpv6配置)
- struts2拦截器的使用及作用
- i7 9750h和i7 8750h参数对比差多少
- 【有限元分析】有限元仿真分析与解析解的结果对比——以阶梯轴的静力分析为例
- python函数之任意数量的实参
- elk面试题_ELK 原理 使用 面试
- 如何用Python投机倒把几天“暴富”
- 购物栏置底 - uni-ui组件uni-goods-nav放在屏幕下方的办法
- 海尔计算机无法装win7系统,海尔自带Win10系统如何改成Win7系统?海尔台式机装win7详细步骤...