【Debix Model A】编译Ubuntu 20.04系统

编译服务器使用 ubuntu 18.04

编译前安装

$ 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

一、下载SDK

通过 debix官网 可以看到Debix 使用的是 ubuntu20.04 内核版本为 5.10.72。

NXP 对应的 Ubuntu 系统 为 imx-5.10.72-2.2.0_desktop.xml,下面是下载方法。

$ mkdir ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo  > ~/bin/repo
$ chmod a+x ~/bin/repo
$ PATH=${PATH}:~/bin

$ mkdir imx-5.10.72-hardknott
$ cd imx-5.10.72-hardknott
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-hardknott -m imx-5.10.72-2.2.0_desktop.xml
$ repo sync

二、修改源码更变为debix model A相应代码

        1、uboot 更换

--- a/sources/meta-imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
+++ b/sources/meta-imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
@@ -7,10 +7,10 @@ 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/debix-tech/uboot.git;protocol=https"
 SRCBRANCH = "lf_v2021.04"
 SRC_URI = "${UBOOT_SRC};branch=${SRCBRANCH}"
-SRCREV = "263b27e076a0f6e5dcc80227a235f0af73718342"
+SRCREV = "7d071c6d1e3eefb542bb8398bf641a40efae70aa"

 LOCALVERSION = "-${SRCBRANCH}"

       2、kernel 更换

--- a/sources/meta-imx/meta-bsp/recipes-kernel/linux/linux-imx_5.10.bb
+++ b/sources/meta-imx/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 = "debix"
 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 = "a8727e450408291e5fd0aabaff93c648dbcff075"

 # PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition
 # required by kernel-yocto.bbclass.


--- a/sources/meta-imx/meta-bsp/recipes-kernel/linux/linux-imx-headers_5.10.bb
+++ b/sources/meta-imx/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 = "debix"
 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 = "a8727e450408291e5fd0aabaff93c648dbcff075"

 S = "${WORKDIR}/git"

         3、删除无效的dtb文件

--- a/sources/meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf
+++ b/sources/meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf
@@ -11,33 +11,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 \
-"
+# 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 \
+# "

 UBOOT_CONFIG_BASENAME = "imx8mp_evk"
 UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"

--- a/sources/meta-imx/meta-bsp/conf/layer.conf
+++ b/sources/meta-imx/meta-bsp/conf/layer.conf
@@ -99,7 +99,7 @@ MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8 sof-imx"
 MACHINE_FIRMWARE_append_mx8mn  = " firmware-imx-easrc-imx8mn"
 MACHINE_FIRMWARE_append_mx8mnul = " firmware-imx-easrc-imx8mn"
 MACHINE_FIRMWARE_remove_mx8mp  = "firmware-sof-imx"
-MACHINE_FIRMWARE_append_mx8mp  = " sof-imx"
+MACHINE_FIRMWARE_append_mx8mp  = " sof-imx ap6256-firmware"
 MACHINE_FIRMWARE_remove_mx8mpul  = "firmware-sof-imx"
 MACHINE_FIRMWARE_append_mx8mpul  = " sof-imx"
 MACHINE_FIRMWARE_append_mx8ulp = " sof-imx"
@@ -325,16 +325,16 @@ KERNEL_DEVICETREE_append_imx8mn-ddr4-evk = " \
 # Overrides for imx8mp-lpddr4-evk
 #MACHINE_FEATURES_IMX_REMOVALS_append_imx8mp-lpddr4-evk = " jailhouse"
 MACHINE_FEATURES_append_imx8mp-lpddr4-evk = " optee nxp8997"
-KERNEL_DEVICETREE_remove_imx8mp-lpddr4-evk = " \
-    freescale/imx8mp-evk-dsp-lpa.dtb \
-"
-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 \
-"
+#KERNEL_DEVICETREE_remove_imx8mp-lpddr4-evk = " \
+#    freescale/imx8mp-evk-dsp-lpa.dtb \
+#"
+#KERNEL_DEVICETREE_append_imx8mp-lpddr4-evk = " \
+#    freescale/imx8mp-evk-dsp.dtb \
+#    freescale/imx8mp-evk-ecspi-slave.dtb \
+#    freescale/imx8mp-evk-ndm.dtb \
+#    freescale/imx8mp-debix-lora-board.dtb \
+#    freescale/imx8mp-debix-io-board.dtb \
+#"
 WKS_FILE_DEPENDS_append_imx8mp-lpddr4-evk = " imx-m7-demos"
 IMAGE_BOOT_FILES_append_imx8mp-lpddr4-evk = " \
     imx8mp_m7_TCM_hello_world.bin \


--- a/sources/meta-imx/meta-bsp/conf/machine/imx8_all.conf
+++ b/sources/meta-imx/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


--- a/sources/meta-imx/meta-bsp/conf/machine/imx8mpul-lpddr4-evk.conf
+++ b/sources/meta-imx/meta-bsp/conf/machine/imx8mpul-lpddr4-evk.conf
@@ -11,29 +11,29 @@ 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-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 \
-"
+#KERNEL_DEVICETREE_append_use-nxp-bsp = " \
+#      freescale/imx8mp-ab2.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 \
+#"

 UBOOT_CONFIG_BASENAME = "imx8mp_evk"
 UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"

         4、新增目录加入 wifi firmware 

                     文件保存于网盘 : 

链接: https://pan.baidu.com/s/13_4b2cuJ9gehxqSONRkznQ?pwd=eus6

提取码: eus6 

        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware.bb
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/BCM4345C0.hcd
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/BCM4345C5.hcd
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/brcmfmac43455-sdio.bin
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/brcmfmac43455-sdio.clm_blob
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/brcmfmac43455-sdio.fsl,imx8mp-evk.txt
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/brcmfmac43456-sdio.bin
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/brcmfmac43456-sdio.clm_blob
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/brcmfmac43456-sdio.fsl,imx8mp-evk.txt
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/cyfmac43455-sdio.bin
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/cyfmac43455-sdio.clm_blob
        new file:   sources/meta-imx/meta-bsp/recipes-polyhex/ap6256-firmware/ap6256-firmware/cyfmac43455-sdio.txt

开启蓝牙

--- a/sources/meta-nxp-desktop/recipes-fsl/images/imx-image-desktop.bb
+++ b/sources/meta-nxp-desktop/recipes-fsl/images/imx-image-desktop.bb
@@ -14,7 +14,7 @@ APTGET_CHROOT_DIR = "${IMAGE_ROOTFS}"
 APTGET_SKIP_UPGRADE = "1"

 ROOTFS_POSTPROCESS_COMMAND_append = "do_fix_ldconfig; do_save_graphics; do_save_cheese;  do_aptget_update; do_update_host; do_update_dns;"
-IMAGE_PREPROCESS_COMMAND_append = " do_fix_connman_conflict; do_enable_graphics; do_enable_cheese; do_cleanup_rootfs"
+IMAGE_PREPROCESS_COMMAND_append = " do_fix_connman_conflict; do_enable_bluetooth; do_enable_graphics; do_enable_cheese; do_cleanup_rootfs"

 REQUIRED_DISTRO_FEATURES = "wayland"

@@ -326,7 +326,7 @@ After=dev-serial1.device \n
 \n
 [Service] \n
 Type=forking \n
-ExecStart=-/usr/bin/hciattach /dev/ttymxc0 qualcomm -t120 115200 flow \n
+ExecStart=-/usr/bin/hciattach /dev/ttymxc0 bcm43xx -t120 3000000 flow \n
  \n
 [Install] \n
 WantedBy=multi-user.target \n

三、编译sdk

DISTRO=imx-desktop-xwayland MACHINE=imx8mpevk source imx-setup-desktop.sh -b debix-desktop

bitbake imx-image-desktop

四、编译过程中遇到的一些问题

       1、sources/meta-nxp-desktop/recipes-extended/ubuntu/ubuntu-base_20.04.3.bb:do_install) failed with exit code '1'

     查看了报错文档里面提到:是加了 proxy 代理导致。 

Ign:4 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease
Err:5 http://ports.ubuntu.com/ubuntu-ports focal Release
  Unsupported proxy configured: 192.168.2.35://7892
Err:6 http://ports.ubuntu.com/ubuntu-ports focal-updates Release
  Unsupported proxy configured: 192.168.2.35://7892
Err:7 http://ports.ubuntu.com/ubuntu-ports focal-backports Release
  Unsupported proxy configured: 192.168.2.35://7892
Err:8 http://ports.ubuntu.com/ubuntu-ports focal-security Release
  Unsupported proxy configured: 192.168.2.35://7892
Reading package lists...

修改如下:

--- a/sources/meta-nxp-desktop/classes/nativeaptinstall.bbclass
+++ b/sources/meta-nxp-desktop/classes/nativeaptinstall.bbclass
@@ -158,7 +158,8 @@ ${PSEUDO_LOCALSTATEDIR}:\
 ${DPKG_NATIVE}:\
 "

-ENV_HOST_PROXIES ?= "http_proxy=${http_proxy}"
+#John_gao ENV_HOST_PROXIES ?= "http_proxy=${http_proxy}"
+ENV_HOST_PROXIES ?= ""
 APTGET_HOST_PROXIES ?= ""
 APTGET_EXECUTABLE ?= "/usr/bin/apt-get"
 APTGET_DEFAULT_OPTS ?= "-qy -o=Dpkg::Use-Pty=0"

五、烧录固件到sd卡

        1、编译好后拷贝文件 : tmp/deploy/images/imx8mpevk/imx-image-desktop-imx8mpevk.wic.bz到pc端

        2、运行 balenaEtcher (下载路径balenaEtcher - Flash OS images to SD cards & USB drives

选择 固件和 U盘 ,再点击 现在烧录 按钮开始烧录

T卡烧录完成插入 Debix Model A 板子上运行。 

登录用户名 :user

密码 : user

运行结果

《上一篇 : 【Debix Model A】编译Yocto系统》

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值