您的位置:首页 > 运维架构

OP-TEE 在QEMU以及FVP平台上的编译、运行与测试

2017-02-24 20:02 507 查看
主要步骤根据optee在github的build说明https://github.com/OP-TEE/build来完成,主要参考了http://blog.csdn.net/u010071291/article/details/50774082的博客进行了补充和一些错误的解决方法。大家如果也和我一样的初学的话非常推荐上面博主的文章,可以学到很多东西。

一.准备开发环境。

安装开发用的Linux操作系统。我是在在Win10 64位上安装了Ubuntu 14.04 LTS 64位的VMWare虚拟机。建议大家要把内存和硬盘开足建议至少2G内存,80G硬盘吧。

因为这个编译环境比较大,后续如果再按照Fastmodel和DS-5等开发套件也比较占地方,如果硬盘突然被占满启动就会发生root用户无法登陆图形化页面打不开的错误。

解决方法:就是命令行登录其他用户删除一些没用的大文件,然后重启再修复根据错误修复图形化页面。再根据具体错误百度一下就行。

当然也可以在后来拓展硬盘具体方法可以参考我下面的博客。

二.安装依赖的工具

安装repo

(1)repo是基于git基础开发,可以把git理解为Linux命令而repo相当于可以集合git命令的脚步,也就是可以帮助你一下子git clone所有所需的文件,不再需要一个个下载。

(2)所以我们先要安装git 命令:sudo apt-get install git

(3)然后在用户主目录新建一个名为.bin的文件夹。命令:sudomkdir ~/.bin

(4)下载repo

sudo curlhttps://gerrit.googlesource.com/git-repo/repo > ~/.bin/repo

注意:这个条下载一般都是不成功告终的,所以建议大家参考下面这个博客的解决方法二自己下载博主的repo。
http://blog.csdn.net/xiaokeweng/article/details/46743409
然后再在repo文件夹下用下面的命令将repo复制到.bin文件夹

命令:sudo cprepo ~/.bin/repo

(5)给repo加上可执行权限

sudochmod a+x ~/.bin/repo

(6)将repo配置到环境变量

sudogedit ~/.bashrc

(7)在文件末添加下面的内容保存退出

# repo aliasrepo="~/.bin/repo"

(8)同步文件变化

source.bashrc

至此repo安装结束,现在我们可以在任何目录用repo同步源码了。

三.安装依赖的其他库文件。

如果不愿意看英文的可以直接复制我下面的命令,这个是op-tee最新的需要依赖的库文件,

如果其中一个库文件没有安装后面会报相应找不到库文件的错误。

$ sudo apt-get install android-tools-adbandroid-tools-fastboot autoconf \

automake bc bison build-essential cscope curl flex ftp-upload gdisk \

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 libz1:i386 make mtools netcat \

python-crypto python-serial python-wand unzip uuid-dev xdg-utils \

xterm xz-utils zlib1g-dev

四 下载和编译运行OP-TEE源代码

下载源代码的方法很简单,执行如下命令即可。

(1)建立工程目录

mkdir -p $HOME/devel/optee

cd $HOME/devel/optee

(2)下载对应的xml到成功目录下

注意这时要下载对应的xml见下图,而且有些还需要再安装其他依赖文件,我这里分别对FVP和QEMU平台做具体说明:

注意:最好下载对应的stable版本,否则容易报错尤其对小白来说。



QEMU平台直接下载

repo init -uhttps://github.com/OP-TEE/manifest.git -m default_stable.xml -b master

如果报unable toaccess 'https://github.com/pythonsoft/test.git: Failed to connect to github.comport 443的错误可以参考以下两篇博客进行解决。

http://blog.csdn.net/tingyuanss/article/details/43559979

http://blog.csdn.net/lyc_stronger/article/details/51954852

FVP平台需要下下载ARM FVP的对应库文件再进行构建

下载地址https://developer.arm.com/products/system-design/fixed-virtual-platforms

注意这里要下载linux主机版,如下图所示:



也就是FM000-KT-00035-r10p2-20rel0.tgz文件,然后特别注意解压后文件夹Foundation_Platformpkg的位置要在你工程目录下,也就是现在的devel/optee/目录下。

然后和qemu一样

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

然后运行repo sync。开始下载下载过程可能比较慢。

(3)编译交叉工具链,即交叉编译器,

cd build

make -f toolchain.mk toolchains

(4)编译源码,并启动模拟器运行OP-TEE

Make all run

如果报错少库的话要安装对应的库。其他错误也可以百度一下基本都可以解决。

再使用makeall-clean 命令清理编译文件,进行重新编译。

成功都就会启动normal world和secure world两个shell



在qemu命令行界面下输入C,然后回车,启动richos(linux os)和optee_os,效果图如下:



FVP效果如下图所示



五.测试

先在normal中运行tee-supplicant & 加载optee需要的驱动模块

然后再执行xtest运行所有测试成功后如下图所示:



测试完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qemu linux Trustzone github FVP