To build without using "wayland" distro feature

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

To build without using "wayland" distro feature

4,726 Views
srini_shanmugam
Contributor II

Dear I.MX community,

As per our current design, below is the contents of the common distro.conf (CustomOS.conf) which is used for our custom platform,
which is used for other some other hardware platforms too, but as of now as I was trying to integrate the imx8 layers (as imx8 platform is
dependent on 'wayland' distro feature), I have already created the separate layer (meta-custom-imx8) for adding support for imx8 into our
custom distro and integrated into our custom distro and trying to build for imx8 using this CustomOS.conf.

Could you please let me know how can I remove this "wayland" under "DISTRO_FEATURES_remove" without editing this "CustomOS.conf" file (as this distro file is common for all the other platforms and need not to be touched, just for sake of building for imx8). And I have also tried moving this to meta-custom-imx8 layer without touching the "CustomOS.conf" by using "imx8mmevk-extra.conf" (by adding DISTRO_FEATURES_append = " wayland pam systemd").

Until or unless I remove the 'wayland' entry from DISTRO_FEATURES_remove in "CustomOS.conf", the build is not going
through and stuck with the error as shown below.

Could you please do the needful with your pointers for solving this issue  (ie., without editing the "CustomOS.conf" - without removing the "wayland" entry from DISTRO_FEATURES_remove in CustomOS.conf) how can I get the build to go through, Is there anyways that I can override this in my meta-custom-imx8 layer??


CustomOS.conf
=============
require conf/distro/poky.conf
DISTRO = "CustomOS"
DISTRO_NAME = "CustomOS distribution"
DISTRO_VERSION = '${CUSTOM_DISTRO_VERSION}'
DISTRO_CODENAME = "CustomOS"
SDK_VENDOR = "-customostrksdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"

# Remove bullshit
DISTRO_FEATURES_remove = " \
api-documentation \
cramfs \
directfb \
ipsec \
irda \
pci \
pcmcia \
ptest \
wayland \
x11 \
ipv6 \
"

# Add stuff
DISTRO_FEATURES_append = " \
alsa \
bluez5 \
ldconfig \
opengl \
systemd \
"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"

imx8mmevk-extra.conf
====================
include custom-imx8-base.inc
include conf/distro/include/fsl-imx-preferred-env.inc

DISTRO_FEATURES_append = " wayland pam systemd"

SSTATE_DIR ?= "/var/build/yocto/sstate-cache/sumo-imx8"
SOURCE_MIRROR_URL ?= "file:///var/build/yocto/sources/sumo-imx8/"

DISTRO_NAME_append = " (${CUSTOM_TARGET_IMAGE})"

Error:
======
WARNING: Host distribution "ubuntu-18.04" has not been validated with
this version of the build system; you may possibly experience
unexpected failures. It is recommended that you use a tested
distribution.
Parsing recipes: 100%
|#############################################################################################################################################################################################################################################|
Time: 0:00:11
Parsing of 2351 .bb files complete (0 cached, 2351 parsed). 3258
targets, 419 skipped, 7 masked, 0 errors.
Removing 1 recipes from the aarch64 sysroot: 100%
|#################################################################################################################################################################################################################|
Time: 0:00:00
Removing 4 recipes from the imx8mmevk sysroot: 100%
|###############################################################################################################################################################################################################|
Time: 0:00:00
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'virtual/egl' (but
/home/srinishanmugam/custombuild_test19/customos/sources/meta-qt5/recipes-qt/qt5/qtbase_git.bb,
/home/srinishanmugam/custombuild_test19/customos/sources/poky/meta/recipes-graphics/cairo/cairo_1.14.12.bb
DEPENDS on or otherwise requires it)
imx-gpu-viv PROVIDES virtual/egl but was skipped: incompatible with
machine imx8mmevk (not in COMPATIBLE_MACHINE)
imx-gpu-viv PROVIDES virtual/egl but was skipped: missing required
distro feature 'wayland' (not in DISTRO_FEATURES)
imx-gpu-viv PROVIDES virtual/egl but was skipped: incompatible with
machine imx8mmevk (not in COMPATIBLE_MACHINE)
NOTE: Runtime target 'qtbase' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['qtbase', 'virtual/egl']
ERROR: Required build target 'traktor-image-debug-imx8' has no
buildable providers.
Missing or unbuildable dependency chain was:
['traktor-image-debug-imx8', 'qtbase', 'virtual/egl']

Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
2019-01-29 11:40:34,651 - Error during build (Return code 1)

kindly do the needful, please let me if you require any other information needs to be furnished from my side.

Thanks in advance

0 Kudos
Reply
1 Reply

823 Views
timblaktu
Contributor I

@srini_shanmugam I thought I'd chime in and test your long-term memory. Do you remember how you end up managing DISTRO-level changes on your platform?

I have been trying to "remove bs" from `fsl-imx-xwayland` on an imx8mp on a Variscite SoM, which as you may recall is the only DISTRO that NXP and its downstream hardware vendors support. A few months ago, I gave up on creating my own custom distro after hitting so many errors like the one you reported here, and getting no support because I wasn't using `fsl-imx-xwayland` verbatim.

In the meantime, I've been stripping `DISTRO_FEATURES` (and `MACHINE_FEATURES`) via my site.conf, which reduces image size, but only partially removes the "features". For example, an image created by removing `wifi` from *_FEATURES still has packages like `wpa_supplicant` and still runs the start/stop jobs trying to being up a non-existent `wlan0` interface at boot. The BSP/SDK layers provided by NXP and Variscite don't fully support this. I suspect that since they only test their DISTRO (with its full set of features), this sort of customization, which is a Yocto Project standard, broke a long time ago, if it ever worked. I suppose the moral of that story is that these BSPs are not Yocto Project certified. 

Accepting this and moving on.. this whole time I have been using a custom image recipe, based on `core-image` and adding to IMAGE_FEATURES, IMAGE_INSTALL, and CORE_IMAGE_EXTRA_INSTALL as desired:

inherit core-image features_check image-buildinfo

REQUIRED_DISTRO_FEATURES += " alsa nfs systemd usbgadget usbhost virtualization zeroconf"

IMAGE_FEATURES:append = " \
  hwcodecs \
  debug-tweaks \
  nfs-client \
  empty-root-password \
  serial-autologin-root \
  tools-debug \
  tools-testapps \
"

CORE_IMAGE_EXTRA_INSTALL:append = " \
  packagegroup-core-full-cmdline \
  packagegroup-imx-tools-audio \
  packagegroup-fsl-tools-testapps \
  packagegroup-fsl-tools-benchmark \
  packagegroup-variscite-imx-docker \
  packagegroup-variscite-devel \
  systemd-analyze \
"

IMAGE_INSTALL:append = " packagegroup-tr-base"

 

..where packagegroup-tr-base is defined as:

 

inherit packagegroup

PACKAGE_ARCH = "${MACHINE_ARCH}"

PACKAGES = "packagegroup-tr-base"

RDEPENDS:packagegroup-tr-base = "\
  vim-tiny \
  tmux \
  docker-moby \
  python3-docker-compose \
  alsa-utils \
  curl \
  dosfstools \
  fio \
  i2c-tools \
  imx-kobs \
  libjack \
  jack-server \
  os-release \
  lsb-release \
  ldd \
  memtester \
  mtd-utils \
  mtd-utils-ubifs \
  openssh \
"

RRECOMMENDS:packagegroup-tr-base = ""

 

..and I have moved all my site.conf changes to *_FEATURES to my custom distro metadata in my custom layer, described below. near the definition of *_FEATURES variables, you can see comments that indicate which permutations built successfully, and which encountered an error. Most of these errors I've encountered appear to be caused by the above lack of support for changing *_FEATURES.

Unless anyone here has better suggestions or information, next steps for me are to start hacking at these errors one by one, patching the assumptions made in the offending metadata layer(s) about these variables (they are not constants!)

 

==> ../sources/meta-my-custom-layer/conf/distro/my-custom-distro-fsl-imx.conf <==
require conf/distro/fsl-imx-xwayland.conf

DISTRO = "my-custom-distro-fsl-imx"

MACHINE_FEATURES:remove = "touchscreen screen bluetooth wifi nxpiw612-sdio"
# SUCCESS ==> MACHINE_FEATURES:remove = "touchscreen screen bluetooth wifi nxpiw612-sdio"

DISTRO_FEATURES:remove = "bluetooth wifi 3g nfc "
# SUCCESS ==> DISTRO_FEATURES:remove = "bluetooth"
# SUCCESS ==> DISTRO_FEATURES:remove = "bluetooth wifi 3g nfc "
# --------------------------------------------------------------------------------------
# FAILED ==> DISTRO_FEATURES:remove = " x11 opengl vulkan wayland"
# FAILED ==> DISTRO_FEATURES:remove = "bluetooth wifi 3g nfc opengl vulkan wayland"
# FAILED ==> DISTRO_FEATURES:remove = "bluetooth wifi 3g nfc opengl"
# FAILED ==> DISTRO_FEATURES:remove = "bluetooth wifi 3g nfc x11 "
# FAILED ==> DISTRO_FEATURES:remove = "bluetooth wifi 3g nfc x11 opengl vulkan wayland"

0 Kudos
Reply