ubuntu20.04+optee+qemu_v8环境搭建

一、安装依赖库

创建一个文件夹,存放optee相关代码

mkdir optee.v8

在这里插入图片描述

安装依赖库

sudo dpkg --add-architecture i386
sudo apt install gcc make vim git expect build-essential linux-headers-uname -r
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:i386 libtool make mtools \
     netcat unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev zlib* libz1:i386

在这里插入图片描述

二、GIT配置

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

三、安装REPO

sudo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
sudo chmod +x repo

四、从GITHUB中拉去OPTEE代码的命令

sudo wget https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
sudo chmod 777 git-repo
sudo mv git-repo /usr/bin/repo
sudo 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
sudo sed -i "s/.git//g" .repo/manifest.xml //注意这里的双引号请改成英文的
sudo repo sync -j4

问题

此图片的alt属性为空;文件名为image-4.png

可以尝试

sudo apt-get install python-is-python3

或者

whereis python3
sudo ln -s /usr/bin/python3 /usr/bin/python

五、安装工具链

cd build
sudo make -f toolchain.mk toolchains

注意, 由于网速原因工具链下载可能会失败,对策:
使用浏览器打开下面的网页,鼠标点击下载gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
和gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz包

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/8-3-2019-03

下载完两个安装包后,将其拷贝到toolchains目录下,并解压(没有这个目录,请手动创建,在build的上一层目录创建)

sudo mkdir toolchains
cd toolchains
sudo mkdir aarch32
sudo mkdir aarch64
sudo tar -xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C aarch32 --strip-components=1
sudo tar -xvf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C aarch64 --strip-components=1

然后删除build/toolchain.mk中的下面的行

curl -s -L $(2) -o $(TOOLCHAIN_ROOT)/$(3).tar.xz;

最后,再次敲击(并没有做什么操作)

make -f toolchain.mk toolchains

六、编译OPTEE

sudo make -f qemu_v8.mk all 

此图片的alt属性为空;文件名为image-5.png

sudo vim /usr/bin/optee.v8/qemu/scripts/tracetool/__init__.py

将is 改为 ==

此图片的alt属性为空;文件名为image-7.png

问题二:安装Crypto

此图片的alt属性为空;文件名为image-8.png

sudo pip install pycrypto

问题三:安装elftools

此图片的alt属性为空;文件名为image-9.png

sudo pip install pyelftools

问题四:安装Cryptodome

此图片的alt属性为空;文件名为image-10.png

sudo pip install pycryptodomex

问题五:qemu不支持python3.x,只支持python2.6及之后版本

前面步骤四拉取optee源码时,将python软连接改为python3

sudo ln -s /usr/bin/python3 /usr/bin/python

现在需要改回python2

sudo install python-is-python2

问题六:不应使用root权限

此图片的alt属性为空;文件名为image-11.png

sudo make FORCE_UNSAFE_CONFIGURE=1 -j1 V=s 

七、运行optee

 sudo make -f qemu_v8.mk run-only

在这里插入图片描述
在qemu窗口输入c
在这里插入图片描述
在normal登录用户root 或者 test

在这里插入图片描述
搭建完毕.


版权声明:本文为qq_24573573原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。