diff --git a/.oelint.json b/.oelint.json
new file mode 100644
index 0000000000000000000000000000000000000000..833a0b312c8f14628575916b085d367ef5246f8e
--- /dev/null
+++ b/.oelint.json
@@ -0,0 +1,252 @@
+{
+  "oelint.append.protvars": "error",
+  "oelint.append.protvars.PV": "error",
+  "oelint.append.protvars.PR": "error",
+  "oelint.append.protvars.SRCREV": "error",
+  "oelint.append.protvars.LICENSE": "error",
+  "oelint.append.protvars.LIC_FILES_CHKSUM": "error",
+  "oelint.exportfunction.dash": "error",
+  "oelint.bbclass.underscores": "error",
+  "oelint.file.includenotfound": "warning",
+  "oelint.file.requireinclude": "warning",
+  "oelint.file.inlinesuppress_na": "info",
+  "oelint.file.nospaces": "error",
+  "oelint.file.inactiveupstreamdetails": "info",
+  "oelint.file.inappropriatemsg": "info",
+  "oelint.file.patchsignedoff": "warning",
+  "oelint.file.upstreamstatus": "info",
+  "oelint.file.includerelpath": "warning",
+  "oelint.file.requirenotfound": "error",
+  "oelint.file.underscores": "error",
+  "oelint.func.specific": "error",
+  "oelint.newline.consecutive": "warning",
+  "oelint.newline.eof": "warning",
+  "oelint.spaces.linebeginning": "warning",
+  "oelint.spaces.linecont": "error",
+  "oelint.spaces.emptyline": "warning",
+  "oelint.spaces.lineend": "warning",
+  "oelint.tabs.notabs": "warning",
+  "oelint.task.addnotaskbody": "warning",
+  "oelint.task.noanonpython": "warning",
+  "oelint.task.customorder": "error",
+  "oelint.task.dash": "error",
+  "oelint.task.docstrings": "info",
+  "oelint.task.heredocs": "warning",
+  "oelint.task.multifragments": "info",
+  "oelint.task.nocopy": "error",
+  "oelint.task.nomkdir": "error",
+  "oelint.task.nopythonprefix": "warning",
+  "oelint.task.order": "warning",
+  "oelint.task.order.do_fetch": "warning",
+  "oelint.task.order.do_unpack": "warning",
+  "oelint.task.order.do_patch": "warning",
+  "oelint.task.order.do_configure": "warning",
+  "oelint.task.order.do_compile": "warning",
+  "oelint.task.order.do_install": "warning",
+  "oelint.task.order.do_populate_sysroot": "warning",
+  "oelint.task.order.do_build": "warning",
+  "oelint.task.order.do_package": "warning",
+  "oelint.task.pythonprefix": "warning",
+  "oelint.var.addpylib": "error",
+  "oelint.vars.appendop": "error",
+  "oelint.vars.autorev": "warning",
+  "oelint.vars.bbvars": "warning",
+  "oelint.vars.bbvars.BB_CONSOLELOG": "warning",
+  "oelint.vars.bbvars.BB_CURRENTTASK": "warning",
+  "oelint.vars.bbvars.BB_DANGLINGAPPENDS_WARNONLY": "warning",
+  "oelint.vars.bbvars.BB_DEFAULT_TASK": "warning",
+  "oelint.vars.bbvars.BB_DISKMON_DIRS": "warning",
+  "oelint.vars.bbvars.BB_DISKMON_WARNINTERVAL": "warning",
+  "oelint.vars.bbvars.BB_ENV_EXTRAWHITE": "warning",
+  "oelint.vars.bbvars.BB_ENV_WHITELIST": "warning",
+  "oelint.vars.bbvars.BB_FETCH_PREMIRRORONLY": "warning",
+  "oelint.vars.bbvars.BB_FILENAME": "warning",
+  "oelint.vars.bbvars.BB_GENERATE_MIRROR_TARBALLS": "warning",
+  "oelint.vars.bbvars.BB_HASHBASE_WHITELIST": "warning",
+  "oelint.vars.bbvars.BB_HASHCHECK_FUNCTION": "warning",
+  "oelint.vars.bbvars.BB_HASHCONFIG_WHITELIST": "warning",
+  "oelint.vars.bbvars.BB_INVALIDCONF": "warning",
+  "oelint.vars.bbvars.BB_LOGFMT": "warning",
+  "oelint.vars.bbvars.BB_NICE_LEVEL": "warning",
+  "oelint.vars.bbvars.BB_NO_NETWORK": "warning",
+  "oelint.vars.bbvars.BB_NUMBER_PARSE_THREADS": "warning",
+  "oelint.vars.bbvars.BB_NUMBER_THREADS": "warning",
+  "oelint.vars.bbvars.BB_ORIGENV": "warning",
+  "oelint.vars.bbvars.BB_PRESERVE_ENV": "warning",
+  "oelint.vars.bbvars.BB_RUNFMT": "warning",
+  "oelint.vars.bbvars.BB_RUNTASK": "warning",
+  "oelint.vars.bbvars.BB_SCHEDULER": "warning",
+  "oelint.vars.bbvars.BB_SCHEDULERS": "warning",
+  "oelint.vars.bbvars.BB_SETSCENE_DEPVALID": "warning",
+  "oelint.vars.bbvars.BB_SETSCENE_VERIFY_FUNCTION": "warning",
+  "oelint.vars.bbvars.BB_SIGNATURE_EXCLUDE_FLAGS": "warning",
+  "oelint.vars.bbvars.BB_SIGNATURE_HANDLER": "warning",
+  "oelint.vars.bbvars.BB_SRCREV_POLICY": "warning",
+  "oelint.vars.bbvars.BB_STAMP_POLICY": "warning",
+  "oelint.vars.bbvars.BB_STAMP_WHITELIST": "warning",
+  "oelint.vars.bbvars.BB_STRICT_CHECKSUM": "warning",
+  "oelint.vars.bbvars.BB_TASK_NICE_LEVEL": "warning",
+  "oelint.vars.bbvars.BB_TASKHASH": "warning",
+  "oelint.vars.bbvars.BB_VERBOSE_LOGS": "warning",
+  "oelint.vars.bbvars.BB_WORKERCONTEXT": "warning",
+  "oelint.vars.bbvars.BBDEBUG": "warning",
+  "oelint.vars.bbvars.BBFILE_COLLECTIONS": "warning",
+  "oelint.vars.bbvars.BBFILE_PATTERN": "warning",
+  "oelint.vars.bbvars.BBFILE_PRIORITY": "warning",
+  "oelint.vars.bbvars.BBFILES": "warning",
+  "oelint.vars.bbvars.BBINCLUDED": "warning",
+  "oelint.vars.bbvars.BBINCLUDELOGS": "warning",
+  "oelint.vars.bbvars.BBINCLUDELOGS_LINES": "warning",
+  "oelint.vars.bbvars.BBLAYERS": "warning",
+  "oelint.vars.bbvars.BBMASK": "warning",
+  "oelint.vars.bbvars.BBPATH": "warning",
+  "oelint.vars.bbvars.BBSERVER": "warning",
+  "oelint.vars.bbvars.BBVERSIONS": "warning",
+  "oelint.vars.bbvars.BITBAKE_UI": "warning",
+  "oelint.vars.bbvars.BUILDNAME": "warning",
+  "oelint.vars.bbvars.CACHE": "warning",
+  "oelint.vars.bbvars.DL_DIR": "warning",
+  "oelint.vars.bbvars.FILE": "warning",
+  "oelint.vars.bbvars.FILESDIR": "warning",
+  "oelint.vars.bbvars.FILESPATH": "warning",
+  "oelint.vars.bbvars.INHERIT": "warning",
+  "oelint.vars.bbvars.LAYERDEPENDS": "warning",
+  "oelint.vars.bbvars.LAYERDIR": "warning",
+  "oelint.vars.bbvars.LAYERVERSION": "warning",
+  "oelint.vars.bbvars.MIRRORS": "warning",
+  "oelint.vars.bbvars.MULTI_PROVIDER_WHITELIST": "warning",
+  "oelint.vars.bbvars.PERSISTENT_DIR": "warning",
+  "oelint.vars.bbvars.PREFERRED_PROVIDER": "warning",
+  "oelint.vars.bbvars.PREFERRED_PROVIDERS": "warning",
+  "oelint.vars.bbvars.PREFERRED_VERSION": "warning",
+  "oelint.vars.bbvars.PREMIRRORS": "warning",
+  "oelint.vars.bbvars.PRSERV_HOST": "warning",
+  "oelint.vars.bbvars.STAMP": "warning",
+  "oelint.vars.bbvars.TOPDIR": "warning",
+  "oelint.vars.bugtrackerisurl": "warning",
+  "oelint.vars.dependsappend": "error",
+  "oelint.vars.dependsclass": "error",
+  "oelint.vars.dependsordered": "warning",
+  "oelint.vars.descriptionsame": "warning",
+  "oelint.vars.descriptiontoobrief": "warning",
+  "oelint.vars.doublemodify": "error",
+  "oelint.vars.duplicate": "warning",
+  "oelint.vars.fileextrapaths": "warning",
+  "oelint.vars.fileextrapathsop": "error",
+  "oelint.var.filesoverride": "warning",
+  "oelint.vars.homepageprefix": "warning",
+  "oelint.vars.homepageping": "warning",
+  "oelint.vars.inconspaces": "error",
+  "oelint.vars.insaneskip": "error",
+  "oelint.var.licenseremotefile": "warning",
+  "oelint.vars.licensesdpx": "warning",
+  "oelint.vars.licfileprefix": "warning",
+  "oelint.vars.mispell": "warning",
+  "oelint.vars.mispell.unknown": "warning",
+  "oelint.vars.multilineident": "info",
+  "oelint.vars.notneededspace": "info",
+  "oelint.vars.overrideappend": "warning",
+  "oelint.vars.pbpusage": "error",
+  "oelint.vars.dusageinpkgfuncs": "error",
+  "oelint.vars.pkgspecific": "error",
+  "oelint.vars.pkgspecific.RDEPENDS": "error",
+  "oelint.vars.pkgspecific.RRECOMMENDS": "error",
+  "oelint.vars.pkgspecific.RSUGGESTS": "error",
+  "oelint.vars.pkgspecific.RCONFLICTS": "error",
+  "oelint.vars.pkgspecific.RPROVIDES": "error",
+  "oelint.vars.pkgspecific.RREPLACES": "error",
+  "oelint.vars.pkgspecific.FILES": "error",
+  "oelint.vars.pkgspecific.pkg_preinst": "error",
+  "oelint.vars.pkgspecific.pkg_postinst": "error",
+  "oelint.vars.pkgspecific.pkg_prerm": "error",
+  "oelint.vars.pkgspecific.pkg_postrm": "error",
+  "oelint.vars.pkgspecific.ALLOW_EMPTY": "error",
+  "oelint.vars.pnbpnusage": "error",
+  "oelint.vars.pnusagediscouraged": "warning",
+  "oelint.vars.valuequoted": "error",
+  "oelint.var.rootfspostcmd": "warning",
+  "oelint.vars.sectionlowercase": "warning",
+  "oelint.vars.spacesassignment": "warning",
+  "oelint.vars.specific": "error",
+  "oelint.vars.srcurioptions": "warning",
+  "oelint.vars.srcuriappend": "error",
+  "oelint.vars.srcurichecksum": "error",
+  "oelint.vars.srcuridomains": "warning",
+  "oelint.vars.srcurifile": "warning",
+  "oelint.vars.srcurigittag": "warning",
+  "oelint.vars.srcurisrcrevtag": "error",
+  "oelint.var.srcuriwildcard": "error",
+  "oelint.vars.summary80chars": "warning",
+  "oelint.vars.summarylinebreaks": "warning",
+  "oelint.vars.notrailingslash": "error",
+  "oelint.var.bbclassextend": "info",
+  "oelint.vars.downloadfilename": "warning",
+  "oelint.vars.filessetting": "warning",
+  "oelint.vars.filessetting.hidden": "warning",
+  "oelint.vars.filessetting.double": "warning",
+  "oelint.var.improperinherit": "error",
+  "oelint.vars.listappend": "error",
+  "oelint.var.mandatoryvar": "error",
+  "oelint.var.mandatoryvar.SUMMARY": "error",
+  "oelint.var.mandatoryvar.DESCRIPTION": "error",
+  "oelint.var.mandatoryvar.HOMEPAGE": "error",
+  "oelint.var.mandatoryvar.LICENSE": "error",
+  "oelint.var.mandatoryvar.SRC_URI": "error",
+  "oelint.var.multiinclude": "warning",
+  "oelint.var.multiinherit": "warning",
+  "oelint.var.nativefilename": "warning",
+  "oelint.var.nativesdkfilename": "warning",
+  "oelint.var.order": "warning",
+  "oelint.var.order.SUMMARY": "warning",
+  "oelint.var.order.DESCRIPTION": "warning",
+  "oelint.var.order.AUTHOR": "warning",
+  "oelint.var.order.HOMEPAGE": "warning",
+  "oelint.var.order.BUGTRACKER": "warning",
+  "oelint.var.order.SECTION": "warning",
+  "oelint.var.order.LICENSE": "warning",
+  "oelint.var.order.LIC_FILES_CHKSUM": "warning",
+  "oelint.var.order.DEPENDS": "warning",
+  "oelint.var.order.PROVIDES": "warning",
+  "oelint.var.order.PV": "warning",
+  "oelint.var.order.SRC_URI": "warning",
+  "oelint.var.order.SRCREV": "warning",
+  "oelint.var.order.S": "warning",
+  "oelint.var.order.inherit": "warning",
+  "oelint.var.order.PACKAGECONFIG": "warning",
+  "oelint.var.order.EXTRA_QMAKEVARS_POST": "warning",
+  "oelint.var.order.EXTRA_OECONF": "warning",
+  "oelint.var.order.PACKAGE_ARCH": "warning",
+  "oelint.var.order.PACKAGES": "warning",
+  "oelint.var.order.FILES": "warning",
+  "oelint.var.order.RDEPENDS": "warning",
+  "oelint.var.order.RRECOMMENDS": "warning",
+  "oelint.var.order.RSUGGESTS": "warning",
+  "oelint.var.order.RPROVIDES": "warning",
+  "oelint.var.order.RCONFLICTS": "warning",
+  "oelint.var.order.BBCLASSEXTEND": "warning",
+  "oelint.vars.pathhardcode": "warning",
+  "oelint.vars.pathhardcode.systemd_user_unitdir": "warning",
+  "oelint.vars.pathhardcode.systemd_system_unitdir": "warning",
+  "oelint.vars.pathhardcode.docdir": "warning",
+  "oelint.vars.pathhardcode.infodir": "warning",
+  "oelint.vars.pathhardcode.mandir": "warning",
+  "oelint.vars.pathhardcode.libexecdir": "warning",
+  "oelint.vars.pathhardcode.systemd_unitdir": "warning",
+  "oelint.vars.pathhardcode.libdir": "warning",
+  "oelint.vars.pathhardcode.bindir": "warning",
+  "oelint.vars.pathhardcode.datadir": "warning",
+  "oelint.vars.pathhardcode.includedir": "warning",
+  "oelint.vars.pathhardcode.localstatedir": "warning",
+  "oelint.vars.pathhardcode.nonarch_base_libdir": "warning",
+  "oelint.vars.pathhardcode.sbindir": "warning",
+  "oelint.vars.pathhardcode.servicedir": "warning",
+  "oelint.vars.pathhardcode.sharedstatedir": "warning",
+  "oelint.vars.pathhardcode.sysconfdir": "warning",
+  "oelint.var.suggestedvar": "info",
+  "oelint.var.suggestedvar.BUGTRACKER": "info",
+  "oelint.var.suggestedvar.BBCLASSEXTEND": "info",
+  "oelint.var.suggestedvar.CVE_PRODUCT": "info",
+  "oelint.var.suggestedvar.SECTION": "info",
+  "oelint.var.override": "error",
+  "oelint.vars.virtual": "error"
+}
diff --git a/common.yml b/common.yml
index 9d651e9693ef11f0d0de872c3763f77b67dcb5cc..964955dfde835b1a3ea9714ccbb16dcca6918e46 100644
--- a/common.yml
+++ b/common.yml
@@ -5,7 +5,7 @@
 variables:
   # CI_IMAGES_BASEPATH: Environment variable configure in gitlab
   CI_IMAGES_PATH: ${CI_IMAGES_BASEPATH}/ci-images
-  CI_IMAGES_REV: 54826eeb55cf9738a253f0018b1a0059767e64d7
+  CI_IMAGES_REV: 6594c93254dcca63068e4ef81032c3748686a705
   CI_IMAGE_PYTHON: "${CI_IMAGES_PATH}/python/3.9:${CI_IMAGES_REV}"
   CI_IMAGE_YOCTO: "${CI_IMAGES_PATH}/yocto-build/ubuntu-20.04:${CI_IMAGES_REV}"
   # Include git submodules
diff --git a/manifest-integration.yml b/manifest-integration.yml
index 0d2f50c8e60e35928fbd93afbf5a6d4db38ca02a..d138c28dc664952eac9b68544aa15d918e57f1cb 100644
--- a/manifest-integration.yml
+++ b/manifest-integration.yml
@@ -137,3 +137,25 @@ yamllint:
   stage: manifest-integration
   rules:
     - if: $CI_MERGE_REQUEST_IID
+
+oelint:
+  extends:
+    - .infrastructure
+    - .skip-for-gitlab-ci-integrations
+  stage: manifest-integration
+  variables:
+    GIT_DEPTH: 50
+  rules:
+    - changes:
+        - '**/*.{bb,bbappend}'
+  script:
+    - DIFF=$(git diff --name-only --diff-filter=AMR $CI_MERGE_REQUEST_DIFF_BASE_SHA)
+    - for f in $DIFF; do
+        if [[ $f == *.bb ]] || [[ $f == *.bbappend ]]; then
+          BB_RECIPES+="$f ";
+        fi;
+      done
+    - if [ -n "$BB_RECIPES" ]; then
+        oelint-adv --noinfo --nowarn --rulefile=.gitlab-ci/.oelint.json $BB_RECIPES;
+      fi
+  allow_failure: true