This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3200:dropbox 的 OTA 错误-6

Guru**** 2481465 points
Other Parts Discussed in Thread: CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1337191/cc3200-ota-error--6-for-dropbox

器件型号:CC3200

您好!

今天、我看到 OTA 更新失败、并显示错误消息-6。 固件中没有任何更改。 根据下面的日志、无法接收 CDN URL。 是因为 Dropbox 更改了吗? 您能帮助我们尽快修复吗?

启动 OTA
_ReadStatFile:sl_FsOpen 中错误、STATUS=-11
sl_5420_5420:呼叫 Client_Connect Lib_Ota server=api.dropbox.com
Client_Connect:http_connect_server api.dropbox.com
0 OTA 运行= 0
sl_452002: Lib_Ota Client_Update、vendorStr=Vid01_Pid00_Ver0302100000
Client_Update:4552调用 http_build_request /1/metada/auto_
Cdnc45V Dropbox_Send qDir: uri =/2/files/list_folder
元数据文件=/Vid01_Pid00_Ver0302100000/f80_sys_mcuimgA.bin、size=142888
sl_5420_5420: Lib_Ota 中的 Client_Update,numUpdates=1
0 OTA 运行= 0
sl_C30210000_F80_sys_mcuimgA.bin Lib_Ota 更新:Client_Get file=/Vid01_Pid00_Ver030210000/F80_sys_mcuimgA.bin、size=142888
O52 Client_Resource:svg http_build_request /1/media/auto
Client_Resource:5.52文件标志=80,元数据标志=80
C赤 柱状 Dropbox_Send qFileUrl: uri=/2/files/get_temporary_link
0 OTA 运行= 0
sl_5420_CDN:ResourceMetadata Lib_Ota 文件 URL = f=
Cdnnc Client_Connect Url:错误, http_extract_domain_By_url,状态=-1
sl_5420_ Lib_Ota error: Cstreci Client_Connect Urstrl 上失败
0 OTA 运行=-6
OTA 运行=-6
OTA:OTA 服务器错误

此致、

圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Sundar、您好!  

    我已将其分配给相关专家。

    此致!

    罗格利奥

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sundar:

    我们很熟悉这个问题,但仍然不明白 Dropbox 中有哪些更改导致了这个问题。

    当我们找到解决方法时、我将在此处进行更新。

    请注意,一般来说,我们不建议使用 Dropbox 进行生产,因为 Dropbox 会不断更改其服务器接口,从而导致物联网设备出现问题。 建议使用更注重物联网的云供应商。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    由于我们已在不同位置安装了物联网设备、因此无法更改 Dropbox。

    是否有关于此问题的任何更新?

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尚未更新。

    您可以尝试直接联系 Dropbox 以解决此问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    我在 Drobox 论坛上创建了票证,他们说他们方面没有改变。

    www.dropboxforum.com/.../757521

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    我们在客户端位置安装了10万台设备。 我们需要通过 OTA 更新固件。 如果您可以指出 Dropbox API 的确切问题,我们可以联系 Dropbox 团队并让他们解决。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我了解您的情况,但问题在于与 Dropbox 的连接 (开始检查时,我们无法 发现 API 有任何问题-实际上在某些情况下会发生)。 我们在使用 CC3220//35时也遇到了同样的问题、调试正在进行中。 找到任何内容后、我们将立即更新。

    与 Dropbox 通信时、您只应提供 HTTP 请求(可以在 sl_Send 中打印)和响应(在 sl_Recv 中打印) - 它们不熟悉我们的 HTTP 客户端消息和错误代码。

    您可以 在调用 sl_Send 时(或之前)打印该消息、或者可以 将目标更改为转储 HTTP 服务器(为其进行 google、例如  查看 httpdump.app/)并在其中检查日志。    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    我 无法打印日志。 你们这边有更新吗?

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尚未

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    我们在美国各地安装了90k 设备。 很难将器件与新固件一起发货。

    如果有任何关于此问题的更新、请告知我们?

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们结束后还没有更新。

    您是否曾尝试联系 Dropbox?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这就像在第一个请求+响应(列表文件夹)之后,Dropbox 服务器出于某种原因(将连接降级为不安全)发送 TLS 警报。

    我不理解原因(可能 Dropbox 联系人可以解释这一点)。

    如果将第二个请求(Get-Temporary -link)延迟几秒(例如"sleep (5)")、则会重新建立 TLS 连接并且 OTA 将工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    非常感谢。 我将把它传递给 Drobox。

    我会在收到他们的回复后再联系您。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    他们希望从头开始重现问题。 他们正在请求网络日志。 您有什么可以与他们分享的吗?

    https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/OTA-update-fails-in-CC3200/m-p/757746#M33136

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是我拥有的文件(数据根据 TLS 加密):

    警报位于55151帧中  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    非常感谢您分享这张屏幕截图。

    现在他们要求转储文件来检查请求/响应。 您能导出 PCAP 文件并与我分享吗?

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../cc32xx_2D00_dropbox_2D00_2.pcapng

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    感谢您发送编修。 下面是 Dropbox 团队的答案。

    我有团队看着这个,但不幸的是,这个转储似乎只包含 WiFi 帧。 您是否可以与实际数据(TCP + TLS 帧)共享转储、以便我们可以检查该特定的警报、如前面的屏幕截图所示?

    此致、

    圣达尔

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否。  我们不能这样做。 我使用的是无线监听器日志、TLS 内容在其中进行加密。  

    在应用端、您只能发布套接字有效载荷(即如果您打印传递给 sl_Send 的数据、则将包含 HTTP 内容)、而不是整个 TCP/IP 数据包(即、它将是带有 http 文本的文本文件、而不是 pcap 文件)。 我想我们的一个客户已经向他们提供了这个。

    我很确信他们可以 在他们的服务器上捕获连接日志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    Dropbox 现在可以重现问题。 他们最后要求的是未加密的转储文件。 它们提供了以下步骤。

    因为如果您能够获得和共享未加密的转储(即、没有 WiFi 加密)、这将对团队有所帮助。 您在2024年4月24日 上分享的屏幕截图似乎是我们想要看到的格式、但这不是您第二天分享的转储中分享的内容(因为那一个包含了 WiFi 加密)。 我理解您或您的供应商可能不希望这样做、因为这会涉及有效共享 WiFi 密码、从而可以作为单独的转储进行保存和共享、例如使用"导出数据包分解"的"纯文本"选项、以便不共享 WiFi 密码。

    https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/OTA-update-fails-in-CC3200/m-p/769000#M33613

    您能分享一下转储文件吗?

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    我创建了数据包捕获并将其发送给他们。 我仍在等待 dropbox 响应。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。 感谢您的更新。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    Dropbox 表示他们修复了"新线路"问题。 您能否检查该问题是否在不更改器件代码的情况下解决了我们的 OTA 问题。

    https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/OTA-update-fails-in-CC3200/m-p/771280#M33736

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将在下周查看。 是与 HTTP 头中的"新行"相关、还是与有效负载末尾的"新行"相关?

    您是否已检查现在可以完成更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    我不知道他想在哪里添加一行。

    他们尚未更新生产中的更改。 我今天做了测试、结果不能正常工作。

    以下是他们的答案。

    "您是否能够修改您有权访问的器件以便使其不会将额外的新行作为测试发送? 如果您可以验证是否解决了问题、我可以要求团队考虑更改服务器以允许这样做(但请注意、我无法对此做出任何承诺)"

    请告知我们这是否能解决我们的问题。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此、需要更好地了解他们期望额外新线的位置。

    再说一次、我只能在下周查看该内容(但你可以亲自尝试、因为 SDK 包含所有源代码和 maefile。

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    请在星期一检查并更新我。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尝试在有效载荷的末尾添加新行"\n\n"、但仍遇到相同的故障。  

    我需要了解需要修复的确切内容。

    注意-如果我在"GET_TEMPERATURE_LINK"之前设置一个断点(或睡眠4秒)-此 OTA 过程将起作用 (该 请求 将被接受)。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    请参考以下链接。

    https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/OTA-update-fails-in-CC3200/td p/757521/page/5

    Dropbox 答案如下:

    为了澄清这一点,我们尚未对 Dropbox 服务器进行任何更改来解决此问题。 Здравко 帮助确定了问题的潜在原因,即您的设备可能在请求正文有效载荷的末尾发送意外的新行。 为了验证这是否是问题的原因、以及解决是否可以为您解决问题、我要求您更改您的一个设备、使其不发送该新线路、看看它是否能正常工作。 如果是、这将验证问题的原因、以便我可以请求团队为该服务器端寻址

    如果删除额外的一行、它是否会解决该问题。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。 我能够验证删除新线是否解决了 CC3220/35

    (在 CC3220/35中、请将 httpclient.c 中的第2267行注释掉、  

    //ret = sprsend(cli, 0, "\r\n");".

    然后、您可以重建 httpclient 库或将 httpclient.c 复制到应用程序、并将其编译为应用程序)。

    但是、此类更改可能会导致无法访问其他 HTTP 服务器- 因此需要谨慎使用。

    我可能尝试使用 CC3200提供支持 稍后、您可以尝试注释掉 OtaHttp.c 的第73行:

    _i32 http_build_request(_u8 *pHttpReq, _u8 *method, _u8 *host_name, _u8 *req_uri_prefix, _u8 *req_uri, _u8 *hdr_name, _u8 *hdr_val)
    {
        /* start with method GET/POST/PUT */
        strcpy((char *)pHttpReq, (const char *)method);
    
        /* fill uri_req_prefix, metadata/media */
        if (req_uri_prefix && strlen((const char *)req_uri_prefix))
        {
            strcat((char *)pHttpReq, (const char *)req_uri_prefix);
        }
        /* fill request URI */
        if (req_uri && strlen((const char *)req_uri))
        {
            strcat((char *)pHttpReq, (const char *)req_uri);
        }
    
        /* fill domain */
        strcat((char *)pHttpReq, " HTTP/1.1\r\nhost: ");
        strcat((char *)pHttpReq, (const char *)host_name);
        strcat((char *)pHttpReq, "\r\n");
    
        /* fill access_token */
        if (hdr_name && strlen((const char *)hdr_name))
        {
            strcat((char *)pHttpReq, (const char *)hdr_name);
            strcat((char *)pHttpReq, (const char *)hdr_val);
            strcat((char *)pHttpReq, "\r\n");
        }
    
        //strcat((char *)pHttpReq, "\r\n"); /**** THIS SHOULD BE COMMENTED OUT ****/
    
        return OTA_STATUS_OK;
    }
    

    OTA 库的文件部分-因此、您需要重新编译库和应用程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    非常感谢您的检查。 我会让他们知道这件事。

    此致、

    圣达尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kobi、

    我曾尝试删除您为 CC3200建议的空行、但无法解决该问题。 如果可以解决问题、请随时向我们通报最新情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否确定所构建的 OTA 库(ota.a)实例已与应用程序链接?  

    我目前没有设置 CC3200、正在使用 CC3235执行所有测试(我认为这是相同的问题、因为它是同时启动的)。

    我会尝试重现、但需要一些时间。