【UBUNTU20安装OP-TEE教程】

UBUNTU初始化

参考

参考博客1
参考博客2

一、前期必备环境介绍(网络问题导致安装失败(repo拉取源码)的问题,对于这个解决方案 参考的两个博主都有讲解,我就不再进行解释了)

Ubuntu 20.04.5 LTS 安装在VM里面
这里注意内存设置50GB 处理器4核 为了保证后期编译以及安装大小。

1.安装依赖项目

sudo apt install \
  android-tools-adb \
  android-tools-fastboot \
  autoconf \
  automake \
  bc \
  bison \
  build-essential \
  ccache \
  cscope \
  curl \
  device-tree-compiler \
  expect \
  flex \
  ftp-upload \
  gdisk \
  iasl \
  libattr1-dev \
  libcap-dev \
  libfdt-dev \
  libftdi-dev \
  libglib2.0-dev \
  libgmp3-dev \
  libhidapi-dev \
  libmpc-dev \
  libncurses5-dev \
  libpixman-1-dev \
  libssl-dev \
  libtool \
  make \
  mtools \
  netcat \
  ninja-build \
  python3-crypto \
  python3-cryptography \
  python3-pip \
  python3-pyelftools \
  python3-serial \
  rsync \
  unzip \
  uuid-dev \
  xdg-utils \
  xterm \
  xz-utils \
  zlib1g-de

这里建议安装 “slirp” 的依赖项。
因为后期编译的时候可能会报 缺少了名为 “slirp” 的依赖项。从而导致qemu编译失败

sudo apt-get install libnfs-dev libseccomp-dev libxkbcommon-dev slirp
sudo apt-get install gnome-terminal

上面这个也需要安装

2.安装开发工具

在home文件目录下执行下面代码

网络不好的情况下安装repo(清华源)
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
$ chmod a+x ~/bin/repo

网络好的情况下安装repo(官方安装)
$mkdir ~/bin
$PATH=~/bin:$PATH
$curl https://storage.googleapis.com/git-repo-downloads/repo > $~/bin/repo
$chmod a+x ~/bin/repo

二 、拉取OP-TEE

创建文件下 同样在home路径

xx@ubuntu:~$ mkdir optee
xx@ubuntu:~$ cd optee
以下根据实际情况拉取符合自己网络的

1.repo拉取代码(清华镜像)

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.22.0

repo拉取代码(官方)

repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml -b 3.22.0

这一步可能会拉取失败,如果失败了我的做法是删除optee文件夹重新创建重新拉取

拉取成功后可能会让你填写邮箱

git config --global user.name "yourname"
git config --global user.email "youremail"

填写即可

2.拉取代码

repo sync -j4
这里的j4 指的是4线程并行,之前处理器设置4线程也是这个原因
这里拉取的过程中会由于网络状况出现错误,我的是一出现错误就回到创建文件夹那一步重新创建直到拉取成功为止。这里也是最头痛的 过了这一步就好了,如果没有解决可以参考上方的另外两篇文章
repo sync has finished successfully
最后跑完会出现这个,我建议跑完之后打一个用VM断点 防止后续步骤出错

3.拉取toolchains(拉取成功记得打用VM断点,后续编译出错恢复到这一步)

在这里插入图片描述
跑完上面那一步。创建的optee文件会出现这个文件夹,输入以下指令,如果失败之后重新执行make ,直到拉取成功为止,下面的make就不要用-j多线程防止出错

$ cd build
$ make -f toolchain.mk toolchains

在这里插入图片描述
文件夹里面的东西
在这里插入图片描述

三、编译(编译成功用VM打断点,防止后续出错恢复)

现在可以开始编译了,进入刚刚的build文件夹,大约两三个小时耐心等待(编译过程中要下载东西不能断网
注意:make -f qemu_v8.mk all这个代码不能改多线程 我之前改了就执行出错了,所以就用这个代码

cd build
make -f qemu_v8.mk all

可能出错(这个错误是因为没安装slirp 防止这个所以前面一定安装)

n-time dependency libnfs found: NO (tried pkgconfig)
Run-time dependency appleframeworks found: NO (tried framework)
Run-time dependency appleframeworks found: NO (tried framework)
Run-time dependency libseccomp found: NO (tried pkgconfig)
Has header "cap-ng.h" : NO 
Run-time dependency xkbcommon found: NO (tried pkgconfig)
Run-time dependency slirp found: NO (tried pkgconfig)

../meson.build:679:2: ERROR: Dependency "slirp" not found, tried pkgconfig


ERROR: meson setup failed

make: *** [qemu_v8.mk:247: /home///build/../qemu/build/config-host.mak] Error 1

四、启动qemu(切换root权限)

$ cd build       //进去build目录(已经在了可以不用进去)  
$ make -f qemu_v8.mk run-only       //启动qemu v8并运行OP-TEE 

问题1.

make -f qemu_v8.mk run-only运行命令没有启动窗口怎么办
重新安装 GNOME 终端: 如果问题仍然存在,尝试重新安装 GNOME 终端。
sudo apt-get install gnome-terminal

问题2.
root运行 make -f qemu_v8.mk run-only 进去了没有窗口出现下面代码

# Error constructing proxy for :1.117:/org/gnome/Terminal/Factory0: The connection is closed
# Failed to use specified server: The connection is closed
# Falling back to default server.
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: The connection is closed
# Error constructing proxy for :1.117:/org/gnome/Terminal/Factory0: The connection is closed
# Failed to use specified server: The connection is closed
# Falling back to default server.
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: The connection is closed

解决:

sudo gnome-terminal

会弹出一个新窗口,在新窗口执行

make -f qemu_v8.mk run-only

在这里插入图片描述
问题三
启动quem出现`


changing dir to build for make ""...
make[1]: Entering directory '/home/qemu/build'
config-host.mak is out-of-date, running configure
bash: line 3: ./config.status: No such file or directory
make[1]: *** No rule to make target 'config-host.mak', needed by 'Makefile.prereqs'.  Stop.
make[1]: Leaving directory '/home//qemu/build'
make: *** [GNUmakefile:11: all] Error 2




The link "qemu-system-aarch64" is broken.
This link cannot be used because its target "../qemu-system-aarch64" doesnt exist.

解决

cd /home/xx/optee/build/../qemu  ##进入qemu目录 清除重新编译 quem 进去的是刚刚安装optee build里面
make clean
make

五、执行成功(三个窗口)

在这里插入图片描述
会弹出三个窗口在

(qemu) c  输入c启动 另外两个窗口会打印东西

在这里插入图片描述
在NORMAL WORLD窗口输入 root即可
在输入 xtest
进行测试
测试成功
测试成功到此完结 如果有一些新问题欢迎大家补充一起讨论

  • 30
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值