【Debix Model A】编译Yocto系统

2 篇文章 0 订阅
2 篇文章 0 订阅

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)

Memory2GB LPDDR4 (4GB/8GB optional)
StorageDefault: Micro SD card (Onboard 8GB/16GB/32GB/64GB/128GB/256GB eMMC optional)
OSAndroid 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 & BT2.4GHz & 5GHz WIFI, BT5.0
USB

4 x USB 3.0 Host

1 x USB 2.0 OTG

Audio1 x Headphone and Mic combo port
HDMI1 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

LVDS1 x LVDS, single & dual channel 8bit
MIPI CSI1 x MIPI CSI (4-lane)
MIPI DSI1 x MIPI DSI (4-lane)
PCIe1 x PCIe Gen3 1-lane
Power Supply
Power SupplyDC 5V/3A Type-C
Mechanical & Environmental
Size85.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 系统源码编译和烧录,方法经过测试可以正常工作。

【Debix Model A】编译Ubuntu 20.04系统

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值