【OP-TEE 3.8.0学习】001_运行环境的搭建及编译

OP-TEE 编译流程 一、概述: 1. OPTEE中的编译目标: OPTEE中需要被编译的目标分为3类: optee core:这里是optee的内核代码(运行在Secure EL1,对应目标为core) optee SDK:分为32/64位, 用来编译用户态TA的开发环境(对应目标为ta_arm32/ta_arm64) optee DTA: DTA(动态TA)也就是optee的用户态TA,其是借助opteeSDK编译的,与前两者编译是分开的(DTA运行在Secure EL0) 2. DTA与PTA: ... 阅读详情
AI摘要

本文详细介绍了如何在Ubuntu 20.04上搭建OP-TEE 3.8.0开发环境,包括安装必要的依赖库、配置git、获取OP-TEE源代码、同步源代码、编译工具链及QEMU等步骤。同时提供了常见问题解决方案,如编译错误和网络问题处理方法。

 

一、OP-TEE开发环境搭建(Ubuntu-20.04 & op-tee 3.8.0)

1. OP-TEE开发环境需要使用各种依赖库

sudo apt-get install android-tools-adb android-tools-fastboot autoconf automake bc \
bison build-essential cscope curl device-tree-compiler expect flex ftp-upload gdisk \
iasl libattr1-dev libc6:i386 libcap-dev libfdt-dev libftdi-dev libglib2.0-dev \
libhidapi-dev libncurses5-dev libpixman-1-dev libssl-dev libstdc++6 libtool \
zlib1g zlib1g:i386 libtool-doc gfortran make mtools netcat python-crypto nzip \
uuid-dev xdg-utils xterm xz-utils python3-pip python3-pyelftools texinfo texlive \

2. git配置

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

3. 安装repo

$ wget https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
$ sudo chmod 777 git-repo
$ sudo mv git-repo /usr/bin/repo

4. 获取OP-TEE源代码

repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 3.8.0

获取op-tee源代码时出现如下异常:

 /usr/bin/env: ‘python’: No such file or directory

针对上述异常的解决办法:

5. sync OP-TEE源代码

repo sync -c -j16

sync后op-tee工程目录如下:

如果在执行repo sync时出现“remote:Repository not found”的报错提示,则需要修改open-tee/.repo目录中的manifest.xml文件,将该文件中所有project域中的“.git”删除,也可以通过如下指令进行修改:

sed -i "s/\.git//g" .repo/manifest.xml

修改完成之后,重新执行repo sync来获取OP-TEE的代码。

6. 获取编译OP-TEE的toolchain

$ cd build
$ make -f toolchain.mk toolchains

查看toolchain.mk文件可知,执行make指令之后,系统会去下载toolchains的tar包,包括32位和64位的编译链接工具,下载完成后会进行解压操作。

define dltc
        @if [ ! -d "$(1)" ]; then \
                mkdir -p $(1); \
                echo "Downloading $(3) ..."; \
                # 下载
                curl -s -L $(2) -o $(TOOLCHAIN_ROOT)/$(3).tar.xz; \
                # 解压
                tar xf $(TOOLCHAIN_ROOT)/$(3).tar.xz -C $(1) --strip-components=1; \
        fi
endef

如果执行“make -f toolchain.mk toolchains”命令后,一直卡在“Downloading xxx ...”那。

手动到https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads下载指定toolchain(toolchain.mk指定了AARCH32_GCC_VERSION和AARCH64_GCC_VERSION)。

这里下载的是gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz和gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz

将下载的toolchain的tar包放到op-tee源代码的根目录下的toolchains目录,并进行解压

$ tar xf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C aarch32 --strip-components=1
$ tar xf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C aarch64 --strip-components=1

7. 编译QEMU

$ cd build
$ make -f qemu_v8.mk all

编译时报出来的问题1:

Traceback (most recent call last):
  File "scripts/pem_to_pub_c.py", line 61, in <module>
    main()
  File "scripts/pem_to_pub_c.py", line 24, in main
    from Crypto.PublicKey import RSA
ModuleNotFoundError: No module named 'Crypto'
make[1]: *** [mk/subdir.mk:162: out/arm/core/ta_pub_key.c] Error 1
make[1]: Leaving directory '/home/xiaolinwu/xiaolin/op-tee/optee_os'
make: *** [common.mk:396: optee-os-common] Error 2
Traceback (most recent call last):
  File "out/arm/export-ta_arm32/scripts/sign_encrypt.py", line 258, in <module>
    main()
  File "out/arm/export-ta_arm32/scripts/sign_encrypt.py", line 131, in main
    from Cryptodome.Signature import pss
ModuleNotFoundError: No module named 'Cryptodome'
make[1]: *** [ta/arch/arm/link.mk:101: out/arm/ta/avb/023f8f1a-292a-432b-8fc4-de8471358067.ta] Error 1
make[1]: Leaving directory '/home/xiaolinwu/xiaolin/op-tee/optee_os'
make: *** [common.mk:396: optee-os-common] Error 2

安装pycrypto、pycryptodomex

$ sudo pip3 install pycrypto
$ sudo pip3 install pycryptodomex

编译时报出来的问题2:卡住此处

install libcrypto.pc -> /home/xiaolinwu/xiaolin/op-tee/out-br/target/usr/li
树莓派+TPU USB加速器实现低延迟深度学习推理 边缘AI推理是指在资源受限的终端设备上执行模型预测任务,其核心原理是将计算密集型张量运算卸载至专用AI加速器(如TPU),以规避CPU通用计算的效率瓶颈。技术价值在于显著降低延迟、功耗与部署成本,支撑实时性要求严苛的工业质检、智能摄像头等场景。关键实现路径包括模型量化(INT8压缩)、TensorFlow Lite格式转换及edgetpu_compiler编译适配。本文聚焦TPU USB加速器在树莓派上的实操落地,覆盖从PyTorch模型导出、PTQ量化、驱动安装到实时视频流推理的完整链路,解决‘能跑’到‘ 阅读详情

相关推荐

使用OP-TEE进行可信软件开发

TEE提供了一个隔离的环境,以确保代码/数据的完整性和机密性。运行Linux或Android的典型嵌入式系统在内核和用户空间包中都暴露出大量安全漏洞。漏洞可能使攻击者能够访问敏感信息和/或插入恶意软件。TEE增加了一个额外的安全层,TEE上运行的代码/数据不能从正常世界的操作系统(如Linux/Android)访问/篡改。在TEE(安全世界)上运行的软件通常包括一个小型的面向安全的操作系统(例如:OP-TEE OS)以及可信的应用程序。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 624

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

避坑指南:Spring3集成OpenAPI时泛型响应失效的3种解决方案

本文深入探讨了Spring3集成OpenAPI时泛型响应失效的问题,提供了三种实用解决方案:移除@Schema注解、使用@ArraySchema包装泛型以及自定义Schema处理器。针对不同项目规模,详细分析了各方案的适用场景、优缺点及性能影响,帮助开发者高效生成准确的接口文档,提升前后端协作效率。

weixin_30839881的博客 100

QGIS插件实战:用百度地图AOI数据做个城市公园分析,从下载到出图全记录

本文详细介绍了如何利用QGIS的百度地图AOI插件进行城市公园分析,从插件安装、数据获取到空间分析与可视化全流程。通过实战案例演示了公园面积统计、服务范围缓冲区分析及专题地图制作,帮助用户高效完成城市绿地评估工作。

weixin_30790841的博客 556

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 586

(详细总结)python爬取 163收件箱邮件内容,收件箱列表的几种方法(urllib, requests, selenium)

需求:最近有一个需求,需要将163邮箱收件箱里面的所有邮件的内容全部copy下来,整理到一个word里面,不多也就28页的邮件(不要问我为什么有这需求,不告诉你),自己手动去ctrl+ cv 的话,估计要搞吐。然后就想能不能用python的爬虫来实现,虽然过程比较苦(后期改bug改的要吐了)。但是会后还是将需求实现了。这基本也算是入门了 urllib、requests、selenium这几个py...

man_tou_22 1万+

手把手教你学Simulink——基于Simulink的固态变压器(SST)多级协同控制

摘要:本文详细介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为新一代智能电网核心设备,通过AC-DC整流、DC-DC隔离和DC-AC逆变三级架构实现电能高效转换。针对多级耦合难题,提出能量-功率协同控制策略:纵向解耦电压环与功率前馈,横向联动级间功率指令。在Simulink中搭建10kV/400V系统模型,实现直流母线电压波动<2%的动态性能。特别设计了负载突变时的三级协同机制,通过虚拟惯性算法和前馈控制实现快速响应。文章包含完整的建模步骤、控制推导和参数设置,为电力电子工

MHD0815的博客 192

嵌入式工程师必学(52):储能系统ESS

能量存储系统(ESS,Energystoragesystems)存在于各种各样的尺寸、形状和技术中。储能系统的技术,即基本的储能机制,自然会影响其重要特性,包括成本、安全性、性能、可靠性和寿命。然而,尽管基础技术很重要,但一个成功的储能项目依赖于对该技术的彻底和深思熟虑的实施,以实现项目的目标。成功的实施取决于储能系统的架构和组装情况。系统的体系结构可以决定其性能和可靠性,与它所使用的技术一致,甚至与之无关。

码农17年的博客 1441

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合

可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖;

Limiiiing的博客 115

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 解决ping github.com超时问题
下一篇: 【OP-TEE 3.8.0学习】003_Trusted Applications(TAs)
林知共创
博客等级 码龄15年 3435粉丝 97原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值