当前位置: 首页 > 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

相关文章:

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

备注: 1,假设您已对方寸微电子的T690系列芯片的使用方式都有了一定的了解,然后需要构建基于GMSSL的文件系统,此文才对您有意义; 2,若您对方寸微电子的T690芯片不了解,但想进一步了解它&#xff…...

使用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都存在有兼容性问题&#xf…...

帷幄内容管理系统:从立人设、做内容到定向投流,品牌 KOS 体系打造「百万导购」

随着公域流量越来越贵,获客成本越来越高,品牌们已经越来越不满足于高曝光,而是更多地关注起销售转化率。继 KOL、KOC(关键意见消费者) 之后,KOS(关键意见销售)营销模式走入品牌的视野…...

5.vue3项目(五):实现顶部导航栏功能:导航栏静态搭建,菜单折叠功能实现,面包屑动态展示路径,刷新页面功能,全屏功能

目录 一、左侧菜单栏刷新,不要合并菜单 二、顶部tabbar静态搭建 1.新建文件 2.编辑页面 3.结果测试...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...