rk3399 usbwifi Miracast调试

项目场景:

在RK3399 android7.1.2平台上调试 rtl8812au完成后,客户需要实现Miracast功能,后与rk技术支持工程师调试完成此功能。


问题描述:

在RK3399平台上测试发现使用 rtl8812au usbwifi时,Miracast功能rk3399设备可以扫描到手机设备,但是手机设备扫描不到rk3399设备。

原因分析:

        1.确定是否与上层配置有关:在换用rtl8812au芯片之前,rk3399上面使用AP6359芯片,使用之前带AP6356SA的RK3399测试Miracast功能,发现MIracast功能正常,设备可以互相扫描到,同时可以进行投屏,确定上层配置没有问题。
        2.确定是否与驱动有关:由于确定与上层配置无关,猜测可能与usbwifi驱动有关,根据与wifi芯片原厂驱动工程师沟通,确定8812au usbwifi驱动没有问题,同时使用rtd1295开发板上外接8812au设备,测试Miracast功能,经验证,在rtd1295上面8812au的Miracast功能正常。
        3.经验证发现,上层配置与wifi驱动都没有问题,需重新确定调试方向,可能与RK上层应用与8812au驱动之间的协议出现问题,经RK的FAE测试发现在RK平台上,确定在rk3399平台上层配置没有实现Miracast功能,最后由RK工程师提供Miracast补丁进行添加,Miracast功能正常。


解决方案:

添加patch

diff --git a/bcmdhd/wpa_supplicant_8_lib/driver_cmd_nl80211.c b/bcmdhd/wpa_supplicant_8_lib/driver_cmd_nl80211.c
    index 5d24799..a104b64 100644
    --- a/bcmdhd/wpa_supplicant_8_lib/driver_cmd_nl80211.c
    +++ b/bcmdhd/wpa_supplicant_8_lib/driver_cmd_nl80211.c
    @@ -168,5 +168,51 @@ int wpa_driver_set_ap_wps_p2p_ie(void *priv, const struct wpabuf *beacon,
 				 const struct wpabuf *proberesp,
 				 const struct wpabuf *assocresp)
     {
    -        return 0;
    +
    +
    +        char *buf;
    +	const struct wpabuf *ap_wps_p2p_ie = NULL;
    +
    +	char *_cmd = "SET_AP_WPS_P2P_IE";
    +	char *pbuf;
    +	int ret = 0;
    +	int i, buf_len;
    +	struct cmd_desc {
    +		int cmd;
    +		const struct wpabuf *src;
    +	} cmd_arr[] = {
    +		{0x1, beacon},
    +		{0x2, proberesp},
    +		{0x4, assocresp},
    +		{-1, NULL}
    +	};
    +
    +	wpa_printf(MSG_DEBUG, "%s: Entry", __func__);
    +	for (i = 0; cmd_arr[i].cmd != -1; i++) {
    +		ap_wps_p2p_ie = cmd_arr[i].src;
    +		if (ap_wps_p2p_ie) {
    +			buf_len = strlen(_cmd) + 3 + wpabuf_len(ap_wps_p2p_ie);
    +			buf = os_zalloc(buf_len);
    +			if (NULL == buf) {
    +				wpa_printf(MSG_ERROR, "%s: Out of memory",
    +					   __func__);
    +				ret = -1;
    +				break;
    +			}
    +		} else {
    +			continue;
    +		}
    +		pbuf = buf;
    +		pbuf += snprintf(pbuf, buf_len - wpabuf_len(ap_wps_p2p_ie),
    +				 "%s %d",_cmd, cmd_arr[i].cmd);
    +		*pbuf++ = '\0';
    +		os_memcpy(pbuf, wpabuf_head(ap_wps_p2p_ie), wpabuf_len(ap_wps_p2p_ie));
    +		ret = wpa_driver_nl80211_driver_cmd(priv, buf, buf, buf_len);
    +		os_free(buf);
    +		if (ret < 0)
    +			break;
    +	}
    +	
    +	return ret;
    +
    }

文件修改及编译路径

    分别编译下面目录
    hardware/broadcom/wlan/bcmdhd/wpa_supplicant_8_lib
    external/wpa_supplicant_8/
    重新打包文件升级

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值