optee3.8 qemu_v8的环境搭建篇(ubuntu20.04)
快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈
相關推薦:
?????????optee3.12.0 qemu_v8的環境搭建篇
文章目錄
- 1、Optee3.8環境搭建
- 2、效果展示
- 3、環境搭建所遇到的問題及其解決方法
- 4、安裝好的ubuntu映像下載地址
1、Optee3.8環境搭建
ubuntu裝好之后,需要安裝一些基礎的包,如下所示:
(1)、安裝一些基礎包:
sudo apt install gcc make vim git expect build-essential linux-headers-uname -r
sudo apt-get install android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential cscope curl device-tree-compiler expect flex ftp-upload gdisk iasl 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 make mtools netcat unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev zlib* libz1:i386 repo
(2)、安裝python3.6
wget http://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar -xvzf Python-3.6.4.tgz
cd ./Python-3.6.4
./configure --with-ssl
make
sudo make install
(3)、從github中拉去optee代碼的命令:
repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 3.8.0
sed -i “s/.git//g” .repo/manifest.xml //注意這里的雙引號請改成英文的
wget https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
chmod 777 git-repo
sudo mv git-repo /usr/bin/repo
repo sync -j4
注意:從github拉取optee代碼拉不下來怎么辦?
(4)、安裝工具鏈
cd build
make -f toolchain.mk toolchains
注意, 由于網速原因工具鏈下載可能會失敗,對策:
使用瀏覽器打開下面的網頁,鼠標點擊下載gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz和gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz包
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/8-3-2019-03
下載完兩個安裝包后,將其拷貝到toolchains目錄下(沒有這個目錄,請手動創建),然后刪除build/toolchain.mk中的下面的行。
最后,再次敲擊:make -f toolchain.mk toolchains
(5)、編譯optee: make -f qemu_v8.mk all -j8
(6)、運行optee: make -f qemu_v8.mk run-only
2、效果展示
敲擊make -f qemu_v8.mk run-only之后,會彈出兩個終端窗口,一個是REE,一個是TEE中斷,在本窗口再次敲擊字符c,按回車,程序繼續執行
REE終端窗口:
(注意:buildroot的用戶名填root,無密碼)
TEE終端窗口:
3、環境搭建所遇到的問題及其解決方法
問題: AttributeError: ‘dict’ object has no attribute ‘iteritems’
解決: 在Python 3.x 里面,iteritems()方法已經廢除了。在3.x里用 items()替換iteritems() ,可以用于 for 來循環遍歷
vim edk2/BaseTools/Tests/TestTools.py +43 iteritems修改成items
問題: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received
解決:
sudo apt-get purge git
sudo apt-get install git
問題: 編譯uboot時出現錯誤multiple definition of yyllo
解決: 進入目錄cd scripts/dtc下,編輯文件:vim dtc-parser.tab.h,把如下變量注釋掉
注釋掉linux/scripts/dtc/dtc-parser.tab.h:131:extern YYLTYPE yylloc;
問題: ModuleNotFoundError: No module named ‘elftools’
pip3 install pyelftools
pip install pyelftools
解決:
vim linux/scripts/dtc/dtc-lexer.lex.c
注釋掉 : YYLTYPE yylloc;
問題: ModuleNotFoundError: No module named ‘elftools’
解決:
pip3 install pyelftools
pip install pyelftools
問題: AttributeError: ‘dict’ object has no attribute ‘iteritems’
解決: 在Python 3.x 里面,iteritems()方法已經廢除了。在3.x里用 items()替換iteritems() ,可以用于 for 來循環遍歷
vim edk2/BaseTools/Tests/TestTools.py +43
iteritems修改成items
問題: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received
解決:
sudo apt-get purge git
sudo apt-get install git
問題: capstone.git總是下載不下來
fatal: unable to access ‘https://git.qemu.org/git/capstone.git/’: Operation timed out after 300005 milliseconds with 0 out of 0 bytes received
fatal: clone of ‘https://git.qemu.org/git/capstone.git’ into submodule path ‘/home/test/workspace/code/optee/qemu/capstone’ failed
Failed to clone ‘capstone’. Retry scheduled
Cloning into ‘/home/test/workspace/code/optee/qemu/capstone’…
git config --global -l^Cmake[1]: *** [Makefile:45: git-submodule-update] Interrupt
make: *** [qemu_v8.mk:111: qemu] Interrupt
解決:
qemu/.gitmodules:39: url = https://git.qemu.org/git/capstone.git
https改成git
ubuntu20.04安裝pip
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下載安裝腳本
$ sudo python get-pip.py # 運行安裝腳本
ModuleNotFoundError: No module named 'Cryptodome’
pip3 install pycryptodomex
4、安裝好的ubuntu映像下載地址
環境:virtulbox6.1,ubuntu20.04
代碼位置: /home/test/workspace/code/optee
用戶名test, 密碼:123456
映像下載地址:NULL
參考
optee3.8 qemu_v8的環境搭建篇—old
總結
以上是生活随笔為你收集整理的optee3.8 qemu_v8的环境搭建篇(ubuntu20.04)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [register]-ARMV8系统中通
- 下一篇: android手机系统的启动流程-sec