diff options
-rw-r--r-- | .gitlab-ci.yml | 20 | ||||
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | buildconf/bblayers.conf | 20 | ||||
-rw-r--r-- | buildconf/export | 2 | ||||
-rw-r--r-- | buildconf/local.conf | 120 | ||||
-rw-r--r-- | classes/toradex-mirrors.bbclass | 14 | ||||
-rw-r--r-- | conf/distro/include/arm-defaults.inc | 10 | ||||
-rw-r--r-- | conf/distro/include/tdx-base.inc | 61 | ||||
-rw-r--r-- | conf/distro/tdx-x11-rt.conf | 2 | ||||
-rw-r--r-- | conf/distro/tdx-x11-upstream-rt.conf | 2 | ||||
-rw-r--r-- | conf/distro/tdx-x11-upstream.conf | 2 | ||||
-rw-r--r-- | conf/distro/tdx-x11.conf | 10 | ||||
-rw-r--r-- | conf/distro/tdx-xwayland-rt.conf | 2 | ||||
-rw-r--r-- | conf/distro/tdx-xwayland-upstream-rt.conf | 2 | ||||
-rw-r--r-- | conf/distro/tdx-xwayland-upstream.conf | 2 | ||||
-rw-r--r-- | conf/distro/tdx-xwayland.conf | 6 | ||||
-rw-r--r-- | conf/layer.conf | 2 | ||||
-rw-r--r-- | lib/recipetool/updatesrcrev.py | 13 | ||||
-rwxr-xr-x | scripts/uprev-srcrev | 43 |
19 files changed, 211 insertions, 125 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..381f4b1 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,20 @@ +variables: +# uncomment for the pipeline debug purpose +# CI_DEBUG_TRACE: "true" + CI_IMAGE: gitlab.int.toradex.com:4567/oleksandr.suvorov/ci-toolchain-container:linux-kernel-builder + DOCKER_HOST: tcp://docker:2375 + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" + +stages: + - empty-stub + +prepare_image: + stage: empty-stub + image: $CI_IMAGE + variables: + GIT_STRATEGY: fetch + GIT_DEPTH: "1" + script: | + echo "Empty test pipeline." + true @@ -52,8 +52,7 @@ To send patches, use Building ======== -See the README in either meta-toradex-nxp or meta-toradex-tegra depending -on your SoC. +See the README in meta-toradex-nxp layer. License ======= diff --git a/buildconf/bblayers.conf b/buildconf/bblayers.conf index 1ee37e3..9377e8f 100644 --- a/buildconf/bblayers.conf +++ b/buildconf/bblayers.conf @@ -5,12 +5,23 @@ LCONF_VERSION = "7" BBPATH = "${TOPDIR}" BBFILES ?= "" -BBLAYERS ?= " \ +BBLAYERS_NXP ?= " \ ${TOPDIR}/../layers/meta-toradex-nxp \ ${TOPDIR}/../layers/meta-freescale \ ${TOPDIR}/../layers/meta-freescale-3rdparty \ - \ - ${TOPDIR}/../layers/meta-toradex-tegra \ +" + +BBLAYERS_TI ?= " \ + ${TOPDIR}/../layers/meta-toradex-ti \ + ${TOPDIR}/../layers/meta-arm/meta-arm-toolchain \ + ${TOPDIR}/../layers/meta-arm/meta-arm \ + ${TOPDIR}/../layers/meta-ti/meta-ti-bsp \ + ${TOPDIR}/../layers/meta-ti/meta-ti-extras \ +" + +BBLAYERS ?= " \ + ${BBLAYERS_NXP} \ + ${BBLAYERS_TI} \ \ ${TOPDIR}/../layers/meta-toradex-bsp-common \ \ @@ -18,14 +29,13 @@ BBLAYERS ?= " \ ${TOPDIR}/../layers/meta-openembedded/meta-filesystems \ ${TOPDIR}/../layers/meta-openembedded/meta-gnome \ ${TOPDIR}/../layers/meta-openembedded/meta-xfce \ - ${TOPDIR}/../layers/meta-openembedded/meta-initramfs \ ${TOPDIR}/../layers/meta-openembedded/meta-networking \ ${TOPDIR}/../layers/meta-openembedded/meta-multimedia \ ${TOPDIR}/../layers/meta-openembedded/meta-python \ ${TOPDIR}/../layers/meta-freescale-distro \ ${TOPDIR}/../layers/meta-toradex-demos \ ${TOPDIR}/../layers/meta-qt5 \ - \ + ${TOPDIR}/../layers/meta-security/meta-tpm \ \ ${TOPDIR}/../layers/meta-toradex-distro \ ${TOPDIR}/../layers/meta-yocto/meta-poky \ diff --git a/buildconf/export b/buildconf/export index b535a3a..87d9e95 100644 --- a/buildconf/export +++ b/buildconf/export @@ -39,5 +39,5 @@ if [ $FIRST_TIME -eq 1 ]; then $ECHO -e "\033[1mA sample conf/local.conf file has been created" $ECHO -e "Check and edit the file to adapt to your local needs\033[0m" echo "The following likely need your attention:" - echo "DL_DIR" + echo "ACCEPT_FSL_EULA = "1", DISTRO, DL_DIR" fi diff --git a/buildconf/local.conf b/buildconf/local.conf index 8c6fd5f..59b1f3b 100644 --- a/buildconf/local.conf +++ b/buildconf/local.conf @@ -18,18 +18,30 @@ # machines which target the Toradex Apalis, Colibri and Verdin computer on # module families: # + +# Toradex Modules based on i.MX 6/6ULL/7 are only supported with the +# tdx-xwayland-upstream DISTRO which builds a kernel pulled from +# kernel.org and use matching userspace components. #MACHINE ?= "apalis-imx6" -#MACHINE ?= "apalis-imx8" -#MACHINE ?= "apalis-imx8x" -#MACHINE ?= "apalis-tk1" -# -MACHINE ?= "colibri-imx6" +#MACHINE ?= "colibri-imx6" #MACHINE ?= "colibri-imx6ull" +#MACHINE ?= "colibri-imx6ull-emmc" #MACHINE ?= "colibri-imx7" #MACHINE ?= "colibri-imx7-emmc" -#MACHINE ?= "colibri-imx8x" # +# Toradex Modules based on SoC of the i.MX 8 family are supported with the +# tdx-xwayland DISTRO which builds a kernel based on NXP's downstream fork +# and matching userspace components. Support with tdx-xwayland-upstream +# DISTRO is experimental and currently only builds for Verdin modules. +#MACHINE ?= "apalis-imx8" +#MACHINE ?= "colibri-imx8x" #MACHINE ?= "verdin-imx8mm" +#MACHINE ?= "verdin-imx8mp" +# +# Toradex Modules based on SoC of the TI AM62x family are supported with the +# tdx-xwayland DISTRO which builds a kernel based on TI downstream fork +# and matching userspace components. +#MACHINE ?= "verdin-am62" # # There are also a selection of emulated machines available which can boot and run # in the QEMU emulator: @@ -87,7 +99,18 @@ SSTATE_DIR ?= "${TOPDIR}/../sstate-cache" # This places the build output in parallel to build and layers thus # if you have several build directories you need to adjust deploy # to something unique, e.g. "${TOPDIR}/../deploy_fb" "${TOPDIR}/../deploy_x11" -DEPLOY_DIR = "${TOPDIR}/deploy" +# +# In case of a multiconfig (e.g. TI's k3 architecture) separate the deploy +# dirs. All native recipe deploy identical license files into the deploy directories. +# If having one deploy directory for all configs this results in build errors +# for any build executed after the first one. +# Thus configure a deploy directory with the name of the multiconfig inside the +# default deploy directory. +# If build artefacts are needed for the final image additional work may be +# needed, follow TI_COMMON_DEPLOY to see how that is than in the k3 case. +# +TI_COMMON_DEPLOY = "${TOPDIR}/deploy" +DEPLOY_DIR = "${TI_COMMON_DEPLOY}${@'' if d.getVar('BB_CURRENT_MC') == 'default' else '/${BB_CURRENT_MC}'}" # # Package Management configuration @@ -109,7 +132,7 @@ PACKAGE_CLASSES ?= "package_ipk" # This variable specifies the architecture to build SDK items for and means # you can build the SDK packages for architectures other than the machine you are # running the build on (i.e. building i686 packages on an x86_64 host). -# Supported values are i686 and x86_64 +# Supported values are i686, x86_64, aarch64 #SDKMACHINE ?= "i686" # @@ -146,11 +169,7 @@ EXTRA_IMAGE_FEATURES ?= "debug-tweaks package-management" # enable extra features. Some available options which can be included in this variable # are: # - 'buildstats' collect build statistics -# - 'image-mklibs' to reduce shared library files size for an image -# - 'image-prelink' in order to prelink the filesystem image -# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink -# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended -USER_CLASSES ?= "buildstats image-mklibs image-prelink" +USER_CLASSES ?= "buildstats" # # Runtime testing of images @@ -160,7 +179,7 @@ USER_CLASSES ?= "buildstats image-mklibs image-prelink" # run tests against any SDK that are built. To enable this uncomment these lines. # See classes/test{image,sdk}.bbclass for further details. #IMAGE_CLASSES += "testimage testsdk" -#TESTIMAGE_AUTO_qemuall = "1" +#TESTIMAGE_AUTO:qemuall = "1" # # Interactive shell configuration @@ -186,25 +205,25 @@ PATCHRESOLVE = "noop" # # Monitor the disk space during the build. If there is less that 1GB of space or less # than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully -# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort +# shutdown the build. If there is less than 100MB or 1K inodes, perform a hard halt # of the build. The reason for this is that running completely out of space can corrupt # files and damages the build in ways which may not be easily recoverable. -# It's necesary to monitor /tmp, if there is no space left the build will fail +# It's necessary to monitor /tmp, if there is no space left the build will fail # with very exotic errors. BB_DISKMON_DIRS ??= "\ STOPTASKS,${TMPDIR},1G,100K \ STOPTASKS,${DL_DIR},1G,100K \ STOPTASKS,${SSTATE_DIR},1G,100K \ STOPTASKS,/tmp,100M,100K \ - ABORT,${TMPDIR},100M,1K \ - ABORT,${DL_DIR},100M,1K \ - ABORT,${SSTATE_DIR},100M,1K \ - ABORT,/tmp,10M,1K" + HALT,${TMPDIR},100M,1K \ + HALT,${DL_DIR},100M,1K \ + HALT,${SSTATE_DIR},100M,1K \ + HALT,/tmp,10M,1K" # # Shared-state files from other locations # -# As mentioned above, shared state files are prebuilt cache data objects which can +# As mentioned above, shared state files are prebuilt cache data objects which can be # used to accelerate build time. This variable can be used to configure the system # to search other mirror locations for these objects before it builds the data itself. # @@ -216,21 +235,37 @@ BB_DISKMON_DIRS ??= "\ # at the end as shown in the examples below. This will be substituted with the # correct path within the directory structure. #SSTATE_MIRRORS ?= "\ -#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ +#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \ #file://.* file:///some/local/dir/sstate/PATH" +# +# Yocto Project SState Mirror +# +# The Yocto Project has prebuilt artefacts available for its releases, you can enable +# use of these by uncommenting the following lines. This will mean the build uses +# the network to check for artefacts at the start of builds, which does slow it down +# equally, it will also speed up the builds by not having to build things if they are +# present in the cache. It assumes you can download something faster than you can build it +# which will depend on your network. +# Note: For this to work you also need hash-equivalence passthrough to the matching server +# +#BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687" +#SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/3.4/PATH;downloadfilename=PATH" # # Qemu configuration # -# By default qemu will build with a builtin VNC server where graphical output can be -# seen. The two lines below enable the SDL backend too. By default libsdl2-native will -# be built, if you want to use your host's libSDL instead of the minimal libsdl built -# by libsdl2-native then uncomment the ASSUME_PROVIDED line below. -PACKAGECONFIG_append_pn-qemu-system-native = " sdl" -PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +# By default native qemu will build with a builtin VNC server where graphical output can be +# seen. The line below enables the SDL UI frontend too. +PACKAGECONFIG:append:pn-qemu-system-native = " sdl" +# By default libsdl2-native will be built, if you want to use your host's libSDL instead of +# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below. #ASSUME_PROVIDED += "libsdl2-native" +# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds +# a handy set of menus for controlling the emulator. +#PACKAGECONFIG:append:pn-qemu-system-native = " gtk+" + # # Hash Equivalence # @@ -245,28 +280,39 @@ PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" #BB_HASHSERVE = "auto" #BB_SIGNATURE_HANDLER = "OEEquivHash" +# +# Memory Resident Bitbake +# +# Bitbake's server component can stay in memory after the UI for the current command +# has completed. This means subsequent commands can run faster since there is no need +# for bitbake to reload cache files and so on. Number is in seconds, after which the +# server will shut down. +# +#BB_SERVER_TIMEOUT = "60" -# Toradex fitImage support (For EMMC modules) +# fitImage support (For EMMC modules) # # To enable fitimage, uncomment the following two lines # -# KERNEL_CLASSES_append = " toradex-fitimage" -# KERNEL_IMAGETYPE_forcevariable = "${@'zImage' if d.getVar('TORADEX_FLASH_TYPE') == 'rawnand' else 'fitImage'}" +# KERNEL_CLASSES:append = " kernel-fitimage" +# KERNEL_IMAGETYPE:forcevariable = "${@'zImage' if d.getVar('TORADEX_FLASH_TYPE') == 'rawnand' else 'fitImage'}" # CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to # track the version of this file when it was generated. This can safely be ignored if # this doesn't mean anything to you. -CONF_VERSION = "1" +CONF_VERSION = "2" # Delete the the source/object/binary files once a package is built to preserve disk space INHERIT += "rm_work" -# Add Toradex source mirror -INHERIT += "toradex-mirrors" +# Add Toradex bbclasses +INHERIT += "toradex-mirrors toradex-sanity" -# Use this distro -DISTRO = "tdx-xwayland" +# Use the upstream distro for modules based on i.MX 6/6ULL/7, downstream is no longer supported. +# For i.MX 8/8X/8MM/8MP and TI modules the downstream distro is used. +MACHINES_DOWNSTREAM_DISTRO_DEFAULT = "apalis-imx8 colibri-imx8x verdin-imx8mm verdin-imx8mp verdin-am62 verdin-am62-k3r5" +DISTRO ?= "${@bb.utils.contains("MACHINES_DOWNSTREAM_DISTRO_DEFAULT", d.getVar('MACHINE') or '', "tdx-xwayland", "tdx-xwayland-upstream", d)}" # Don't generate the mirror tarball for SCM repos, the snapshot is enough # BB_GENERATE_MIRROR_TARBALLS = "0" @@ -274,3 +320,5 @@ DISTRO = "tdx-xwayland" # This file does not need to exist, if it does it can be used to influence machine specific # configurations without copying the machine file. include conf/machine/include/${MACHINE}.inc + +# DO NOT SET THE MACHINE AFTER THE ABOVE INCLUDE diff --git a/classes/toradex-mirrors.bbclass b/classes/toradex-mirrors.bbclass new file mode 100644 index 0000000..de8822c --- /dev/null +++ b/classes/toradex-mirrors.bbclass @@ -0,0 +1,14 @@ +TORADEX_MIRROR_URL="https://artifacts.toradex.com/artifactory/tdxref-torizoncore-sources-frankfurt/${TDX_MAJOR}" + +PREMIRRORS:append = " \ +cvs://.*/.* ${TORADEX_MIRROR_URL} \ +svn://.*/.* ${TORADEX_MIRROR_URL} \ +git://.*/.* ${TORADEX_MIRROR_URL} \ +gitsm://.*/.* ${TORADEX_MIRROR_URL} \ +hg://.*/.* ${TORADEX_MIRROR_URL} \ +bzr://.*/.* ${TORADEX_MIRROR_URL} \ +p4://.*/.* ${TORADEX_MIRROR_URL} \ +osc://.*/.* ${TORADEX_MIRROR_URL} \ +https?$://.*/.* ${TORADEX_MIRROR_URL} \ +ftp://.*/.* ${TORADEX_MIRROR_URL} \ +" diff --git a/conf/distro/include/arm-defaults.inc b/conf/distro/include/arm-defaults.inc index 7f9d3b2..efdbe72 100644 --- a/conf/distro/include/arm-defaults.inc +++ b/conf/distro/include/arm-defaults.inc @@ -13,6 +13,7 @@ def at_least_one(elements, list): def arm_tune_handler(d): armv7athf_tune_features = ['armv7a', 'armv7ve', 'cortexa5', 'cortexa7', 'cortexa9', 'cortexa15'] + armv8a_tune_features = ['armv8a', 'crc'] features = d.getVar('TUNE_FEATURES').split() if at_least_one(armv7athf_tune_features, features): tune = 'armv7athf' @@ -26,12 +27,11 @@ def arm_tune_handler(d): tune += '-neon' if 'vfpv4' in features: tune += '-vfpv4' + elif at_least_one(armv8a_tune_features, features): + # all currently used i.MX 8 members support the following + tune = 'armv8a-crypto' else: tune = d.getVar('DEFAULTTUNE') return tune -DEFAULTTUNE_tdx := "${@arm_tune_handler(d)}" - -DISTRO_ARM_INSTRUCTION ?= "thumb" -DISTRO_ARM_INSTRUCTION_armv5 ?= "arm" -ARM_INSTRUCTION_SET_tdx ??= "${DISTRO_ARM_INSTRUCTION}" +DEFAULTTUNE:tdx := "${@arm_tune_handler(d)}" diff --git a/conf/distro/include/tdx-base.inc b/conf/distro/include/tdx-base.inc index 80533f0..98bd293 100644 --- a/conf/distro/include/tdx-base.inc +++ b/conf/distro/include/tdx-base.inc @@ -32,6 +32,12 @@ TDX_RELEASE ?= "${TDX_MAJOR}.${TDX_MINOR}.${TDX_PATCH}" # specific software artifacts. TDX_VERSION ?= "${TDX_RELEASE}${@'' if d.getVar('TDX_PURPOSE') == 'Release' else '-devel'}" +# Show Tezi EULA license +TEZI_SHOW_EULA_LICENSE ?= "1" +TEZI_SHOW_EULA_LICENSE:use-mainline-bsp ?= "0" +TEZI_SHOW_EULA_LICENSE:colibri-imx6:use-mainline-bsp ?= "1" +TEZI_SHOW_EULA_LICENSE:apalis-imx6:use-mainline-bsp ?= "1" + # Complete image version with date and build number DISTRO_VERSION = "${TDX_RELEASE}${TDX_PRERELEASE}${TDX_BUILD}" @@ -53,9 +59,6 @@ INHERIT += "image-buildinfo" INHERIT += "buildhistory" BUILDHISTORY_COMMIT = "1" -# Use bluez5 as default. -DISTRO_FEATURES_append = " bluez5" - IMAGE_LINGUAS ?= "en-us" # Some Toradex recipes like linux-toradex, u-boot-toradex, @@ -65,48 +68,26 @@ IMAGE_LINGUAS ?= "en-us" # # This avoids some annoying errors as follows: # | QA Issue: Package version went backwards which would break package feeds -ERROR_QA_remove = "version-going-backwards" +ERROR_QA:remove = "version-going-backwards" -# TODO: review default distro features -DISTRO_FEATURES_append = " pam systemd" -DISTRO_FEATURES_remove = "sysvinit ptest" +DISTRO_FEATURES:append = " pam systemd usrmerge" +DISTRO_FEATURES:remove = "sysvinit ptest" VIRTUAL-RUNTIME_init_manager = "systemd" -PACKAGECONFIG_append_pn-qemu-native = " libusb" +PACKAGECONFIG:append:pn-systemd = " serial-getty-generator" +PACKAGECONFIG:append:pn-qemu-native = " libusb" PREFERRED_PROVIDER_u-boot-fw-utils = "libubootenv" PREFERRED_RPROVIDER_u-boot-fw-utils = "libubootenv" -PREFERRED_RPROVIDER_u-boot-default-env = "${PREFERRED_PROVIDER_virtual/bootloader}" PREFERRED_PROVIDER_virtual/dtb ?= "device-tree-overlays" -# Use i.MX Gstreamer Version (for PXP DMA-ENGINE Driver) -PREFERRED_VERSION_gstreamer1.0_imx = "1.16.2.imx" -PREFERRED_VERSION_gstreamer1.0-plugins-base_imx = "1.16.2.imx" -PREFERRED_VERSION_gstreamer1.0-plugins-good_imx = "1.16.3.imx" -PREFERRED_VERSION_gstreamer1.0-plugins-bad_imx = "1.16.3.imx" - -# the 1.16.imx variants have their COMPATIBLE set so that they don't build -# for use-mainline-bsp -PREFERRED_VERSION_gstreamer1.0_use-mainline-bsp = "1.18%" -PREFERRED_VERSION_gstreamer1.0-plugins-base_use-mainline-bsp = "1.18%" -PREFERRED_VERSION_gstreamer1.0-plugins-good_use-mainline-bsp = "1.18%" -PREFERRED_VERSION_gstreamer1.0-plugins-bad_use-mainline-bsp = "1.18%" - -# Override Wayland/Weston Version set in meta-freescale imx-base.inc -PREFERRED_VERSION_wayland-protocols_mx6 = "1.20.imx" -PREFERRED_VERSION_wayland-protocols_mx7 = "1.20.imx" -PREFERRED_VERSION_wayland-protocols_mx8 = "1.20.imx" - -PREFERRED_VERSION_weston_mx6 ?= "9.0.0.imx" -PREFERRED_VERSION_weston_mx7 ?= "9.0.0.imx" -PREFERRED_VERSION_weston_mx8 ?= "9.0.0.imx" - -# Use i.MX libdrm Version -PREFERRED_VERSION_libdrm_mx6 = "2.4.102.imx" -PREFERRED_VERSION_libdrm_mx7 = "2.4.102.imx" -PREFERRED_VERSION_libdrm_mx8 = "2.4.102.imx" - -PREFERRED_PROVIDER_opencl-headers_imxgpu = "imx-gpu-viv" -PREFERRED_PROVIDER_opencl-clhpp_imxgpu = "imx-gpu-viv" -PREFERRED_PROVIDER_opencl-icd-loader_imxgpu = "imx-gpu-viv" -PREFERRED_RPROVIDER_opencl-icd-loader_imxgpu = "libopencl-imx" +PREFERRED_PROVIDER_opencl-headers:imxgpu = "imx-gpu-viv" +PREFERRED_PROVIDER_opencl-clhpp:imxgpu = "imx-gpu-viv" +PREFERRED_PROVIDER_opencl-icd-loader:imxgpu = "imx-gpu-viv" +PREFERRED_RPROVIDER_opencl-icd-loader:imxgpu = "libopencl-imx" + +# keep the dtb vendor directories in fitimage node names +KERNEL_DTBVENDORED = "1" + +# Defines the root home directory as /root, as required by systemd. +ROOT_HOME = "/root" diff --git a/conf/distro/tdx-x11-rt.conf b/conf/distro/tdx-x11-rt.conf index 66669f2..6b21e7f 100644 --- a/conf/distro/tdx-x11-rt.conf +++ b/conf/distro/tdx-x11-rt.conf @@ -8,4 +8,4 @@ DISTRO_NAME = "TDX X11 RT" DISTROOVERRIDES .= ":preempt-rt" DISTRO_FLAVOUR = " (X11 PREEMPT_RT)" -IMAGE_BASENAME_append = "-rt" +IMAGE_BASENAME:append = "-rt" diff --git a/conf/distro/tdx-x11-upstream-rt.conf b/conf/distro/tdx-x11-upstream-rt.conf index 343534e..83914ad 100644 --- a/conf/distro/tdx-x11-upstream-rt.conf +++ b/conf/distro/tdx-x11-upstream-rt.conf @@ -8,4 +8,4 @@ DISTRO_NAME = "TDX X11 Upstream RT" DISTROOVERRIDES .= ":preempt-rt" DISTRO_FLAVOUR = " (X11 UPSTREAM PREEMPT_RT)" -IMAGE_BASENAME_append = "-rt" +IMAGE_BASENAME:append = "-rt" diff --git a/conf/distro/tdx-x11-upstream.conf b/conf/distro/tdx-x11-upstream.conf index 456dfd2..aeaa666 100644 --- a/conf/distro/tdx-x11-upstream.conf +++ b/conf/distro/tdx-x11-upstream.conf @@ -10,4 +10,4 @@ DISTRO_FLAVOUR = " (X11 UPSTREAM)" IMX_DEFAULT_BSP = "mainline" -IMAGE_BASENAME_append = "-upstream" +IMAGE_BASENAME:append = "-upstream" diff --git a/conf/distro/tdx-x11.conf b/conf/distro/tdx-x11.conf index a707f39..47ff7c1 100644 --- a/conf/distro/tdx-x11.conf +++ b/conf/distro/tdx-x11.conf @@ -7,19 +7,19 @@ DISTRO = "tdx-x11" DISTRO_NAME = "TDX X11" DISTRO_FLAVOUR = "(X11)" -IMAGE_BASENAME_append = "-x11" +IMAGE_BASENAME:append = "-x11" IMX_DEFAULT_BSP = "nxp" # Remove conflicting backends. -DISTRO_FEATURES_remove = "wayland " +DISTRO_FEATURES:remove = "wayland " # we use graphics, so set opengl -DISTRO_FEATURES_append = " opengl" +DISTRO_FEATURES:append = " opengl" # These are X11 specific -DISTRO_FEATURES_append = " x11" +DISTRO_FEATURES:append = " x11" # lxqt requires this -DISTRO_FEATURES_append = " polkit" +DISTRO_FEATURES:append = " polkit" diff --git a/conf/distro/tdx-xwayland-rt.conf b/conf/distro/tdx-xwayland-rt.conf index 512875b..e1c08d9 100644 --- a/conf/distro/tdx-xwayland-rt.conf +++ b/conf/distro/tdx-xwayland-rt.conf @@ -8,4 +8,4 @@ DISTRO_NAME = "TDX Wayland with XWayland RT" DISTROOVERRIDES .= ":preempt-rt" DISTRO_FLAVOUR = " (PREEMPT_RT)" -IMAGE_BASENAME_append = "-rt"
\ No newline at end of file +IMAGE_BASENAME:append = "-rt"
\ No newline at end of file diff --git a/conf/distro/tdx-xwayland-upstream-rt.conf b/conf/distro/tdx-xwayland-upstream-rt.conf index 2bf880b..8b3435c 100644 --- a/conf/distro/tdx-xwayland-upstream-rt.conf +++ b/conf/distro/tdx-xwayland-upstream-rt.conf @@ -8,4 +8,4 @@ DISTRO_NAME = "TDX Wayland with XWayland Upstream RT" DISTROOVERRIDES .= ":preempt-rt" DISTRO_FLAVOUR = " (UPSTREAM PREEMPT_RT)" -IMAGE_BASENAME_append = "-rt" +IMAGE_BASENAME:append = "-rt" diff --git a/conf/distro/tdx-xwayland-upstream.conf b/conf/distro/tdx-xwayland-upstream.conf index 6bc703a..739f240 100644 --- a/conf/distro/tdx-xwayland-upstream.conf +++ b/conf/distro/tdx-xwayland-upstream.conf @@ -10,4 +10,4 @@ DISTRO_FLAVOUR = " (UPSTREAM)" IMX_DEFAULT_BSP = "mainline" -IMAGE_BASENAME_append = "-upstream" +IMAGE_BASENAME:append = "-upstream" diff --git a/conf/distro/tdx-xwayland.conf b/conf/distro/tdx-xwayland.conf index b2be0d9..55d4d79 100644 --- a/conf/distro/tdx-xwayland.conf +++ b/conf/distro/tdx-xwayland.conf @@ -10,9 +10,9 @@ DISTRO_FLAVOUR = "" IMX_DEFAULT_BSP = "nxp" # we use graphics, so set opengl -DISTRO_FEATURES_append = " opengl" +DISTRO_FEATURES:append = " opengl" -DISTRO_FEATURES_append = " wayland x11" +DISTRO_FEATURES:append = " wayland x11" # lxqt requires this -DISTRO_FEATURES_append = " polkit" +DISTRO_FEATURES:append = " polkit" diff --git a/conf/layer.conf b/conf/layer.conf index dc13acb..0a7524b 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -12,4 +12,4 @@ BBFILE_PATTERN_IGNORE_EMPTY_meta-toradex-distro = "1" BBFILE_PRIORITY_meta-toradex-distro = "21" LAYERDEPENDS_meta-toradex-distro = "core yocto" -LAYERSERIES_COMPAT_meta-toradex-distro = "gatesgarth hardknott" +LAYERSERIES_COMPAT_meta-toradex-distro = "nanbield scarthgap" diff --git a/lib/recipetool/updatesrcrev.py b/lib/recipetool/updatesrcrev.py index d15afe5..2a48b64 100644 --- a/lib/recipetool/updatesrcrev.py +++ b/lib/recipetool/updatesrcrev.py @@ -37,6 +37,12 @@ def updatesrcrev(args): if not rd: return 1 + # The line `PV = "2020.07+git${SRCPV}"` in the U-Boot 2020.07 recipe + # makes the uprev of that recipe fail if no MACHINE is defined. + # (Because then UBOOT_MACHINE or UBOOT_CONFIG is not defined.) + # Just reading PV of the datastore fixes the issue + pv = rd.getVar('PV') + src_uris = rd.getVar('SRC_URI').split() revision = {} for src_uri in src_uris: @@ -44,6 +50,10 @@ def updatesrcrev(args): if not src_uri.startswith(('git://', 'gitsm://')): continue + # Workaround check in fetcher code, see bitbake commit 4b5eed16 + if not "AUTOINC" in pv: + pkgpv = bb.fetch2.get_srcrev(rd, 'gitpkgv_revision') + ud = bb.fetch2.FetchData(src_uri, rd) # Allow multiple "named" git repos for name in ud.names: @@ -52,8 +62,9 @@ def updatesrcrev(args): # Update SRC_URI variable by default varvalues = {} for name in revision.keys(): + filename = os.path.basename(rd.getVar('FILE', False)) var = 'SRCREV' if name == 'default' else 'SRCREV_{}'.format(name) - logger.info('Update {} to {}.'.format(var, revision[name])) + logger.info('{}: Update {} to {}.'.format(filename, var, revision[name])) varvalues[var] = revision[name] if len(varvalues) == 0: diff --git a/scripts/uprev-srcrev b/scripts/uprev-srcrev index d1597f3..e6ebe81 100755 --- a/scripts/uprev-srcrev +++ b/scripts/uprev-srcrev @@ -21,26 +21,24 @@ import scriptutils logger = scriptutils.logger_create('uprev-srcrev') recipes_tdxref = [ - "../layers/meta-toradex-bsp-common/recipes-kernel/backports/backports_5.4.bb", - "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline_5.4.bb", + "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-upstream_6.6.bb", + "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-upstream-rt_6.6.bb", "../layers/meta-toradex-bsp-common/recipes-kernel/linux/device-tree-overlays-mainline_git.bb", - "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb", + "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.15-2.2.x.bb", "../layers/meta-toradex-nxp/recipes-kernel/linux/device-tree-overlays_git.bb", - "../layers/meta-toradex-nxp/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.5.1.bb", - "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bb", - "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb", - "../layers/meta-toradex-tegra/recipes-bsp/u-boot/u-boot-toradex-tk1_2019.07.bb", + "../layers/meta-toradex-nxp/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.15.0.bb", + "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2022.04.bb", + "../layers/meta-toradex-ti/recipes-bsp/u-boot/u-boot-toradex-ti_2023.04.bb", + "../layers/meta-toradex-ti/recipes-kernel/linux/device-tree-overlays-ti_git.bb", + "../layers/meta-toradex-ti/recipes-kernel/linux/linux-toradex-ti_6.1.bb", + ] + +recipes_tezi = [ + "../layers/meta-toradex-tezi/recipes-tezi/qt-tezi/qt-tezi_git.bb", + "../layers/meta-toradex-tezi/recipes-tezi/qt-tezi/qt-tezictl_git.bb", ] recipes_torizon = [ - "../layers/meta-toradex-bsp-common/recipes-kernel/backports/backports_5.4.bb", - "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline_5.4.bb", - "../layers/meta-toradex-bsp-common/recipes-kernel/linux/device-tree-overlays-mainline_git.bb", - "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb", - "../layers/meta-toradex-nxp/recipes-kernel/linux/device-tree-overlays_git.bb", - "../layers/meta-toradex-nxp/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.5.1.bb", - "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bb", - "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb", "../layers/meta-toradex-torizon/recipes-kernel/linux/linux-toradex-kmeta.inc", ] @@ -54,8 +52,9 @@ def uprev_recipe(args, env, recipe): shell=True) if not args.quiet: print(result.stdout) + return result.returncode except subprocess.CalledProcessError as e: - print('ERROR: recipetool failed:\n%s' % e.output.decode('utf-8')) + logger.error('ERROR: recipetool failed:\n%s' % e.output.decode('utf-8')) return e.returncode @@ -66,14 +65,18 @@ def uprev(args): env['BB_SRCREV_POLICY'] = "clear" # decide if we build torizon or tdxref. Use the existence of meta-toradex-torizon + recipes = recipes_tdxref if os.path.exists(os.path.join(script_path, '../../meta-toradex-torizon')): - recipes = recipes_torizon - else: - recipes = recipes_tdxref + recipes = recipes + recipes_torizon + elif os.path.exists(os.path.join(script_path, '../../meta-toradex-tezi')): + recipes = recipes + recipes_tezi for recipe in recipes: logger.info('Processing recipe {}'.format(recipe)) - uprev_recipe(args, env, recipe) + res = uprev_recipe(args, env, recipe) + if (res != os.EX_OK): + return res + return os.EX_OK def main(): parser = argparse_oe.ArgumentParser(description='SRCREV uprev tool.') |