TechNexion / meta-tn-imx-bsp

TechNexion BSP Layer for i.MX Yocto Project
MIT License
6 stars 11 forks source link

IMX6 boards fail to build on kirkstone #25

Open MikeLooijmans opened 3 months ago

MikeLooijmans commented 3 months ago

Apparently never tested or so?

Setting MACHINE to "edm-imx6" or "wandboard-imx6" results in build failures. First on u-boot setting, the override does not actually work, thus you get:

u-boot-tn-imx was skipped: PREFERRED_PROVIDER_virtual/bootloader set to u-boot-fslc, not u-boot-tn-imx

Running "bitbake -e" demonstrates the issue:

# $PREFERRED_PROVIDER_virtual/bootloader [2 operations]
#   set /home/mike/.../meta-freescale/conf/machine/include/imx-base.inc:82
#     [_defaultval] "${IMX_DEFAULT_BOOTLOADER}"
#   override[tn]:set /home/mike/.../meta-tn-imx-bsp/conf/machine/tn-base.inc:50
#     "u-boot-tn-imx"
# pre-expansion value:
#   "${IMX_DEFAULT_BOOTLOADER}"
PREFERRED_PROVIDER_virtual/bootloader="u-boot-fslc"
#
# $PREFERRED_PROVIDER_virtual/bootloader:tn
#   set /home/mike/.../meta-tn-imx-bsp/conf/machine/tn-base.inc:50
#     "u-boot-tn-imx"
PREFERRED_PROVIDER_virtual/bootloader:tn="u-boot-tn-imx"

Removing the pointless and broken ":tn" suffix in tn-base.inc solves this particular issue.

But then the next issue arises:

ERROR: Nothing PROVIDES 'virtual/kernel'
linux-yocto-rt PROVIDES virtual/kernel but was skipped: incompatible with machine wandboard-imx6 (not in COMPATIBLE_MACHINE)
...
linux-fslc PROVIDES virtual/kernel but was skipped: PREFERRED_PROVIDER_virtual/kernel set to linux-tn-imx, not linux-fslc
linux-imx PROVIDES virtual/kernel but was skipped: incompatible with machine wandboard-imx6 (not in COMPATIBLE_MACHINE)
...
ray-chang commented 3 months ago

@MikeLooijmans

Thanks for the feedback. I don't know which branch you're using. But I didn't have a problem building on both of our branches(-next and -stable).

For more information about the build steps, see: https://github.com/TechNexion/tn-imx-yocto-manifest/tree/kirkstone_5.15.y-stable

It is recommended to use our docker container, dockerfile as below: https://github.com/TechNexion/meta-tn-imx-bsp/blob/kirkstone_5.15.71-2.2.0-stable/tools/container/dockerfile

Or use the virtual machines we built. https://download.technexion.com/development_resources/development_tools/vm/Build_Env_Ubuntu_x64_20.04_vmware-20221202.zip

BR, Ray

MikeLooijmans commented 3 months ago

As for the branch, I did mention "kirkstone"

We're trying to build using plain yocto/OE because we already have a product and we want to deploy it on a technexion board.

This meta layer depends on many other layers but fails to mention them in layer.conf. Please fix it. It'd be really nice to have a layer that just configures kernel, u-boot and similar things and doesn't require containers, browser and whatnot.

ray-chang commented 3 months ago

@MikeLooijmans

I don't know if I've misinterpreted what you mean. The u-boot used by the MACHINE set to "edm-imx6" or "wandboard-imx6" is u-boot-tn-imx, see the following figure: image

If you want to build a simple image file, you can use imx-image-core to create an image.

bitbake imx-image-core

We also have pre-built complete images. https://developer.technexion.com/docs/release-notes-yp40-2024q1

Ray

ray-chang commented 3 months ago

@MikeLooijmans

After our internal discussions, we understand what your needs are. Your opinion is very good. But we can't make such a big change in a short period of time. We can only schedule it to our to-do.

I can provide you with the contents of our bblayers.conf. You can adjust it to suit your needs.

LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"

BBFILES ?= ""
BBLAYERS = " \
  ${BSPDIR}/sources/poky/meta \
  ${BSPDIR}/sources/poky/meta-poky \
  \
  ${BSPDIR}/sources/meta-openembedded/meta-oe \
  ${BSPDIR}/sources/meta-openembedded/meta-multimedia \
  ${BSPDIR}/sources/meta-openembedded/meta-python \
  \
  ${BSPDIR}/sources/meta-freescale \
  ${BSPDIR}/sources/meta-freescale-3rdparty \
  ${BSPDIR}/sources/meta-freescale-distro \
"

# setup i.MX Yocto Project Release layers in bblayers.conf
BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-bsp"
BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-sdk"
BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-ml"
BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-v2x"
BBLAYERS += "${BSPDIR}/sources/meta-nxp-demo-experience"

BBLAYERS += "${BSPDIR}/sources/meta-browser/meta-chromium"
BBLAYERS += "${BSPDIR}/sources/meta-clang"
BBLAYERS += "${BSPDIR}/sources/meta-openembedded/meta-gnome"
BBLAYERS += "${BSPDIR}/sources/meta-openembedded/meta-networking"
BBLAYERS += "${BSPDIR}/sources/meta-openembedded/meta-filesystems"
BBLAYERS += "${BSPDIR}/sources/meta-qt6"
BBLAYERS += "${BSPDIR}/sources/meta-virtualization"

# setup TechNexion i.MX Yocto Project Release Layers in bblayers.conf
BBLAYERS += " ${BSPDIR}/sources/meta-tn-imx-bsp "

# setup TechNexion wifi layer in bblayers.conf
BBLAYERS += " ${BSPDIR}/sources/meta-tn-wifi "

# setup TechNexion vizionsdk layer in bblayers.conf
BBLAYERS += " ${BSPDIR}/sources/meta-tn-vizionsdk "

# setup NXP nfc release layer in bblayers.conf
BBLAYERS += " ${BSPDIR}/sources/meta-nxp-nfc "

Ray