Page 1 of 3

RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 12:05
by cheng_JS

SDK:ty_iot_sdk_rtl8710bn_bugfix-2.3.2-beta.1135
编译命令:./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.2
我编译上传的版本是1.0.2,但激活的时候显示固件版本是1.0.5,激活码版本是1.0.2,导致获取固件指纹失败


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 12:10
by yingtao_33

你先执行一下clean 指令,然后再编译1.0.2版本 重新上传试一下


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 13:55
by cheng_JS

执行这个命令要装什么东西吗?显示没有这个命令


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 14:00
by yingtao_33

执行一下 ./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.2 clean 看看支不支持


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 14:49
by cheng_JS

我执行了: ./build_app.sh apps/rtl8710bn_smart_plug_s165 rtl8710bn_smart_plug_s165 1.0.4 clean
但结果是一样的


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 14:51
by cheng_JS

这个1.0.5是哪里定义的


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 14:54
by chenyisong

1.0.5 是授权码下单的时候选择的版本号


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 14:56
by cheng_JS

这个怎么改呢?


Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 15:16
by yingtao_33

授权的时候的版本,是在调用mf_init时传入的。你找到2.3.2 SDK里调用的地方应该是 tuya_main.c ->void user_main(void) 里

企业微信截图_17037466431041.png

版本号就是 USER_SW_VER 这个宏。USER_SW_VER 这个宏的值 是从在你输入编译命令时传入的。

现在你编译输入的是1.0.2 但是实际是 1.0.5。怀疑是你之前编译过1.0.5,且tuya_main.c 文件什么都没修改,然后你直接编译1.0.2。tuya_main.c的中间文件还是保留1.0.5那时候的,并没有重新编译而导致的。

之前叫你执行一下clean指令,主要是想要清一下中间文件,让其重新编译。不过这个SDK 可能比较老,不支持 clean。

现在这边提供几个方式建议你尝试:

  1. 稍微改动一下 tuya_main.c 文件,让tuya_main.c 重新编译。
  2. 找到platforms 目录下原厂 SDK 中最终执行编译指令的地方,执行清除指令。
  3. 修改找到platforms 目录下原厂 SDK 编译脚本,在编译入口处加上删除中间文件。

Re: RTL8710自定义TUYA OS固件,激活显示“获取固件指纹失败”

Posted: 2023年 Dec 28日 15:28
by yingtao_33
yingtao_33 2023年 Dec 28日 15:16

授权的时候的版本,是在调用mf_init时传入的。你找到2.3.2 SDK里调用的地方应该是 tuya_main.c ->void user_main(void) 里
企业微信截图_17037466431041.png
版本号就是 USER_SW_VER 这个宏。USER_SW_VER 这个宏的值 是从在你输入编译命令时传入的。

现在你编译输入的是1.0.2 但是实际是 1.0.5。怀疑是你之前编译过1.0.5,且tuya_main.c 文件什么都没修改,然后你直接编译1.0.2。tuya_main.c的中间文件还是保留1.0.5那时候的,并没有重新编译而导致的。

之前叫你执行一下clean指令,主要是想要清一下中间文件,让其重新编译。不过这个SDK 可能比较老,不支持 clean。

现在这边提供几个方式建议你尝试:

  1. 稍微改动一下 tuya_main.c 文件,让tuya_main.c 重新编译。
  2. 找到platforms 目录下原厂 SDK 中最终执行编译指令的地方,执行清除指令。
  3. 修改找到platforms 目录下原厂 SDK 编译脚本,在编译入口处加上删除中间文件。

在确认是这个问题前,请你先自查两点。1.当前模组的运行的固件已经烧录了你传到的平台上的固件即 1.0.2。 2. 你没有勾选 仅授权的选项,如软件上的报错提示第二点。

platforms 目录下原厂 SDK 中执行编译的入口脚本是:ty_iot_sdk_rtl8710bn_2.3.2\platforms\rtl8710bn\project\realtek_amebaz_va0_example\GCC-RELEASE\build_app_2M.sh