如何在现有SDK内增加openssl库

大家好,
最近在添加使用RTL8720DN做一些应用,准备尝试集成“ aws-iot-device-sdk-embedded-C”到SDK中,但在使用的过程中发现缺少openssl库,我不知道该如何在对应的makefile文件中增加针对openssl库文件的依赖,使用SDK版本为sdk-amebad_v6.2C-RC,编译环境ubuntu18.04.4
我已经尝试修改“project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp/asdk/”路径下的Makefile文件,增加和Makefile.include.gen文件,但是都未解决我的问题


这是Makefile内增加的内容

这是Makefile.include.gen内增加的内容


这是编译的结果

希望能得到帮助,谢谢 :smiley:

你好,RTL8720DN的SDK裏面應該原生支援MbedTLS的,你用的是什麽版本的SDK?

你好,我有尝试使用原生的MbedTLS,但是在使用时包含mbedtls/ssl.h的头文件时,还是会报错

使用SDK版本为sdk-amebad_v6.2C-RC

看報錯信息,是缺少header頭文件,你或許需要看一下application note和user manual,找一下開啓mbedTLS的macro(宏),一般是在platform_opt.h裏面,或是別的opt頭文件中能找到這個macro

或许你说的是这一个宏的定义,但实际上我已经开启了,在menuconfig的配置中,选中的了ssl



我会继续查找为什么会报错的原因,谢谢

1 Like

只看到了archive lib和header file加入到makefile裏面,感覺還是缺少了源文件,或者include的路徑沒有全都加進去

我尝试编译SDK内部的mbedTLS,感觉很奇怪,makefile内的头文件目录看上去并没有问题,源文件也正常编译转成了.o文件,但是还是会报错缺少定义

第一個mbedtls 路徑好像不太對請你在確認
應該是
IFLAGS +=-I$(BASEDIR)/component\common\network\ssl\mbedtls-2.4.0\include\mbedtls

最後少了一個mbedtls

这个路径是正常的,我移除掉新增库后编译能通过了

但是我尝试使用SDK内部集成的mbedtls库时,发现启用熵源的宏被注释掉了


但是我需要使用到它,取消注释后编译变正常了,但是发现这个功能使用起来并不正常,运行后报如下错误

ERROR: iot_tls_connect L#142  failed
  ! mbedtls_ctr_drbg_seed returned -0x34

另外,SDK内部集成的cJSON有点太老了,很多函数功能模块都没有,直接替换最新的cJSON库编译正常通过并使用 :grimacing:

现在我发现另外一个问题,当我尝试启动mbedtls的另一个宏时,此宏是用来开启文件系统的宏,但是编译时,提示我并不支持“dirent.h”的头文件,定位到定义出,发现这个头文件是不允许被添加的,但实际上我是在ubuntu18.04下编译的,它应该被支持才对 :frowning:


我尝试取消宏MBEDTLS_ENTROPY_HARDWARE_ALT的注释,并实现自己的随机数生成函数,已成功执行到下一步,接下来会继续尝试走通下面的流程 :grinning:

1 Like

中间费了不少功夫,通过不懈努力终于使用现有SDK移植“ aws-iot-device-sdk-embedded-C”库连上AWS IOT的后台啦 :grinning:
下面是使用AWS MQTT测试客户端测试订阅对应主题,并得到了发布的消息

1 Like

厉害啦 :+1:
谢谢分享!

1 Like