因為研究生階段選的是trustzone的研究方向,所以最近在一直看這方面的東西。前不久在github上找到這個optee的開源專案,於是fork來學習一下。
發現optee有4個專案:
optee_os:包含了tee作業系統本身的源**,提供了tee的內部介面。
optee_client:包含了tee客戶端庫的源**,提供了tee的客戶端介面。
optee_linuxdriver:包含了tee驅動的源**,提供了tee的通用驅動程式。
在這張圖上可以清楚地看出各部分的關係。
在optee_os中,作者很詳細的介紹了這個專案的配置方法。你可以根據自己的需要,選擇簡易安裝,使用某些硬體或者fvp,qemu等平台來執行這個專案。因為沒錢買硬體,我用了fast model作為平台來使用optee,所以我只介紹一下基於fvp的安裝方式。
首先要確定一些依賴關係是否滿足:
$ sudo apt-get install uuid-dev
如果你的是64位的linux系統還需要安裝下面幾個包:
$ sudo apt-get install libc6:i386 libstdc++6:i386 libz1:i386
$ wget
$ chmod 711 setup_fvp_optee.sh
$ ./setup_fvp_optee.sh
這個指令碼的功能主要是轉殖一些檔案,比如linux核心,optee_os,optee_client,optee_driver以及一些工具鏈。因為其中幾個檔案比較大,所以可能需要比較長的時間。
安裝成功之後,會在你的home目錄下生成乙個devel檔案,進入目錄之後會看到一些指令碼檔案,其作用在github裡有比較詳細的描述,就不在這個重複了。之後執行如下命令:
$ ./build_secure.sh
$ ./build_normal.sh
就可以編譯這個專案了。
最後,通過
$ ./run_foundation.sh
啟動模擬器,成功啟動後,載入模組並啟動tee-supplicant
root@fvp:/ modprobe optee_armtz
root@fvp:/ tee-supplicant &
現在optee就可以正常使用了。
tee-supplicant 是host端的乙個守護程式,用於向optee載入或解除安裝ta。
tee-supplicant & 是讓tee-supplicant程式後台執行。
speex開源專案的學習
專案是用c寫的。solution中包含了以下10個project 1.libspeex speex動態庫,核心project,使用者使用的就是它,在solution中,介面標頭檔案很貼心的放在了乙個單獨的資料夾中,名為public header files。2.libspeexdsp 靜態庫,從頭檔...
學習開源專案的若干建議
隨著國內開源社群和專案的不斷發展,學習 應用 貢獻開源專案的開發人員越來越多。最近,研究過多個開源專案 包括kvm qemu libvirt openstack ceph zabbix等 的業內專家章宇在其部落格中分享了學習開源專案的若干建議,值得讀者借鑑。章宇認為,學習開源專案,可以劃分為五個層次...
開源專案的質量警鐘
開源專案越來越多的進入我們的視線,然而,關於開源專案的質量問題卻無人問津。前一陣子,我和一位同時討論關於開源專案質量安全的問題。他支援使用開源專案的原因很簡單,開源專案的參與者都是 高手 在他心目中何所謂高手,我無從可知,但是這種觀點的支持者卻大有人在。在google上以 開源專案 和 質量保障 為...