一.安裝前的準備
軟件資源:
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 彈出窗體:
在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中設置的是安裝路徑。