imx8mqevk OPTEE 全系统构建

源码下载

git clone https://source.codeaurora.org/external/imx/uboot-imx -b imx_v2019.04_4.19.35_1.0.0
git clone https://source.codeaurora.org/external/imx/imx-atf -b imx_4.19.35_1.0.0
git clone https://source.codeaurora.org/external/imx/imx-optee-os -b imx_4.19.35_1.0.0
git clone https://source.codeaurora.org/external/imx/linux-imx -b imx_4.19.35_1.0.0
git clone https://source.codeaurora.org/external/imx/imx-mkimage -b imx_4.19.35_1.0.0
git clone https://source.codeaurora.org/external/imx/imx-optee-client -b imx_4.19.35_1.0.0
git clone https://source.codeaurora.org/external/imx/imx-optee-test -b imx_4.19.35_1.0.0
git clone https://github.com/linaro-swg/optee_examples.git -b 3.2.0optee os patch:  gcc.mk+libgcc$(sm)     := $(shell $(CC$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CFLAGS$(arch-bits-$(sm))) $(comp-cflags$(sm)) \-print-libgcc-file-name 2> /dev/null)

环境搭建

sudo apt install libssl-dev 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 libhidapi-dev libncurses5-dev libpixman-1-dev libssl-dev libtool make mtools netcat python-crypto python3-crypto python-pyelftools  python3-pycryptodome python3-pyelftools python-serial python3-serial rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev

工具链

使用aarch64-poky-linux- 工具链:

# aarch64-poky-linux
mkdir imx-yocto-bsp && cd imx-yocto-bsp
repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-thud -m imx-4.19.35-1.0.0.xml
repo sync
DISTRO=fsl-imx-wayland MACHINE=imx8mqevk source fsl-setup-release.sh -b imx8mqevk_wayland
bitbake core-image-minimal -c populate_sdk
cd ~/imx-yocto-bsp/imx8mqevk_wayland
mkdir sdk
cd ~/imx-yocto-bsp/imx8mqevk_wayland/tmp/deploy/sdk
./fsl-imx-wayland-glibc-x86_64-core-image-minimal-aarch64-toolchain-4.19-thud.sh
# 安装目录: ~/imx-yocto-bsp/imx8mqevk_wayland/sdk
# 使用该工具链时
source ~/imx-yocto-bsp/imx8mqevk_wayland/sdk/environment-setup-aarch64-poky-linux

也可使用aarch64-linux-gnu- 工具链

编译


make all

rootfs制作

两种方式:

1. 完全自制

1.1 制作 boot

ls linux-imx/arch/arm64/boot/dts/freescale | grep "fsl-imx8mq-evk.*dtb" | xargs -i cp linux-imx/arch/arm64/boot/dts/freescale/{} ~/imx8mqevk/boot
cp linux-imx/arch/arm64/boot/Image ~/imx8mqevk/boot

1.2 制作rootfs:

​ 参考 树莓派3 和 ROC

1.3 合并制作镜像


dd if=/dev/zero of=imx8rootfs.sdcard bs=1M count=3072
losetup --partscan /dev/loop0  imx8rootfs.sdcardsudo fdisk /dev/loop0
Type the following parameters (each followed by <ENTER>):
p
d [lists the current partitions]
[to delete existing partitions. Repeat this until no unnecessary partitions
are reported by the 'p' command to start fresh.]
n
p
1
16384
147455
p [create a new partition]
[create a primary partition - use for both partitions]
[the first partition]
[starting at offset sector]
[size for the first partition to be used for the boot images]
[to check the partitions]
n
p
2
147456
<enter>
p
w
[starting at offset sector, which leaves enough space for the kernel,
the bootloader and its configuration data]
[using the default value will create a partition that extends to
the last sector of the media]
[to check the partitions]
[this writes the partition table to the media and fdisk exits]#挂载 /dev/loop0
mount  /dev/loop0p1 /media/yin/boot
mount  /dev/loop0p2 /media/yin/rootfs
#将 ~/imx8mqevk/boot 复制至 /media/yin/bootboot
#将自制的rootfs复制至rootfs

2. 官方镜像修改

使用官方镜像

2.1 生成

$ mkdir imx-yocto-bsp && cd imx-yocto-bsp
$ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-thud -m imx-4.19.35-1.0.0.xml
$ repo sync
$ DISTRO=fsl-imx-wayland MACHINE=imx8mqevk source fsl-setup-release.sh -b imx8mqevk_wayland
// 使用apt, dpkg , 编辑imx8mqevk_wayland/conf/local.conf
PACKAGE_CLASSES = "package_deb"
PACKAGE_FEED_URIS = "http://<local-machine-ip>:5678"
EXTRA_IMAGE_FEATURES += " package-management "$ bitbake core-image-minimal
// 在路径imx8mqevk_wayland/tmp/deploy/deb下执行 SimpleHTTPServer 5678
// 浏览器中访问http://<local-machine-ip>:5678 可看到所有的deb包

2.2 挂载


sudo losetup --partscan /dev/loop0 core-image-minimal-imx8mqevk-20201229075124.rootfs.wic
sudo mount /dev/loop0p1 /media/yin/boot
sudo mount /dev/loop0p2 /media/yin/rootfs
# 安装自己的内核模块
make linux-rootfs
# 将自己编译的内核Image dtb替换原有的

刷写

下载 uuu 工具

修改官方镜像的uuu.auto

拨动sw802开关至 D1 OFF    D2  ON
uuu -d uuu.auto

后续需要更新内核或optee 可直接 scp 修改/run/media/mmcblk0p1对应的文件

参考文档

imx8mq evk get start

imx8mq - bootloader编译过程

imx8mq 官方文档

imx8mqevk OPTEE 全系统构建相关推荐

  1. Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具

      最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,由于之前对嵌入式 Linux 环境并不是很了解,因此,第一步就是需要了解如何搭建一个完整的嵌入式 Linux 环境.现在将学习心得记录 ...

  2. Gem5在全系统(FS)模式下运行自己的测试程序

    上一篇文章讲了怎么用Gem5构建和启动FS模式,这一次想看看怎么在模拟的环境中测试自己的程序. 我这里还是用的上次提到的X86的环境,整体过程是以下几个步骤: 1.挂载镜像 ypf@ypf-PC:~/ ...

  3. android全系统动态二进制分析--CopperDroid

    1. 简介 CopperDroid通过直接监测System call,不但可以判断操作系统的一些动作(比如进程创建.文件创建),还可以判断进程内部的动作(比如短信发送,这种行为和android的对象有 ...

  4. android系统构建系统_构建系统简介

    android系统构建系统 Jan. 21. 2016 2016年1月21日 Roughly speadking, build in software development is the proce ...

  5. 交通规划辅助决策系统构建及佛山实践

    [作者简介] 罗典,硕士,高级工程师,佛山市城市规划设计研究院交通所副总工程师 孙剑,同济大学交通运输工程学院交通工程系主任.教授 阎泳楠,硕士,现任职于佛山市城市规划设计研究院交通所 摘要 在大数据 ...

  6. 数字孪生工厂生产线系统构建与应用

    一直以来很多企业将自动化生产线建设视为智能制造的重要抓手,并且涌现出了一些"黑灯生产"."无人工厂"的示范案例.但目前企业较为常见的自动化生产线,更多的体现为物 ...

  7. 深入剖析Vue源码 - 响应式系统构建(上)

    从这一小节开始,正式进入Vue源码的核心,也是难点之一,响应式系统的构建.这一节将作为分析响应式构建过程源码的入门,主要分为两大块,第一块是针对响应式数据props,methods,data,comp ...

  8. 美团点评业务风控系统构建经验

     美团点评业务风控系统构建经验 义哲 ·2017-01-13 18:20 本文根据"第八届中国系统架构师大会"演讲内容整理而成. 背景 美团最初以团购的形式出现,到现在有了很大 ...

  9. 自动完形填空系统构建

    自动完形填空系统构建要求 问题描述 在语义连贯的句子中去掉一个词语,形成空格,要求在给出的对应备选答案中,系统自动选出一个最佳的答案,使语句恢复完整. 相关语料 1. Training data:未标 ...

最新文章

  1. 时隔5年,再次接触数字图像处理
  2. 【今晚7点半】:超低延迟下的实时合唱体验升级
  3. 2019蓝桥杯省赛---java---C---2(矩阵切割)
  4. wpsa3版面怎么变成a4、排版不变_毕业论文排版攻略
  5. 06-自定义构造方法
  6. 在editor模式下遍历unity3d builtsetting中的场景
  7. js中~~和^=分别代表什么,用处是什么?
  8. 网众无盘linux挂载u盘,详解网众无盘的服务器调试
  9. 放大镜拾色器vue+typescript+canvas
  10. Android Studio基础-Activity生命周期与多个Activity跳转
  11. 1990~2003TVB剧集一览表!
  12. 凶猛的长城汽车:走在挑战万亿市值的征途上
  13. Android 监听短信数据库过滤获取短信内容上传至服务器
  14. Python Matplotlib设置x轴与y轴相交于心仪的坐标点
  15. 7-6 jmu-Java-01入门-开根号
  16. 二叉树、平衡二叉树、完全二叉树、满二叉树
  17. 原创---爱普生LQ-690K打印机win7共享报错解决方案“Windows无法连接到打印机。无法找...
  18. pygame time.clock.tick
  19. 33岁开始我们该做些什么
  20. Python做风险控制|找出形成环状投资的公司

热门文章

  1. 自步对比学习(Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID)
  2. 修改hosts不管用。为什么修改127.0.0.1指向的域名,访问域名却弹出别的网站
  3. 智能时代为什么需要区块链技术?
  4. 出走的门徒之三——小红书郄小虎:穿越人心的迷雾
  5. 爱普生Epson LQ-735KII 打印机驱动
  6. 浙大计算机跨专业考研心路历程记录
  7. PaddlePaddle - 人脸关键点检测课程笔记
  8. Autocad2015点开闪退问题,线段等分
  9. 石墨文档编辑器用的是开源库吗?
  10. Android sdcard文件读写操作