imx8mqevk OPTEE 全系统构建

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.0


optee 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:

​ 参考 树莓派3ROC

1.3 合并制作镜像


dd if=/dev/zero of=imx8rootfs.sdcard bs=1M count=3072
losetup --partscan /dev/loop0  imx8rootfs.sdcard

sudo 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 官方文档

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据提供的引用内容,烧录imx8mp的Android系统可以按照以下步骤进行: 1. 首先,校准DDR,确保没有问题。如果校准DDR后没有问题,可以将文件拷贝到对应的目录下。在《Android_User’s_Guide.pdf》的第50页有对应的说明,请仔细阅读。关键的两步是: - 将`${MY_ANDROID}/vendor/nxp/fsl-proprietary/uboot-firmware/imx8q/board-imx8qxp.c`拷贝到`scfw_export_mx8qx_b0/platform/board/mx8qx_mek/board.c` - 将`build_mx8qx_b0/scfw_tcm.bin`拷贝到`${MY_ANDROID}/vendor/nxp/fsl-proprietary/uboot-firmware/imx8q/mx8qx-scfw-tcm.bin` 2. 使用uuu + bootloader(等同于uuu + SDP)进行烧录。可以下载适用于imx6/imx7/imx8qxp的bootloader,并将其下载到内部RAM中。然后使用以下命令进行烧录: ``` uuu uboot.imx uuu flash.bin ``` 3. 最后,使用内建的烧录脚本来完成烧录过程。 请注意,以上步骤仅供参考,具体的烧录过程可能因为不同的环境和要求而有所不同。建议参考相关文档或咨询相关技术支持以获取更准确的指导。 #### 引用[.reference_title] - *1* [NXP(imx8qxp)系列DDR校准以及android镜像烧录](https://blog.csdn.net/weixin_51178981/article/details/123995811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [imx8 uuu烧录](https://blog.csdn.net/weixin_39951217/article/details/110260043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值