ARMv8 Fast Models 安装 SierraTEE

ARM 251浏览


一.安装前的准备

软件资源:
1.SierraTEE:Open Virtualication 官网提供的支持ARM v8的TEE框架,下载路径为http://openvirtualization.org/downloadsoftware.html
注意:此软件资源需要进行注册使用,不过注册不会进行检查,可以随意填写。

2.SierraVisor:同上,为此官网提供的支持ARM v8 虚拟化功能,安装路径如下http://openvirtualization.org/downloadsoftware.html, 具体的压缩包为:
1.SDK_Sep25_2014_TEE.tar.gz TEE和Visor 源代码
2.toolchain_sep_25_2014.tar.bz2 安装使用工具
3.rootfs.bz2
4.Linux Linaro 3.14
http://releases.linaro.org/14.03/components/kernel/linux-linaro/linux-linaro-3.14-rc7-2014.03.tar.bz2
5.Rootfs.tar.bz2 安装路径
http://www.openvirtualization.org/Sep25_2014/rootfs.bz2
6.GCC linaro aarch64 linux gnu 4.9-2014.07 Linux
http://releases.linaro.org/14.07/components/toolchain/binaries

基本操作文件解压
将SDK_Sep25_2014_TEE.tar.gz解压到方便操作的地方。

#tar -zxvf SDK_Sep25_2014_TEE.tar.gz

二.编译内核

1.normal kernel
将Linux Linaro 3.14的压缩包移动到/trustzone/otz_linux路径下并解压

#cp linux-linaro-3.14-rc7-2014.03 trustzone/otz_linux
#tar –xvf linux-linaro-3.14-rc7-2014.03

重命名此解压文件

#mv trustzone/otz_linux/linux-linaro-3.14-rc7-2014.03 stzone/otz_linux/linux

将压缩包rootfs.bz2 移动并解压至trustzone/otz_linux 路径下:
注意:此压缩包笔者解压时遇到问题,可以手动解压,然后使用以下命令

#tar -xvf rootfs.tar

启动脚本

#sh setup.sh

设置环境变量

#export CROSS_COMPILE=<toolchain installed directory>/bin/aarch64-linux-gnu-
#export PATH=$PATH: <toolchain installed directory>/bin/

转到/trustzone/otz_linux 路径下,进行编译

#cd trustzone/otz_linux
#make

2.secure kernel
同上设置环境变量:

#export CROSS_COMPILE=<toolchain installed directory>/bin/ aarch64-linux-gnu-
#export PATH=$PATH: <toolchain installed directory>/bin/

转至/trustzone/tzone_sdk路径下,清理上次编译的文件,然后进行编译:

#cd trustzone/tzone_sdk
#make clean
#make

三.相关软件工具的安装

1.下载安装 openssl package

获取openssl支持,笔者安装的版本为openssl1.0.1
安装路径: http://www.openssl.org/source/openssl-1.0.1c.tar.gz

修改tzone_SDK目录下的Makefile的相关属性,将ENABLE_LIBCRYPT的值和CRYPTO_BUILD的值修改为y。

修改trustzone/package目录下的config.package文件的相关属性CONFIG_CRYPTO改为y。

配制环境变量,将CROSS_COMPILE_NEWLIB和path指向可用的路径

#export CROSS_COMPILE_NEWLIB=<supplied toolchain installed directory>/bin/arm-none-eabi-
#export PATH=$PATH: <supplied toolchain installed directory>/sierra_toolchain/bin

对otz_linux_32 和 tzone_sdk进行编译
注意:otz_linux_32中并不包含Makefile文件中要求的linux kernel 压缩包,需要进行下载,笔者使用的为Makefile中设置的内核版本linux-2.6.38.7.tar.bz2。linux kernel的下载路径如下:
https://www.kernel.org/pub/linux/kernel/v2.6/

#cd trustzone/otz_linux_32
#make
#cd trustzone/tzone_sdk
#make

2.安装FFmpeg

首先下载安装压缩包,笔者使用的是ffmpeg.10.1.tar,这是和SierraTEE自带的patch文件最为匹配的ffmpeg版本。

安装路径:http://ffmpeg.org/releases/

但仍需要修改ffmpeg.patch文件,文件目录:trustzone/package/patchs/ffmpeg.patch,第一次进行Make会出现有一个Patch补丁文件codec_names.h文件未找到的错误,此为正常的,在选择no后继续make编译,将会正常编译。
注意:此次编译需要aarch64编译器和arm-none-eabi-gcc同时使用,笔者建议安装gcc-arm-none-eabi,在出现gcc选项不匹配的时候可以进行切换,通过设置CROSS_COMPILE_NEWLIB环境变量的路径。

修改Makefile.ffmpeg中设置的ffmpeg版本文件名,版本为ffmpeg.10.1.tar.

修改完毕后开始安装:

1.将下载好的压缩包放置在目录package/storage/下
2.将packages/config.package文件中的CONFIG_LIBSDL和CONFIG_FFMPEG选项修改成y。
3.设置环境变量:安装openssl相似,不再累述。
4.执行下列命令:

#cd trustzone/otz_linux_32
#make
#cd trustzone/tzone_sdk
#make

完成安装!!
注意:ARMv8的编译文件Makefile.in需要otzon_ffmepg.elf文件,而实际上v8的编译过程中并未使用到这个文件,可以将其注释掉,否则将无法正常编译生成monitor.elf和monitor.bin文件,将无法进一步加载测试。

四.安装SierraTEE

安装SierraTEE之前需要安装ARMv8 Fast Models,具体安装教程可参见笔者上一篇博客http://blog.csdn.net/u010071291/article/details/49639625

1.启动FastModelTools/bin目录下的sgcanvas可执行文件,启动命令为./sgcanvas,启动后可能会出现PVLIB_HOME以及MAXCORE_HOME未设置的错误,MAXCORE_HOME环境变量设置为FastModelsTool的路径,PVLIB_HOME环境变量设置为FastModelsPortfolio的路径,其他错误请参见上一篇博客,启动后效果如下图:

这里写图片描述

2.启动成功后导入工程文件,SierraTEE的elf文件和配套的.bin文件指定的v8内核为AEMV8a,所以笔者导入FastModelsPortfolio_9.4/examples/FVP_VE/Build_AEMv8A/FVP_VE_AEMv8A.sgproj文件,效果如下图:

这里写图片描述

3.gcc版本已经设置好了,请不要乱改,选择Project目录下的launch debugger Model,将会弹出如下界面:

这里写图片描述
将以上几步编译生成的monitor.elf和monitor.bin文件路径分别填写到Application和Parameter file下,这两个文件路径为:
/tzone_sdk/bin/monitor.elf
/tzone_sdk/bin/monitor.bin
然后点击OK,弹出Configure Model Parameters窗体:

若弹出错误提示框如下:

这里写图片描述

则证明Model Debugger设置路径错误,修改路径方法为打开>file>preference 弹出窗体:

TEE05

在Application下,可以发现路径默认为$MAXVIEW_HOME/bin/modeldebugger,而MAXVIEW_HOME环境变量并未设置,所以出错。修改Model Debugger路径,就能成功启动。

启动后出现如下错误:
**

Error starting model_shell to get parameters for model '/home/qwm/ARM/FastModelsPortfolio_9.4/examples/FVP_VE/Build_AEMv8A/Linux64-Release-GCC-4.4/cadi_system_Linux64-Release-GCC-4.4.so'.
Check that model_shell is in PATH

**
经检查cadi_system_Linux64-Release-GCC-4.4.so动态库路径正确,则为model_shell问题,但笔者检查后发现设置路径未出错,应将model_shell路径添加至PATH中,具体命令如下:

#export PATH=$PATH:<The path of FastModelsTools>/bin

但仍未解决问题,后查询Fast Models users guide 得知,Model_shell的启动需要gdb 6.2以上版本的支持,笔者使用的是Ubuntu 14.04,未安装gdb。安装方法以及安装路径如下:
安装路径 :http://ftp.gnu.org/gnu/gdb/
安装方法:
1.将下载的压缩包解压:

tar jxvf gdb7.6.tar.bz2

2.初始化并进行编译:

 #./configure --target=arm-linux --prefix=/home/qwm -v
 #make

其中prefix中设置的是安装路径。