当前位置:网站首页>基於 QEMUv8 搭建 OP-TEE 開發環境
基於 QEMUv8 搭建 OP-TEE 開發環境
2022-07-06 22:20:00 【stone8761】
開發環境:Ubuntu 22.04 desktop 虛擬機
1、環境需求
$ sudo dpkg --add-architecture i386 $ sudo apt-get update
$ sudo apt-get install android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential ccache codespell cpio cscope curl device-tree-compiler expect flex ftp-upload gdisk iasl libattr1-dev libcap-dev libcap-ng-dev libfdt-dev libftdi-dev libglib2.0-dev libgmp-dev libhidapi-dev libmpc-dev libncurses5-dev libpixman-1-dev libssl-dev libtool make mtools netcat ninja-build python-crypto python3-crypto python-pyelftools python3-pycryptodome python3-pyelftools rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev
2、安裝 repo
$ mkdir ~/bin
$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=~/bin:$PATH
更改 repo 獲取源,在 /etc/profile 文件最後添加如下內容,然後重啟系統
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
3、獲取 OP-TEE 代碼
$ mkdir OP-TEE
$ cd OP-TEE/
$ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
$ repo sync -j4 --no-clone-bundle
備注1:提示 “Failed to connect to boringssl.googlesource.com port 443: Connection timed out” 錯誤是因為相關網址無法訪問,可使用如下命令替換網址源:
$ git config --global url."https://github.com/google/boringssl.git".insteadOf "https://boringssl.googlesource.com/boringssl"
$ git config --global url."https://hub.fastgit.org/google/boringssl.git".insteadOf "https://boringssl.googlesource.com/boringssl"
備注2:sync 操作會因為 github 鏈接失敗而報錯,報錯後重新執行即可。但 sync 每次都會更新所有庫,只要有一個庫鏈接失敗都會報錯,但可能這個庫已經下載完成了。因此可以查看對應的 manifest 文件,檢查是不是所有庫都已經下載完成。如果都已經下載完成即可以進入到下一步驟。manifest.xml 文件在 .repo 目錄下。
4、編譯
$ cd ./build
$ make -j2 toolchains
$ make -j `nproc`
5、運行 qemu
依然在 build/ 目錄下
$ make run
正確運行後會彈出兩個虛擬的串口終端,其中端口號為 54320 的是非安全系統,端口號為 54321 的為安全系統:
進入 qemu 終端後輸入 c 啟動系統:
(qemu) c
非安全系統(Linux)可以通過 root 用戶登錄

安全系統:

備注1:運行過程中可能會報 python 命令找不到的錯誤,但是 ubuntu 下已經安裝了 python。這是因為名稱問題,安裝的是 python2 和 python3,這裏可以創建一條鏈接解决問題:
$ sudo ln -s /usr/bin/python3 /usr/bin/python
備注2:第一次執行 make run 會編譯相關組件再運行 qemu,之後可以直接運行 make run-only 直接運行。
6、運行測試程序
使用 ps 命令檢查 tee-supplicant 進程是否存在

運行 xtest 測試例程
$ xtest

边栏推荐
- Seata聚合 AT、TCC、SAGA 、 XA事务模式打造一站式的分布式事务解决方案
- Bat script learning (I)
- 每日一题:力扣:225:用队列实现栈
- 设置状态栏样式Demo
- 2500个常用中文字符 + 130常用中英文字符
- Wechat red envelope cover applet source code - background independent version - source code with evaluation points function
- GPS from getting started to giving up (19), precise ephemeris (SP3 format)
- [sciter bug] multi line hiding
- 硬件開發筆記(十): 硬件開發基本流程,制作一個USB轉RS232的模塊(九):創建CH340G/MAX232封裝庫sop-16並關聯原理圖元器件
- Oracle control file and log file management
猜你喜欢

GPS from entry to abandonment (XVII), tropospheric delay

CCNA Cisco network EIGRP protocol

zabbix 代理服务器 与 zabbix-snmp 监控

【MySQL】Online DDL详解

How does the uni admin basic framework close the creation of super administrator entries?

重磅新闻 | Softing FG-200获得中国3C防爆认证 为客户现场测试提供安全保障

GNN, please deepen your network layer~

Management background --2 Classification list

GPS从入门到放弃(十九)、精密星历(sp3格式)

第4章:再谈类的加载器
随机推荐
中国1,4-环己烷二甲醇(CHDM)行业调研与投资决策报告(2022版)
UNI-Admin基础框架怎么关闭创建超级管理员入口?
Learn the principle of database kernel from Oracle log parsing
十二、启动流程
Qt | UDP广播通信、简单使用案例
Mysql相关术语
GPS from getting started to giving up (12), Doppler constant speed
Oracle control file and log file management
第3章:类的加载过程(类的生命周期)详解
C # réalise la liaison des données du rapport Crystal et l'impression du Code à barres 4
功能强大的国产Api管理工具
Oracle-控制文件及日志文件的管理
China 1,4-cyclohexanedimethanol (CHDM) industry research and investment decision-making report (2022 Edition)
小程序系统更新提示,并强制小程序重启并使用新版本
Notes de développement du matériel (10): flux de base du développement du matériel, fabrication d'un module USB à RS232 (9): création de la Bibliothèque d'emballage ch340g / max232 SOP - 16 et Associa
GNN, please deepen your network layer~
Unity3D学习笔记6——GPU实例化(1)
Embedded common computing artifact excel, welcome to recommend skills to keep the document constantly updated and provide convenience for others
【sdx62】WCN685X将bdwlan.bin和bdwlan.txt相互转化操作方法
Powerful domestic API management tool