当前位置:网站首页>Mise en place d'un environnement de développement OP - tee basé sur qemuv8
Mise en place d'un environnement de développement OP - tee basé sur qemuv8
2022-07-06 22:20:00 【Stone8761】
Environnement de développement:Ubuntu 22.04 desktop Machine virtuelle
1、Besoins environnementaux
$ 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、Installation 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
Changement repo Obtenir la source,In /etc/profile À la fin du document, ajouter ce qui suit ,Puis redémarrez le système
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
3、Accès OP-TEE Code
$ 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
Remarques1:Conseils “Failed to connect to boringssl.googlesource.com port 443: Connection timed out” L'erreur est due au fait que l'adresse Web pertinente n'est pas accessible , Vous pouvez remplacer la source de l'URL par la commande suivante :
$ 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"
Remarques2:sync L'opération sera effectuée parce que github Le lien a échoué avec une erreur , Exécuter à nouveau après avoir signalé une erreur .Mais... sync Toutes les bibliothèques sont mises à jour à chaque fois , Chaque fois qu'un lien de bibliothèque échoue, une erreur est signalée , Mais peut - être que cette bibliothèque a été téléchargée . Pour que vous puissiez voir manifest Documentation, Vérifiez si toutes les bibliothèques ont été téléchargées . Si le téléchargement est terminé, vous pouvez passer à l'étape suivante .manifest.xml Documents .repo Sous la table des matières.
4、Compiler
$ cd ./build
$ make -j2 toolchains
$ make -j `nproc`
5、Exécution qemu
Toujours build/ Sous la table des matières
$ make run
Deux terminaux série virtuels apparaîtront après un fonctionnement correct , Où le numéro de port est 54320 Ce n'est pas un système de sécurité ,Le numéro de port est 54321 Pour le système de sécurité :
Entrée qemu Entrée arrière du terminal c Démarrer le système:
(qemu) c
Systèmes non sécuritaires (Linux)Peut passer root Connexion utilisateur

Système de sécurité:

Remarques1: Il peut être signalé pendant l'exécution python Erreur non trouvée par la commande,Mais ubuntu Le suivant est déjà installé python. C'est à cause d'un problème de nom ,Installé python2 Et python3, Un lien peut être créé ici pour résoudre le problème :
$ sudo ln -s /usr/bin/python3 /usr/bin/python
Remarques2:Première exécution make run Les composants pertinents seront compilés et exécutés à nouveau qemu, Après ça, on peut aller droit au but make run-only Fonctionnement direct.
6、Exécuter le Programme d'essai
Utiliser ps Contrôle des commandes tee-supplicant Le processus existe

Exécution xtest Routine d'essai
$ xtest

边栏推荐
- GPS从入门到放弃(十六)、卫星时钟误差和卫星星历误差
- [Digital IC hand tearing code] Verilog burr free clock switching circuit | topic | principle | design | simulation
- ResNet-RS:谷歌领衔调优ResNet,性能全面超越EfficientNet系列 | 2021 arxiv
- 每日一题:力扣:225:用队列实现栈
- 网络基础入门理解
- How does the uni admin basic framework close the creation of super administrator entries?
- C # realizes crystal report binding data and printing 4-bar code
- [MySQL] online DDL details
- Oracle control file and log file management
- 0 basic learning C language - interrupt
猜你喜欢
Learn the principle of database kernel from Oracle log parsing

2022年6月国产数据库大事记-墨天轮

HDR image reconstruction from a single exposure using deep CNN reading notes

网络基础入门理解

ZABBIX proxy server and ZABBIX SNMP monitoring

图像的spatial domain 和 frequency domain 图像压缩

HDR image reconstruction from a single exposure using deep CNNs阅读札记

GPS从入门到放弃(十二)、 多普勒定速

GPS from getting started to giving up (16), satellite clock error and satellite ephemeris error

Seata aggregates at, TCC, Saga and XA transaction modes to create a one-stop distributed transaction solution
随机推荐
GPS from getting started to giving up (XI), differential GPS
GPS from getting started to giving up (XVIII), multipath effect
微信红包封面小程序源码-后台独立版-带测评积分功能源码
Chapter 4: talk about class loader again
Management background --4, delete classification
Barcodex (ActiveX print control) v5.3.0.80 free version
CCNA-思科网络 EIGRP协议
What a new company needs to practice and pay attention to
[leetcode daily clock in] 1020 Number of enclaves
NetXpert XG2帮您解决“布线安装与维护”难题
GPS从入门到放弃(二十)、天线偏移
墨西哥一架飞往美国的客机起飞后遭雷击 随后安全返航
Codeforces Round #274 (Div. 2) –A Expression
Powerful domestic API management tool
Kohana 数据库
China 1,4-cyclohexanedimethanol (CHDM) industry research and investment decision-making report (2022 Edition)
Force buckle 575 Divide candy
Mongodb (III) - CRUD
Unity3D学习笔记6——GPU实例化(1)
Chapter 3: detailed explanation of class loading process (class life cycle)