【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的方式,导致依赖关系出现了混乱。
解决办法:
- 将gmssl.bb中的全部内容复制到openssl.bb中去,然后编译openssl(bitbake openssl),这样外壳是OpenSSL,但实际编译的内容为GMSSL(实现了挂羊头卖狗肉的效果);
- 将编译成功的文件复制到文件系统中;
- 再次执行 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. 测试
- 将文件系统烧写到eMMC或者SD卡中,并启动linux;
- 启动完成之后,打开文件 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
相关文章:
【T690 之十二】基于方寸EVB2开发板(T690芯片)构建基于GMSSL的文件系统的方式
备注: 1,假设您已对方寸微电子的T690系列芯片的使用方式都有了一定的了解,然后需要构建基于GMSSL的文件系统,此文才对您有意义; 2,若您对方寸微电子的T690芯片不了解,但想进一步了解它ÿ…...
使用Selenium发邮件附件
发邮件可以使用SMTP协议实现程序去发送,但附件的不能太大,一般不超过20M。 以下使用Selenium模拟发送邮件,跳过这个限制,网上找了很多资料,都没有完整实现的,那么自己实现一个,以下代码用Python…...
公共数据这座金矿,授权运营为何是赋能的关键路径?
数据要素市场化正开启下一个关键阶段。 自2014年大数据写入政府工作报告,到全国各地大数据交易所涌现,再到《数据二十条》颁布,中国数据要素产业探索之路已走过近十载。如今,国家大数据局正式成立,更是标志着数据要素…...
昇腾CANN 7.0 黑科技:大模型推理部署技术解密
CANN作为最接近昇腾AI系列硬件产品的一层,通过软硬件联合设计,打造出适合昇腾AI处理器的软件架构,充分使能和释放昇腾硬件的澎湃算力。针对大模型推理场景,CANN最新发布的CANN 7.0版本有机整合各内部组件,支持大模型的…...
OAuth 2.0
OAuth 2.0 是一种授权机制,允许应用程序访问第三方服务的用户数据,而不需要用户提供用户名和密码。其原理包括以下几个步骤: 应用程序向第三方服务请求授权,并提供自己的身份信息。 第三方服务向用户展示授权请求的具体内容和应用…...
7个设计师必备的Figma汉化插件,高效设计超简单!
Figma是一个著名的在线设计工具,拥有来自全球各地的超多设计师都在用,粉丝多多。其强大和灵活的设计功能使许多设计师都喜欢使用它。然而,为了进一步提高设计效率和扩展功能,许多开发人员开发了各种有用的Figma设计的汉化插件。在…...
缓存-基础理论和Guava Cache介绍
缓存-基础理论和Guava Cache介绍 缓存基础理论 缓存的容量和扩容 缓存初始容量、最大容量,扩容阈值以及相应的扩容实现。 缓存分类 本地缓存:运行于本进程中的缓存, 如Java的 concurrentHashMap, Ehcache,Guava Cache。 分布式缓…...
机器人伺服驱动控制环
伺服驱动器的控制环,包括:位置环、速度环、电流环这三种类型。 对于伺服的控制回路,内侧控制环的响应带宽一般会是外侧控制环的5到10倍。也就是说,电流环带宽大致是速度环的5到10倍,速度环带宽则约为位置环的5到10倍…...
单链表(3)
现在有一个指针p,指向数据2所在的结点的地址——那么如何访问这个数据2 前面说过指针访问数据成员使用的是 指向符->。则访问这个数据2就是——p->data.因为p一开始就指向数据2的结点地址了 那么如何访问数据3,4往后等等 访问3就是——p->next->data…...
Android14前台服务适配指南
Android14前台服务适配指南 Android 10引入了android:foregroundServiceType属性,用于帮助开发者更有目的地定义前台服务。这个属性在Android 14中被强制要求,必须指定适当的前台服务类型。以下是可选择的前台服务类型: camera: 相机应用。…...
Spring Boot中使用Spring Data JPA访问MySQL
Spring Data JPA是Spring框架提供的用于简化JPA(Java Persistence API)开发的数据访问层框架。它通过提供一组便捷的API和工具,简化了对JPA数据访问的操作,同时也提供了一些额外的功能,比如动态查询、分页、排序等。 …...
Go 语言函数闭包(匿名函数)
Go 语言函数闭包(匿名函数) 在Go语言中,闭包是一种特殊的匿名函数,它可以捕获并访问其周围的变量。闭包允许将函数与其引用的环境捆绑在一起,使得函数可以在其创建的范围之外继续使用这些变量。以下是关于Go语言闭包的…...
2023年11月编程语言流行度排名
点击查看最新编程语言流行度排名(每月更新) 2023年11月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多,大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…...
apache-maven-3.6.3 安装配置教程
链接:https://pan.baidu.com/s/1RkMXipnvac9EKcZyUStfGQ?pwdl32m 提取码:l32m 1. 将 maven 压缩包解压至指定文件夹 2. 配置环境变量 (1)打开此电脑-> 鼠标右键选择属性->点击高级系统设置 (2)点…...
你一般什么时候使用GPT
一般在寻求帮助的时候才使用gpt 一个优秀的gpt项目gpt-on-web...
kubernetes (k8s)的使用
一、kubernetes 简介 谷歌2014年开源的管理工具项目,简化微服务的开发和部署。 提供功能:自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics监控、日志监控、弹性和容错、API管理、服务安全等。官网:https://kubernetes.io/zh-cn…...
RK3568平台开发系列讲解(音视频篇)RTMP 推流
🚀返回专栏总目录 文章目录 一、RTMP 的工作原理二、RTMP 流媒体服务框架2.1、Nginx 流媒体服务器2.2、FFmpeg 推流沉淀、分享、成长,让自己和他人都能有所收获!😄 📢目前常见的视频监控和视频直播都是使用了 RTMP、RTSP、HLS、MPEG-DASH、 WebRTC流媒体传输协议等。 R…...
掌握这几个技巧,才敢称为Jenkins大神!
01、Performance插件兼容性问题 自由风格项目中,有使用 Performance 插件收集构建产物,但是截至到目前最新版本(Jenkins v2.298,Performance:v3.19),此插件和Jenkins都存在有兼容性问题…...
帷幄内容管理系统:从立人设、做内容到定向投流,品牌 KOS 体系打造「百万导购」
随着公域流量越来越贵,获客成本越来越高,品牌们已经越来越不满足于高曝光,而是更多地关注起销售转化率。继 KOL、KOC(关键意见消费者) 之后,KOS(关键意见销售)营销模式走入品牌的视野…...
5.vue3项目(五):实现顶部导航栏功能:导航栏静态搭建,菜单折叠功能实现,面包屑动态展示路径,刷新页面功能,全屏功能
目录 一、左侧菜单栏刷新,不要合并菜单 二、顶部tabbar静态搭建 1.新建文件 2.编辑页面 3.结果测试...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
高分辨率图像合成归一化流扩展
大家读完觉得有帮助记得关注和点赞!!! 1 摘要 我们提出了STARFlow,一种基于归一化流的可扩展生成模型,它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流(TARFlow&am…...
GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
项目进度管理软件是什么?项目进度管理软件有哪些核心功能?
无论是建筑施工、软件开发,还是市场营销活动,项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素,项目很容易陷入混乱,导致进度延误、成本超支,甚至失败。 项目进度管理软…...
C++ Saucer 编写Windows桌面应用
文章目录 一、背景二、Saucer 简介核心特性典型应用场景 三、生成自己的项目四、以Win32项目方式构建Win32项目禁用最大化按钮 五、总结 一、背景 使用Saucer框架,开发Windows桌面应用,把一个html页面作为GUI设计放到Saucer里,隐藏掉运行时弹…...
