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运行所有测试成功后如下图所示:
测试完成。
一.准备开发环境。
安装开发用的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运行所有测试成功后如下图所示:
测试完成。
相关文章推荐
- Trustzone OP-TEE 在QEMU平台上的编译、运行与测试
- TrustZone OP-TEE 在 FVP 编译与测试
- OP-TEE在HIKEY上的编译、运行与测试
- TrustZone——运行环境—QEMU—OP-TEE
- IntelliJ IDEA 编译maven项目以及运行测试前编译项目
- linux + busybox编译以及在qemu中运行
- Tcl/tk以及SQLite在BCM7038平台上面的编译及运行备忘
- 运行在TQ2440开发板上以及X86平台上的linux内核编译
- TrustZone——运行环境—QEMU—OP-TEE (新办法)
- 初识optee 在QEMU平台上的编译、运行
- 0.使用Qemu运行OP-TEE
- 命令行下编译Cocos2d-x-3.0新建的项目以及在多平台上运行
- iOS平台FFmpeg编译测试运行(备忘)
- 杀毒软件对InstallShield编译过程以及安装包运行的影响
- Android编译成公以及运行模拟器
- OO 中的继承分析:主要分析在编译和运行过程中 子类、父类 的字段和方法以及实例化时候在内存中分配 和 执行的先后,以及两个原则
- 如何编译可以在arm平台上运行的可执行程序?
- 运行QTP测试脚本后,将编译结果写入指定文件(四)
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- 在linux 上编译生成windows上运行的exe程序,交叉编译环境的配置( 平台:gentoo linux)