rk3568miracast投屏-windows 11 pc无法发现rk3568设备问题分析案例
一. 问题描述:
rk3568打开miracast投屏。手机可以搜索到该设备并且能成功投屏。但是windows 11 pc无法发现该设备。

二.问题分析过程:
手机能搜索到,但是pc搜索不到却能搜索到别的设备。说明rk3568向外发送的beacon帧和probe response帧的某些字段和别的设备发送的对应的帧的某些字段有差异!导致pc在处理的时候有差异!所以需要抓取空口包!
1.确认rk3568做sink端创建Go时选择的工作信道
通过使用wifi墨盒的找ap功能,可以看到rk3568的Go工作在149信道

2,在149信道上抓取空口,查看rk3568向外发送的beacon帧和probe response帧
通过分析抓取的wifi空口,发现了一个很奇怪的现象。没有抓到rk3568发送的任何报文packet,一个beacon帧都没有抓到!---当时陷入了迷茫!完全颠覆以往的认知!
遂做了以下 尝试:
实验:
1.华为mate60开启手机热点工作在5G 149信道上
2.小米路由器关闭wifi双频合一,设置5G的wifi也工作在5G 149信道上。 2.4G的wifi工作在11信道
3.用这个rk3568去分别连接这3个热点,并同时抓包!
结果
1.连接小米路由器工作在149信道的5G wifi ---失败! 抓包也抓包不到rk3568发送的Associate req报文!
2.连接mate60开启的工作在149信道的5G热点 ---成功! 抓包也只能抓到mate60的发出的Associate response报文,抓不到rk3568的Associate req报文!
3.连接小米路由工作在11信道的2G wifi ---成功! 抓包也能抓到rk3568发的Associate req报文!
结论:
rk3568在5G信道上发送的wifi信号,部分网卡可能解析不了,无法接收!
查阅资料可能性最大的原因:
rk3568在149信道上发送的wifi信号 非标准前导码:GO可能使用了极短的、非标准的、或与网卡不兼容的前导码。
3.修改逻辑,让rk3568创建Go的时候工作信道选择在2.4G的信道
windows pc依然无法发现rk3568设备。但在2.4G信道成功抓到了rk3568发送的beacon帧和probe response帧!然后对比其它windows pc能扫描到的设备发送的beacon帧。发现有如下典型的差异!

rk3568的beacon帧中,Primary Device Type为0!根据经验判断这出明显的差异可能就是windows pc无法扫描到!
4.增加配置Primary Device Type验证PASS。windows pc能发现rk3568设备


三.最终解决方案
1.创建p2p组时,频率选择2.4G频率:
具体修改文件:foundation\CastEngine\castengine_wifi_display\services\impl\scene\wfd\wfd_sink_scene.cpp
2.wpa_supplicant.conf中配置device_type:
具体修改文件:foundation\communication\wifi\wifi\relation_services\etc\init\unix_socket\wpa_supplicant.conf
3.rk3568在5G信道发送的wifi信息部分网卡接收不到的问题跟硬件强相关!可暂不关注!因为其它产品的硬件大概率不会有此问题!
更多推荐
所有评论(0)