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.

[参考译文] CC3235SF:带有专用 Git 存储器的 OTA 在 RecvSkipHdr 上失败

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1212184/cc3235sf-ota-with-private-git-repo-fails-on-recvskiphdr

器件型号:CC3235SF

您好! 我在 Git 上创建了测试存储库、以查看是否可以下载 OTA 文件。 我成功地做到了这一点,当 repo 被设置为公共,但它只会在它被设置为私有时给出一个错误。 输出如下:

CdnGithub_SendReqDir: uri=/repos/---/TI_OTA_Test/contents/

HttpClient_RecvSkipHdr: http error code HTTP/1.1 404

CdnGithub_ParseRespDir: ERROR HttpClient_RecvSkipHdr, status=-20310

OTA_run: ERROR CdnClient_ReqOtaDir, Status=-20310

我已经尝试创建一个 Git 令牌并将其插入"otauser.h"->OTA_VENTER_TOKEN(甚至尝试了 base64格式),但这对于公共或私有都不起作用(尽管它会根据设置给出 http 错误403或400 )。 显然,我缺少一些东西,但一切工作除了授权/凭据的私人 repo。 感谢任何帮助我可以得到!

此致
大卫  

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

    在 SDK6.10中、我们通过 MQTT 示例演示 OTA 访问(有关启用 OTA 的说明、请查看应用程序自述文件)。

    该示例包含 Dropbox 和 GitHub 的客户端(请参阅"ifmod/ota_vender_gitHub.c"下的内容)。

    GitHub 客户端展示了如何使用 vendor_token。

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

    大家好、我尝试将 OTA 的一部分从 mqtt_client 工程导入到我们的工程中、最终使其完全适用于公共 Git 服务器、而不是专用服务器。 我查看了自述文件并按照指示创建了令牌、没有过期日期、没有选择"Scope"、并转换为 base64。  

    因此、我可以:  

    1. 连接
    2. 获取下载链接
    3. 下载 tar
    4. 安装这些文件
    5. 复位器件
    6. 确认存在提交挂起
    7. 提交新映像
    8. (然后它再次尝试下载、直到它看到"新"映像与旧映像相同)

    [OTA::DEBUG] OTA_IF STATUS = 4
    [IFX::INFO]  Trigger OTA...(button press)
    [OTA::DEBUG] ...OTA image is PENDING_COMMIT
    [IFX::INFO]  Starting Cloud OTA
    [IFX::INFO]  OTA_NOTIF_IMAGE_PENDING_COMMIT
    [OTA::DEBUG] OTA_IF STATUS = 5
    [OTA::INFO]  OTA_IF_commit: OTA succeeded - new image is committed!
    [OTA-GITHUB::INFO]  *** Attempting GITHUB getDownloadLink ***
    [OTA-GITHUB::INFO]  === Sending GET Request ===
    
    ...
    
    [OTA-GITHUB::DEBUG] GithubResponseParser: Key Not Found (processed=865)
    [OTA-GITHUB::DEBUG] GithubResponseParser: read chunk (read=51)
    [OTA-GITHUB::DEBUG] GithubResponseParser: Key Not Found (processed=17)
    [OTA-GITHUB::INFO]  *** No new image was found!!! ***
    [OTA::DEBUG] Download Link Failure!
    [IFX::ERROR] OTA_NOTIF_GETLINK_ERROR (-35000)
    [OTA::DEBUG] OTA_IF STATUS = 6
    [SOCK ERROR] - TX FAILED  :  socket 5 , reason (-9)

    但是,如果我采取 git repo 私有,我只得到"404错误"

    [OTA::DEBUG] ...OTA image is not PENDING_COMMIT
    [IFX::INFO]  Trigger OTA...(button press)
    [IFX::INFO]  Starting Cloud OTA
    [OTA-GITHUB::INFO]  *** Attempting GITHUB getDownloadLink ***
    [OTA-GITHUB::INFO]  === Sending GET Request ===
     uri: /repos/-----/-----/contents/ota
    [OTA-GITHUB::DEBUG] HTTP Response Status Code: 404
    [OTA-GITHUB::ERROR] HTTP Response Error: 404
    [OTA::DEBUG] Download Link Failure!
    [IFX::ERROR] OTA_NOTIF_GETLINK_ERROR (-404)
    [OTA::DEBUG] OTA_IF STATUS = 6

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

    发现问题。 自述文件中的说明不适用于私有仓库,您必须在创建 Git 令牌时单击授予私有仓库访问权限的"范围"。 至少现在一切都很好。

    感谢您的帮助!