日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇

發(fā)布時間:2025/3/21 Ubuntu 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

快速鏈接:
.
👉👉👉 個人博客筆記導(dǎo)讀目錄(全部) 👈👈👈

文章目錄

        • 環(huán)境準(zhǔn)備
        • 1、安裝編譯optee的工具
        • 2、更新optee代碼
        • 3、更新工具鏈
        • 4、編譯和運行
        • 問題解決

環(huán)境準(zhǔn)備

(1)、安裝ubuntu
先安裝一下virtualbox + ubuntu20.10環(huán)境,可參考如下:[HOW TO]-圖解virtualbox下安裝ubuntu20.04虛擬機

(2)、安裝基礎(chǔ)工具

sudo apt-get install samba-*
sudo apt-get install git make expect vim net-tools python3-pip python2.7* binfmt-support qemu qemu-user-static openssl

注意安裝python2.7后需要創(chuàng)建一個軟連接
cd /usr/bin
sudo ln -sf python2.7 python

(3)、進(jìn)行一些配置

安裝增強功能、共享剪切板、共享拖放、共享worksapce文件夾、網(wǎng)絡(luò)選擇橋接、設(shè)置電源選項不休眠屏幕常亮

(4)、修改終端標(biāo)題欄文字

[How TO]-Ubuntu 20.04修改終端標(biāo)題欄文字

(5)、安裝http服務(wù)

sudo apt-get install apache2
sudo /etc/init.d/apache2 restart

(6)、安裝pulse-secure

sudo apt-get update -y
sudo apt-get install -y libnss3-tools
sudo dpkg -i ps-pulse-linux-9.1r11.5-b9451-64-bit-installer.deb

(7)、安裝repo

wget https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
chmod 777 git-repo
sudo mv git-repo /usr/bin/repo

(8)、配置git

ssh-keygen -t rsa


git config --global user.email “zhhh891010@163.com”
git config --global user.name “baronZhou”


1、安裝編譯optee的工具

sudo apt-get install android-tools-adb android-tools-fastboot autoconf \automake bc bison build-essential ccache cscope curl device-tree-compiler \expect flex ftp-upload gdisk iasl libattr1-dev libcap-dev \libfdt-dev libftdi-dev libglib2.0-dev libgmp-dev libhidapi-dev \libmpc-dev libncurses5-dev libpixman-1-dev libssl-dev libtool make \mtools netcat ninja-build python3-crypto \python3-pycryptodome python3-pyelftools python3-serial \rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev

pip3 install ninja

2、更新optee代碼

(1)、repo init

repo init -u git://github.com/OP-TEE/manifest.git -m qemu_v8.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 3.14.0

repo init后,由于在國內(nèi)訪問https://github.com有限制,為了能夠更快的拉取代碼,我們需要對repositories做一些修改:

(2)、修改manifest
注意一是將https改成git,二是注釋掉兩個repository,因為這兩個倉庫clone不下來,需單獨敲命令clone

test@test:~/workspace/code/optee_3.14$ cd .repo/manifests test@test:~/workspace/code/optee_3.14/.repo/manifests$ git diff . diff --git a/qemu_v8.xml b/qemu_v8.xml index b99e2db..03ead23 100644 --- a/qemu_v8.xml +++ b/qemu_v8.xml @@ -1,6 +1,6 @@<?xml version="1.0" encoding="UTF-8"?><manifest> - <remote name="github" fetch="https://github.com" /> + <remote name="github" fetch="git://github.com" /><remote name="tfo" fetch="https://git.trustedfirmware.org" /><remote name="u-boot" fetch="https://source.denx.de/u-boot" /><remote name="xen-git" fetch="https://xenbits.xen.org/git-http" /> @@ -22,10 +22,10 @@<!-- Misc gits --><project path="buildroot" name="buildroot/buildroot.git" revision="refs/tags/2021.02" clone-depth="1" /> - <project path="edk2" name="tianocore/edk2.git" revision="refs/tags/edk2-stable202102" sync-s="true" /> + <!-- <project path="edk2" name="tianocore/edk2.git" revision="refs/tags/edk2-stable202102" sync-s="true" />--><project path="mbedtls" name="ARMmbed/mbedtls.git" revision="refs/tags/mbedtls-2.16.0" clone-depth="1" /><project path="qemu" name="qemu/qemu.git" revision="refs/tags/v6.0.0" clone-depth="1" /> - <project path="trusted-firmware-a" name="TF-A/trusted-firmware-a.git" revision="refs/tags/v2.5" clone-depth="1" remote="tfo" /> + <!-- <project path="trusted-firmware-a" name="TF-A/trusted-firmware-a.git" revision="refs/tags/v2.5" clone-depth="1" remote="tfo" />--><project path="u-boot" name="u-boot.git" revision="refs/tags/v2021.04" remote="u-boot" clone-depth="1" /><project path="xen" name="xen.git" revision="refs/tags/RELEASE-4.14.1" remote="xen-git" clone-depth="1" /></manifest> test@test:~/workspace/code/optee_3.14/.repo/manifests$


(3)、然后就可以拖取代碼了

repo sync -j4

(4)、克隆atf代碼

git clone --branch v2.5 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git

(4)、克隆edk2代碼

git clone --branch edk2-stable202102 git://github.com/tianocore/edk2.git

修改edk2/.gitmodules
(vim .gitmodules)

[submodule "CryptoPkg/Library/OpensslLib/openssl"]path = CryptoPkg/Library/OpensslLib/opensslurl = git://github.com/openssl/openssl [submodule "SoftFloat"]path = ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3url = git://github.com/ucb-bar/berkeley-softfloat-3.git [submodule "UnitTestFrameworkPkg/Library/CmockaLib/cmocka"]path = UnitTestFrameworkPkg/Library/CmockaLib/cmockaurl = https://git.cryptomilk.org/projects/cmocka.git [submodule "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma"]path = MdeModulePkg/Universal/RegularExpressionDxe/onigurumaurl = git://github.com/kkos/oniguruma [submodule "MdeModulePkg/Library/BrotliCustomDecompressLib/brotli"]path = MdeModulePkg/Library/BrotliCustomDecompressLib/brotliurl = git://github.com/google/brotli [submodule "BaseTools/Source/C/BrotliCompress/brotli"]path = BaseTools/Source/C/BrotliCompress/brotliurl = git://github.com/google/brotliignore = untracked [submodule "RedfishPkg/Library/JsonLib/jansson"]path = RedfishPkg/Library/JsonLib/janssonurl = git://github.com/akheron/jansson

cd edk2/
git submodule sync
git submodule update --init

3、更新工具鏈

test@test:~/workspace/code/optee_3.14$ mkdir toolchains
test@test:~/workspace/code/optee_3.14$ cd toolchains/
test@test:~/workspace/code/optee_3.14/toolchains$ mkdir aarch32
test@test:~/workspace/code/optee_3.14/toolchains$ mkdir aarch64

下載gcc-arm-10.2-2020.11-aarch64-arm-none-linux-gnueabihf.tar.xz和 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz 并拷貝到toolchains目錄下
gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf.tar.xz
gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz

tar xf gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf.tar.xz -C aarch32 --strip-components=1
tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz -C aarch64 --strip-components=1
cd aarch32/bin
for f in $(ls); do ln -s $f ${f//-none} ; done ;
cd -
cd aarch64/bin
for f in $(ls); do ln -s $f ${f//-none} ; done ;
cd -

4、編譯和運行

make -f qemu_v8.mk all -j8
make -f qemu_v8.mk run-only


問題解決

1、fatal error: ./brotli/c/common/constants.h: No such file or directory

cd edk2/
git submodule sync
git submodule update --init

2、arm-linux-gnueabihf-gcc failed: Exec format error

ccache: error: execv of /home/test/workspace/code/optee_3.14/build/…/toolchains/aarch32/bin/arm-linux-gnueabihf-gcc failed: Exec format error

sudo apt install binfmt-support qemu qemu-user-static

3、/lib/ld-linux-aarch64.so.1: No such file or directory

/lib/ld-linux-aarch64.so.1: No such file or directory
make[1]: *** [mk/compile.mk:159: out/arm/ta_arm32-lib/libdl/dlfcn.o] Error 255
make[1]: *** Waiting for unfinished jobs…


test@test:~/workspace/code/optee_3.14/toolchains$ find ./ -name ld-linux-aarch64.so.1
./aarch64/aarch64-none-linux-gnu/libc/lib/ld-linux-aarch64.so.1
test@test:~/workspace/code/optee_3.14/toolchains$ sudo cp ./aarch64/aarch64-none-linux-gnu/libc/lib/ld-linux-aarch64.so.1 /lib

4、arm-linux-gnueabihf-gcc: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

test_Ecc_CParser4_CListener (CheckPythonSyntax.Tests) … ok
test_Ecc_CParser4_CParser (CheckPythonSyntax.Tests) … /home/test/workspace/code/optee_3.14/build/…/toolchains/aarch32/bin/arm-linux-gnueabihf-gcc: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
make[1]: *** [mk/compile.mk:159: out/arm/ta_arm32-lib/libdl/dlfcn.o] Error 127
make[1]: *** Waiting for unfinished jobs…
ok


請仔細(xì)對比工具鏈,工具鏈沒選對


歡迎添加微信、微信群,多多交流

總結(jié)

以上是生活随笔為你收集整理的optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。