当前位置: 首页 > news >正文

【T690 之十二】基于方寸EVB2开发板(T690芯片)构建基于GMSSL的文件系统的方式

备注:
1,假设您已对方寸微电子的T690系列芯片的使用方式都有了一定的了解,然后需要构建基于GMSSL的文件系统,此文才对您有意义;
2,若您对方寸微电子的T690芯片不了解,但想进一步了解它,那您可以在gitee上获取相关资料,gitee的网址为:https://gitee.com/tihchip

1. 编译GMSSL

  编译gmssl.bb时,不能直接直接执行命令bitbake gmssl,虽然执行该命令时能编译成功(没有任何的错误),当时将编译生成的文件复制到文件系统(rootfs)后,执行 可执行程序(testapp) 时,会提示OPENSSL_1_1_1及OPENSSL_1_1_0找不到,如下:
在这里插入图片描述
在这里插入图片描述
  造成该问题的主要原因:猜测是GMSSL与OpenSSL版本差异,很多软件依赖OpenSSL,但是我采用了GMSSL直接替代OpenSSL的方式,导致依赖关系出现了混乱。

  解决办法:

  1. 将gmssl.bb中的全部内容复制到openssl.bb中去,然后编译openssl(bitbake openssl),这样外壳是OpenSSL,但实际编译的内容为GMSSL(实现了挂羊头卖狗肉的效果);
  2. 将编译成功的文件复制到文件系统中;
  3. 再次执行 ldd /usr/bin/testapp 时,就可以正确的显示依赖关系了;
root@t690mp-evb2-va: MACHINE=t690mp-evb2-va bitbake openssl -c cleanall	--> 清空编译环境
root@t690mp-evb2-va: MACHINE=t690mp-evb2-va bitbake openssl			    --> 重新编译openssl
root@t690mp-evb2-va: cp -rf /localhdd/jack/tmp-glibc/work/riscv64-tih-linux/openssl/1.1.1q-r0/image/* /share/samba/public/shared/jack/rootfs/				                    --> 将编译生成的文件复制到文件系统中

2. 编译CCAT

root@t690mp-evb2-va:  MACHINE=t690mp-evb2-va bitbake ccat -c cleanall	--> 清空编译环境
root@t690mp-evb2-va:  MACHINE=t690mp-evb2-va bitbake ccat			    --> 重新编译ccat
root@t690mp-evb2-va:  cp -rf /localhdd/jack/tmp-glibc/work/t690mp_evb2_va-tih-linux/ccat/1.0-r0/image/* /share/samba/public/shared/jack/rootfs/             		            --> 将编译生成的文件复制到文件系统中

3. 编译Engine

  采用GMSSL替代了OpenSSL的形式,那么ccat-engine.bb也必须做如下相应的修改才行:
在这里插入图片描述

root@t690mp-evb2-va: MACHINE=t690mp-evb2-va bitbake ccat-engine -c cleanall	--> 清空编译环境
root@t690mp-evb2-va: MACHINE=t690mp-evb2-va bitbake ccat-engine				--> 重新编译engine
root@t690mp-evb2-va: cp -rf /localhdd/jack/tmp-glibc/work/riscv64-tih-linux/ccat-engine/1.0-r0/image/* /share/samba/public/shared/jack/rootfs/					                    --> 将生成的文件复制到文件系统中

4. 编译文件系统(rootfs)

为什么需要重编文件系统?啥时候需要重编文件系统?
1)当采用网络挂载(NFS)的时候,不需要重编文件系统,只需将新编译的openssl、ccat、engine等文件复制到文件系统中即可(毕竟文件系统是在服务器上呢,没在开发板上,只需使用linux命令cp完成复制即可);
2)当文件系统是烧写到了SD卡或者eMMC中时,则需要重编文件系统,然后将新生成的文件系统重新烧写到SD卡或者eMMC。
  为什么此种情况需要重编文件系统?
  那是因为我们若想将新编译的gmssl的文件复制到文件系统中,那必须使用linux的scp命令,而该命令在使用的过程中会调用算法相关的,这导致了openssl的部分内容无法被替换。

编译文件系统前需要做的工作:
在gitee上拉取最新的gmssl_2.5.4.bb,然后将该文件内容完全复制到openssl_1.1.1q.bb中。

编译命令

root@t690mp-evb2-va: MACHINE=t690mp-evb2-va bitbake tih-full-cli-image -c cleanall
root@t690mp-evb2-va: MACHINE=t690mp-evb2-va bitbake tih-full-cli-image

5. 测试

  1. 将文件系统烧写到eMMC或者SD卡中,并启动linux;
  2. 启动完成之后,打开文件 c1xxx_dev0.conf (命令:vi /etc/c1xxx_dev0.conf),做如下修改:

新发布的CCAT,默认已经是中断模式,即Cy0CorePolled的默认值已经是2,此种情况下,就不需要再执行该步骤了

在这里插入图片描述
4. 执行命令:/etc/init.d/qat_service start

在这里插入图片描述
6. 性能测试的命令:
硬算法:openssl speed -evp sms4-cbc -async_jobs 1 -elapsed -engine ccatengine
软算法:openssl speed -evp sms4-cbc -async_jobs 1 -elapsed
7. ccat-engine中的测试demo的运行方式
在这里插入图片描述
以 sm4_ecb 为例:
硬算法:testapp -engine ccatengine -v sm4_ecb
软算法:testapp -v sm4_ecb

http://www.lryc.cn/news/222812.html

相关文章:

  • 使用Selenium发邮件附件
  • 公共数据这座金矿,授权运营为何是赋能的关键路径?
  • 昇腾CANN 7.0 黑科技:大模型推理部署技术解密
  • OAuth 2.0
  • 7个设计师必备的Figma汉化插件,高效设计超简单!
  • 缓存-基础理论和Guava Cache介绍
  • 机器人伺服驱动控制环
  • 单链表(3)
  • Android14前台服务适配指南
  • Spring Boot中使用Spring Data JPA访问MySQL
  • Go 语言函数闭包(匿名函数)
  • 2023年11月编程语言流行度排名
  • apache-maven-3.6.3 安装配置教程
  • 你一般什么时候使用GPT
  • kubernetes (k8s)的使用
  • RK3568平台开发系列讲解(音视频篇)RTMP 推流
  • 掌握这几个技巧,才敢称为Jenkins大神!
  • 帷幄内容管理系统:从立人设、做内容到定向投流,品牌 KOS 体系打造「百万导购」
  • 5.vue3项目(五):实现顶部导航栏功能:导航栏静态搭建,菜单折叠功能实现,面包屑动态展示路径,刷新页面功能,全屏功能
  • unittest 统计测试执行case总数,成功数量,失败数量,输出至文件,生成一个简易的html报告带饼图
  • 推荐一款功能强大的在线文件预览工具-kkFileView
  • 【Linux】磁盘阵列,了解不同raid的特点
  • Go 语言初探:从基础到实战
  • Kotlin文件和类为什么不是一对一关系
  • Kubernetes实战(四)-部署docker harbor私有仓库
  • IDEA JAVA项目 导入JAR包,打JAR包 和 JAVA运行JAR命令提示没有主清单属性
  • c#输入和输出
  • 设置区块链节点输出等级为警告级,并把日志存储阈值位100MB并验证;
  • perl列表创建、追加、删除
  • leetcode刷题日记:94. Binary Tree Inorder Traversal(二叉树的中序遍历)