ubuntu20.04搭建ftp服务器,基于Ubuntu20.04运行OP-TEE_3.17.0_QEMU_V8的环境搭建

最近在开始研究ARM TrustZone安全相关的东西。在QEMU上运行ArmV8-A OP-TEE是个非常好的工程熟悉这块内容。下面教大家如何搭建这套工程环境。

安装Ubuntu

先安装一下Virtualbox+Ubuntu20.04,可以参考[How TO]-图解virtualbox下安装ubuntu20.04虚拟机

安装Ubuntu基础工具sudo apt-get install samba smbclient git make expect vim net-tools python3-pip python2.7 binfmt-support qemu qemu-user-static openssl

注意安装python2.7后,需要创建一个软链接。

cd /usr/bin/sudo ln -sf python2.7 python

安装http服务

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

安装repo

git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repocd git-repo/cp repo ~/bin/chmod a+x ~/bin/repo

配置github SSH Key

ssh-keygen -t rsa -C "[email protected]"​cat ~/.ssh/id_rsa.pub

选择github账号的settings -> SSH and GPG keys -> New SSH key。将id_rsa.pub中内容拷贝到Key中,点击 Add SSH key。

配置git

git config --global user.email "[email protected]"git config --global user.name "Weston.Zhu"

 输入命令

git config --global credential.helper store

这一步会在用户目录下的.gitconfig文件最后添加:

push代码 这一步会在用户目录下生成文件.git-credential记录用户名密码的信息 格式: https:{username}:{password}@github.com

 

安装OP-TEE1. 安装编译OP-TEE的工具$ 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-buildpython3-crypto\      python3-pycryptodome python3-pyelftoolspython3-serial \      rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev

2. 更新对应QEMU V8的optee代码$ repo init -u [email protected]:OP-TEE/manifest.git -m qemu_v8.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 3.17.0Downloading Repo source from https://mirrors.tuna.tsinghua.edu.cn/git/git-reporemote: Enumerating objects: 7372, done.remote: Counting objects: 100% (7372/7372), done.remote: Compressing objects: 100% (3935/3935), done.remote: Total 7372 (delta 4764), reused 5577 (delta 3363)Receiving objects: 100% (7372/7372), 3.28 MiB | 4.17 MiB/s, done.Resolving deltas: 100% (4764/4764), done.Downloading manifest from [email protected]:OP-TEE/manifest.gitremote: Enumerating objects: 1411, done.remote: Counting objects: 100% (241/241), done.remote: Compressing objects: 100% (80/80), done.remote: Total 1411 (delta 184), reused 177 (delta 161), pack-reused 1170​Your identity is: Weston.Zhu If you want to change this, please re-run 'repo init' with --config-name​repo has been initialized in /home/weston/workspace/optee-3.17/If this is not the directory in which you want to initialize repo, please run:   rm -r /home/weston/workspace/optee-3.17//.repoand try again.

3. 用repo拖取代码

由于repo拉取ATF v2.6与edk2比较慢,改成手动拉取。先将 ./.repo/manifests/目录中的qemu_v8.xml的文件修改如下:

--- a/qemu_v8.xml+++ b/qemu_v8.xml@@ -20,10 +20,10 @@                 -      +                               -      +              

用repo自动拉取ATF v2.6与edk2之外其他的代码

$ repo sync -j8

手动拉取ATF v2.6代码

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

手动拉取edk2代码

git clone  --branch edk2-stable202105 git://github.com/tianocore/edk2.gitcd edk2/git submodule syncgit submodule update --init

4. 下载arm gcc交叉编译工具cd buildmake -f toolchain.mk toolchains

或者直接用wget下载gnu-a gcc交叉编译工具 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 并拷贝到toolchains目录下。

mkdir toolchainscd toolchainswget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf.tar.xzwget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz​mkdiraarch32mkdiraarch64tar xf gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf.tar.xz -C aarch32 --strip-components=1tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz -C aarch64 --strip-components=1​cd aarch32/binfor f in $(ls);do ln -s $f ${f//-none};done;cd -cd aarch64/binfor f in $(ls);do ln -s $f ${f//-none};done;cd -​

5. 编译

修改EDK2替换成U-Boot启动

diff --git a/qemu_v8.mk b/qemu_v8.mkindex c98e460..72860b2 100644--- a/qemu_v8.mk+++ b/qemu_v8.mk@@ -11,7 +11,7 @@ COMPILE_S_KERNEL ?= 64 ################################################################################ # If you change this, you MUST run `make arm-tf-clean` first before rebuilding ################################################################################-TF_A_TRUSTED_BOARD_BOOT ?= n+TF_A_TRUSTED_BOARD_BOOT ?= y BR2_ROOTFS_OVERLAY = $(ROOT)/build/br-ext/board/qemu/overlay BR2_ROOTFS_POST_BUILD_SCRIPT = $(ROOT)/build/br-ext/board/qemu/post-build.sh@@ -35,7 +35,7 @@ include common.mk DEBUG ?= 1 # Option to use U-Boot in the boot flow instead of EDK2-UBOOT ?= n+UBOOT ?= y # Option to build with GICV3 enabled GICV3 ?= y@@ -146,7 +146,7 @@ TF_A_EXPORTS ?= \ TF_A_DEBUG ?= $(DEBUG) ifeq ($(TF_A_DEBUG),0)-TF_A_LOGLVL ?= 30+TF_A_LOGLVL ?= 40 TF_A_OUT = $(TF_A_PATH)/build/qemu/release else TF_A_LOGLVL ?= 50@@ -423,9 +423,9 @@ QEMU_VIRT   = true QEMU_XEN       ?= -drive if=none,file=$(XEN_EXT4),format=raw,id=hd1 \                   -device virtio-blk-device,drive=hd1 else-QEMU_CPU       ?= max,sve=off-QEMU_SMP       ?= 2-QEMU_MEM       ?= 1057+QEMU_CPU       ?= cortex-a53+QEMU_SMP       ?= 4+QEMU_MEM       ?= 2048 QEMU_VIRT    = false endif

开始编译

make -f qemu_v8.mk all -j8

6. 运行make -f qemu_v8.mk run-only

敲完命令运行后,记得继续按c然后按回车健。

接下来会弹出两个窗口,一个是CA(Linux)窗口,一个是TA(OP-TEE)窗口。

 

Ubuntu20.04安装FTP,传输windows文件_技术界的小白的 ...OMV -1- 在 ubuntu 20.04 下使用 KVM 安装 OMV 过程记录Ubuntu20.04 安装pcl详细教程_LYiiiiiii的博客-程序员ITS301 ...基于Ubuntu20.04运行OP-TEE_3.17.0_QEMU_V8的环境搭建 ...Vien Blog 技术栈 - vien.tech使用 XAMPP 搭建 静态资源 和 FTP 服务利用华为云ECS服务器搭建安防视频监控平台linux系统搭建vsftp并实现文件上传Esxi 6.7部署配置Ubuntu-22.04-live-serverubuntu下Nginx详解及点播直播服务器搭建ubuntu 使用代理服务器 squidUbuntu搭建支持LDAP的proftpd服务器手把手教你搭建git、git-repo服务器ubuntu20.04基础入门日记V1.0Ubuntu16.04下禁用scp、sftp和winscp百度云轻量应用服务器搭建(ubuntu)阿里云 ECS 主机部署 FTP 文件服务ubuntu搭建Jmeter测试环境Ubuntu 用VSFTP搭建FTP服务器Linux开发板 - 01 - 远程通讯/控制(SSH/VNC/FTPUbuntu20安装Fabric 1.4 详细步骤(亲测有效,部署快)Vmware安装Ubuntu及共享文件夹配置玩客云Armbian(Ubuntu20.04)安装vsftp,并内网穿透(frp)ubuntu 20.4 安装jdk tomcat mysql数据库服务器搭建环境配置】ftp服务 ubuntu基于腾讯云服务器搭建的一个简易的网站(ubuntuwsl2-Ubuntu20.04_selenium2环境搭建流程【Tools】Ubuntu作为主要系统的历程[环境配置]Ubuntu16.04下编译安装gcc6.3.0FTP基础知识_FTP服务端应用开发VMWarePro+Ubuntu+MySQL 8.0.x+Python 开发环境搭建Ubuntu+Apache+PHP+Mysql环境搭建(完整版)Linux->Ubuntu安装FastDFS文件存储系统使用samba服务在Linux与Windows直接共享文件夹,海康威视网络摄像头录像视频存储到ubuntu服务器win10与ubuntu之间传送文件(filezilla ftp)
ubuntu 20.04 ftp服务器搭建ubuntu 20.04 服务器搭建ubuntu 20.04 ftp服务器ubuntu 20.04 安装ftpubuntu 20.04 tftp serverubuntu 配置ftp服务器ubuntu20 ftp服务器搭建ubuntu搭建ftp服务器的步骤ubuntu20 ftpubuntu ftp服务器搭建ubuntu ftp服务器配置ubuntu安装ftp客户端ubuntu部署ftpubuntu16.04 ftpubuntu启动ftp服务linux下ftp服务器搭建ubuntu ftp服务器怎么搭建ubuntu搭建ftp服务器的步骤舟夜书所见的意思,这首诗的意思是什么?realme真我gt是属于oppo系列的吗凝视近义词义词是什么用盐擦鼻头黑头真的会消失吗关于风的名言警句烧饼修改器怎么样才能不用root西瓜视频怎么缓存合集视频伤心绝望心痛心寒的句子南方科技大学实验室着火韩剧非常真相坟冢的图片