Model A 的参数
System | |
CPU | NXP i.MX 8M Plus (default), 4 x ARM Cortex-A53, comes with an integrated neural processing unit (NPU) that delivers up to 2.3 TOPS. Industrial grade CPU runs at 1.6GHz, and commercial grade CPU runs at up to 1.8GHz. (i.MX 8M Plus series CPU optional) |
Memory | 2GB LPDDR4 (4GB/8GB optional) |
Storage | Default: Micro SD card (Onboard 8GB/16GB/32GB/64GB/128GB/256GB eMMC optional) |
OS | Android 11, Yocto-L5.10.72_2.2.0, Ubuntu 22.04, Windows 10 IoT Enterprise Note: Model A with LPDDR4 from 4GB supports Windows 10 IoT Enterprise, we recommend the 8GB LPDDR4 version |
I/O Interfaces | |
Gigabit Ethernet | 1 x Gigabit Ethernet port, support TSN and POE power supply (need POE power device module) 1 x Gigabit Ethernet port, 12pin header (without network transformer) |
WIFI & BT | 2.4GHz & 5GHz WIFI, BT5.0 |
USB | 4 x USB 3.0 Host 1 x USB 2.0 OTG |
Audio | 1 x Headphone and Mic combo port |
HDMI | 1 x HDMI OUT |
Expansion | |
40-Pin Double-Row Headers | (1) 3 x UART, 2 x I2C, 2 x SPI, 2 x CAN, 6 x GPIO for default, can be reused as I2S, PWM, SPDIF and GPIO through software configuration. (2) 5V power supply, system reset, ON/OFF |
LVDS | 1 x LVDS, single & dual channel 8bit |
MIPI CSI | 1 x MIPI CSI (4-lane) |
MIPI DSI | 1 x MIPI DSI (4-lane) |
PCIe | 1 x PCIe Gen3 1-lane |
Power Supply | |
Power Supply | DC 5V/3A Type-C |
Mechanical & Environmental | |
Size | 85.0mm x 56.0mm (±0.5mm) |
从官网下载 yocto 系统固件测试一下板子,下载路径: Software (debix.io)
看到yocto固件使用的是 Linux 5.10.72_2.2.0 版本的系统,然后从官网下载相应的版本。
一、从NXP官网下载Yocto 源码
1、sdk的环境配置需求
L5.10.72_2.2.0_LINUX_DOCS/i.MX_Yocto_Project_User's_Guide.pdf
需要安装
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
pylint3 xterm rsync curl
2、下载sdk
$: mkdir ~/bin
$: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$: chmod a+x ~/bin/repo
$: PATH=${PATH}:~/bin
$: mkdir <release>
$: cd <release>
$: repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-hardknott -m imx-5.10.72-2.2.0.xml
$: repo sync
3、更换 uboot 为 Debix Model A 代码
修改文件: sources/meta-imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
--- a/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
+++ b/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
@@ -7,10 +7,11 @@ require recipes-bsp/u-boot/u-boot-imx-common_${PV}.inc
PROVIDES += "u-boot"
-UBOOT_SRC ?= "git://github.com/nxp-imx/uboot-imx.git;protocol=https"
+#UBOOT_SRC ?= "git://github.com/nxp-imx/uboot-imx.git;protocol=https"
+UBOOT_SRC ?= "git://github.com/debix-tech/uboot.git;protocol=https"
SRCBRANCH = "lf_v2021.04"
SRC_URI = "${UBOOT_SRC};branch=${SRCBRANCH}"
-SRCREV = "263b27e076a0f6e5dcc80227a235f0af73718342"
+SRCREV = "7d071c6d1e3eefb542bb8398bf641a40efae70aa"
LOCALVERSION = "-${SRCBRANCH}"
4、更换 kernel 为 Debix Model A 代码
修改文件:sources/meta-imx/meta-bsp/recipes-kernel/linux/linux-imx_5.10.bb
sources/meta-imx/meta-bsp/recipes-kernel/linux/linux-imx-headers_5.10.bb
--- a/meta-bsp/recipes-kernel/linux/linux-imx_5.10.bb
+++ b/meta-bsp/recipes-kernel/linux/linux-imx_5.10.bb
@@ -16,12 +16,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "lzop-native bc-native"
-SRCBRANCH = "lf-5.10.y"
+SRCBRANCH = "yocto-L5.10.72"
LOCALVERSION = "-lts-5.10.y"
-KERNEL_SRC ?= "git://github.com/nxp-imx/linux-imx.git;protocol=https"
+KERNEL_SRC ?= "git://github.com/debix-tech/linux.git;protocol=https"
SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}"
-SRCREV = "a68e31b63f864ff71cd4adb40fbc9e1edc75c250"
+SRCREV = "1b3e0ab342f092cd58461ece884c6d39ab4e8703"
# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition
# required by kernel-yocto.bbclass.
--- a/meta-bsp/recipes-kernel/linux/linux-imx-headers_5.10.bb
+++ b/meta-bsp/recipes-kernel/linux/linux-imx-headers_5.10.bb
@@ -7,12 +7,12 @@ New headers are installed in ${includedir}/imx."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-SRCBRANCH = "lf-5.10.y"
+SRCBRANCH = "yocto-L5.10.72"
LOCALVERSION = "-lts-5.10.y"
-KERNEL_SRC ?= "git://github.com/nxp-imx/linux-imx.git;protocol=https"
+KERNEL_SRC ?= "git://github.com/debix-tech/linux.git;protocol=https"
SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}"
-SRCREV = "a68e31b63f864ff71cd4adb40fbc9e1edc75c250"
+SRCREV = "1b3e0ab342f092cd58461ece884c6d39ab4e8703"
S = "${WORKDIR}/git"
5、删除没用的dtb和添加debix dtb 文件
在sources/meta-imx 目录里的 meta-bsp/conf/machine/imx8_all.conf 和 meta-b
sp/conf/layer.conf 文件修改如下:
--- a/meta-bsp/conf/layer.conf
+++ b/meta-bsp/conf/layer.conf
@@ -330,10 +330,6 @@ KERNEL_DEVICETREE_remove_imx8mp-lpddr4-evk = " \
"
KERNEL_DEVICETREE_append_imx8mp-lpddr4-evk = " \
freescale/imx8mp-evk-dsp.dtb \
- freescale/imx8mp-evk-ecspi-slave.dtb \
- freescale/imx8mp-evk-ndm.dtb \
- freescale/imx8mp-evk-usdhc1-m2.dtb \
- freescale/imx8mp-evk-rm67199.dtb \
"
WKS_FILE_DEPENDS_append_imx8mp-lpddr4-evk = " imx-m7-demos"
IMAGE_BOOT_FILES_append_imx8mp-lpddr4-evk = " \
--- a/meta-bsp/conf/machine/imx8_all.conf
+++ b/meta-bsp/conf/machine/imx8_all.conf
@@ -81,24 +81,7 @@ KERNEL_DEVICETREE += "freescale/imx8mq-evk-ak4497.dtb freescale/imx8mq-evk-audio
# DEVICETREE of i.MX 8MP
KERNEL_DEVICETREE += " \
- freescale/imx8mp-ab2.dtb \
- freescale/imx8mp-ddr4-evk.dtb \
freescale/imx8mp-evk.dtb \
- freescale/imx8mp-evk-basler.dtb freescale/imx8mp-evk-basler-ov2775.dtb freescale/imx8mp-evk-basler-ov5640.dtb \
- freescale/imx8mp-evk-dsp.dtb \
- freescale/imx8mp-evk-dual-basler.dtb freescale/imx8mp-evk-dual-ov2775.dtb \
- freescale/imx8mp-evk-ecspi-slave.dtb \
- freescale/imx8mp-evk-flexcan2.dtb freescale/imx8mp-evk-inmate.dtb \
- freescale/imx8mp-evk-jdi-wuxga-lvds-panel.dtb \
- freescale/imx8mp-evk-it6263-lvds-dual-channel.dtb \
- freescale/imx8mp-evk-ndm.dtb \
- freescale/imx8mp-evk-ov2775.dtb freescale/imx8mp-evk-ov2775-ov5640.dtb \
- freescale/imx8mp-evk-pcie-ep.dtb \
- freescale/imx8mp-evk-rm67191.dtb \
- freescale/imx8mp-evk-rm67199.dtb \
- freescale/imx8mp-evk-root.dtb freescale/imx8mp-evk-rpmsg.dtb \
- freescale/imx8mp-evk-sof-wm8960.dtb freescale/imx8mp-evk-spdif-lb.dtb \
- freescale/imx8mp-evk-usdhc1-m2.dtb \
"
# DEVICETREE of i.MX 8QM
meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf
--- a/conf/machine/imx8mp-lpddr4-evk.conf
+++ b/conf/machine/imx8mp-lpddr4-evk.conf
@@ -12,31 +12,33 @@ KERNEL_DEVICETREE_BASENAME = "imx8mp-evk"
# NXP kernel has additional DTB files for various board configuration and
# derivates. Include them here for NXP BSP only
KERNEL_DEVICETREE_append_use-nxp-bsp = " \
- freescale/imx8mp-ab2.dtb \
- freescale/imx8mp-evk-basler.dtb \
- freescale/imx8mp-evk-basler-ov2775.dtb \
- freescale/imx8mp-evk-basler-ov5640.dtb \
- freescale/imx8mp-evk-dual-basler.dtb \
- freescale/imx8mp-evk-dual-ov2775.dtb \
- freescale/imx8mp-evk-ecspi-slave.dtb \
- freescale/imx8mp-evk-flexcan2.dtb \
- freescale/imx8mp-evk-hifiberry-dacplus.dtb \
- freescale/imx8mp-evk-inmate.dtb \
- freescale/imx8mp-evk-iqaudio-dacplus.dtb \
- freescale/imx8mp-evk-iqaudio-dacpro.dtb \
- freescale/imx8mp-evk-it6263-lvds-dual-channel.dtb \
- freescale/imx8mp-evk-jdi-wuxga-lvds-panel.dtb \
- freescale/imx8mp-evk-ndm.dtb \
- freescale/imx8mp-evk-ov2775.dtb \
- freescale/imx8mp-evk-ov2775-ov5640.dtb \
- freescale/imx8mp-evk-pcie-ep.dtb \
- freescale/imx8mp-evk-rm67191.dtb \
- freescale/imx8mp-evk-rm67199.dtb \
- freescale/imx8mp-evk-root.dtb \
- freescale/imx8mp-evk-rpmsg.dtb \
- freescale/imx8mp-evk-sof-wm8960.dtb \
- freescale/imx8mp-evk-spdif-lb.dtb \
- freescale/imx8mp-evk-usdhc1-m2.dtb \
+ freescale/imx8mp-evk.dtb \
+ freescale/imx8mp-debix-4g-board.dtb \
+ freescale/imx8mp-debix-core-HC050IG40029-D58V.C.dtb \
+ freescale/imx8mp-debix-core-HC080IY28026-D60V.C.dtb \
+ freescale/imx8mp-debix-core-HC101IK25050-D59V.C.dtb \
+ freescale/imx8mp-debix-core-JW050R0320I01.dtb \
+ freescale/imx8mp-debix-core-JW070R0520B02.dtb \
+ freescale/imx8mp-debix-core-JW080R1120B02.dtb \
+ freescale/imx8mp-debix-core-JW101HD-X00.dtb \
+ freescale/imx8mp-debix-core-board.dtb \
+ freescale/imx8mp-debix-io-HC050IG40029-D58V.C.dtb \
+ freescale/imx8mp-debix-io-HC080IY28026-D60V.C.dtb \
+ freescale/imx8mp-debix-io-HC101IK25050-D59V.C.dtb \
+ freescale/imx8mp-debix-io-JW050R0320I01.dtb \
+ freescale/imx8mp-debix-io-JW070R0520B02.dtb \
+ freescale/imx8mp-debix-io-JW080R1120B02.dtb \
+ freescale/imx8mp-debix-io-JW101HD-X00.dtb \
+ freescale/imx8mp-debix-io-board.dtb \
+ freescale/imx8mp-debix-io-raspberrypi-touchscreen.dtb \
+ freescale/imx8mp-debix-lora-HC050IG40029-D58V.C.dtb \
+ freescale/imx8mp-debix-lora-HC080IY28026-D60V.C.dtb \
+ freescale/imx8mp-debix-lora-HC101IK25050-D59V.C.dtb \
+ freescale/imx8mp-debix-lora-JW050R0320I01.dtb \
+ freescale/imx8mp-debix-lora-JW070R0520B02.dtb \
+ freescale/imx8mp-debix-lora-JW080R1120B02.dtb \
+ freescale/imx8mp-debix-lora-JW101HD-X00.dtb \
+ freescale/imx8mp-debix-lora-board.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8mp_evk"
二、编译sdk
DISTRO=fsl-imx-xwayland MACHINE=imx8mpevk source imx-setup-release.sh -b debix-model-a
第一次运行这个地方选择 ‘y’
根据官方文档 可以编译的 images ,本章节只做测试编译个最小系统 core-image-minimal
运行 bitbake core-image-minimal 开始编译。
编译完成
三、烧录固件到sd卡
1、拷贝第二步编译好的 tmp/deploy/images/imx8mpevk/core-image-minimal-imx8mpevk.wic.bz2文件到windows
2、运行 balenaEtcher (下载路径balenaEtcher - Flash OS images to SD cards & USB drives)
选择 固件和 U盘 ,再点击 现在烧录 按钮开始烧录
四、开机验证
1、把T卡插入到 Debix Model A 设备,然后上电
Model A 上有个拨码开关 调节到 11 为 T卡启动
2、上电后通过Hdmi 有显示输出 和 debug uart 显示如下
使用root 登录
yocto 系统源码编译和烧录,方法经过测试可以正常工作。