Unable to use Repository-based kernel and DT with EXTERNALSRC

Hi, I am using ConnectCore6UL and everything works well however I need to use Digi-Embedded-Linux kernel with permanent changes.
I am following the guide on Digi website (link).

I have updated the conf/local.conf in the root of the project to include

INHERIT += "externalsrc"
EXTERNALSRC_pn-linux-dey = "/home/dey/linux"

I don’t think this works though as I am still not seeing the dts changes that exist in repository of /home/dey/linux. The build process still seems to pull the linux kernel from

github.com:digi-embedded/linux.git

I don’t have any additional recipes that would affect the linux-dey recipe.

I tried adding creating a linux-dey_%.bb recipe in my layer.

LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI := "/home/dey/linux"
S = "${WORKDIR}/home/dey/linux"

inherit externalsrc
EXTERNALSRC = "/home/dey/linux"
EXTERNALSRC_BUILD = "${EXTERNALSRC}"

SRCBRANCH = "v5.15/nxp/dey-4.0/maint"
SRCREV = "${AUTOREV}" 

But this leads to a huge number of errors.

ERROR: /usr/local/dey-4.0/sources/meta-digi/meta-digi-arm/recipes-kernel/linux/linux-dey_5.15.bb: Error executing a python function in <code>:#################      | ETA:  0:00:00

The stack trace of python calls that resulted in this exception/failure was:
File: '<code>', lineno: 4, function: <module>
     0001:__anon_20__usr_local_dey_4_0_sources_poky_meta_conf_machine_include_arm_feature_arm_thumb_inc(d)
     0002:__anon_32__usr_local_dey_4_0_sources_poky_meta_classes_patch_bbclass(d)
     0003:__anon_762__usr_local_dey_4_0_sources_poky_meta_classes_base_bbclass(d)
 *** 0004:__anon_147__usr_local_dey_4_0_sources_poky_meta_classes_externalsrc_bbclass(d)
     0005:__anon_75__usr_local_dey_4_0_sources_meta_freescale_classes_fsl_dynamic_packagearch_bbclass(d)
     0006:__anon_1135__usr_local_dey_4_0_sources_poky_meta_classes_insane_bbclass(d)
     0007:__anon_1442__usr_local_dey_4_0_sources_poky_meta_classes_insane_bbclass(d)
     0008:__anon_252__usr_local_dey_4_0_sources_poky_meta_classes_package_bbclass(d)
File: '/usr/local/dey-4.0/sources/poky/meta/classes/externalsrc.bbclass', lineno: 66, function: __anon_147__usr_local_dey_4_0_sources_poky_meta_classes_externalsrc_bbclass
     0062:        else:
     0063:            d.setVar('B', '${WORKDIR}/${BPN}-${PV}')
     0064:
     0065:        local_srcuri = []
 *** 0066:        fetch = bb.fetch2.Fetch((d.getVar('SRC_URI') or '').split(), d)
     0067:        for url in fetch.urls:
     0068:            url_data = fetch.ud[url]
     0069:            parm = url_data.parm
     0070:            if (url_data.type == 'file' or
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/__init__.py', lineno: 1682, function: __init__
     1678:
     1679:        for url in urls:
     1680:            if url not in self.ud:
     1681:                try:
 *** 1682:                    self.ud[url] = FetchData(url, d, localonly)
     1683:                except NonLocalMethod:
     1684:                    if localonly:
     1685:                        self.ud[url] = None
     1686:                        pass
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/__init__.py', lineno: 1319, function: __init__
     1315:            logger.warning('Consider updating %s recipe to use "protocol" not "proto" in SRC_URI.', d.getVar('PN'))
     1316:            self.parm["protocol"] = self.parm.get("proto", None)
     1317:
     1318:        if hasattr(self.method, "urldata_init"):
 *** 1319:            self.method.urldata_init(self, d)
     1320:
     1321:        if "localpath" in self.parm:
     1322:            # if user sets localpath for file, use it instead.
     1323:            self.localpath = self.parm["localpath"]
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/git.py', lineno: 250, function: urldata_init
     0246:        write_tarballs = d.getVar("BB_GENERATE_MIRROR_TARBALLS") or "0"
     0247:        ud.write_tarballs = write_tarballs != "0" or ud.rebaseable
     0248:        ud.write_shallow_tarballs = (d.getVar("BB_GENERATE_SHALLOW_TARBALLS") or write_tarballs) != "0"
     0249:
 *** 0250:        ud.setup_revisions(d)
     0251:
     0252:        for name in ud.names:
     0253:            # Ensure anything that doesn't look like a sha256 checksum/revision is translated into one
     0254:            if not ud.revisions[name] or len(ud.revisions[name]) != 40  or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]):
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/__init__.py', lineno: 1349, function: setup_revisions
     1345:
     1346:    def setup_revisions(self, d):
     1347:        self.revisions = {}
     1348:        for name in self.names:
 *** 1349:            self.revisions[name] = srcrev_internal_helper(self, d, name)
     1350:
     1351:        # add compatibility code for non name specified case
     1352:        if len(self.names) == 1:
     1353:            self.revision = self.revisions[self.names[0]]
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/__init__.py', lineno: 1214, function: srcrev_internal_helper
     1210:
     1211:    if srcrev == "INVALID" or not srcrev:
     1212:        raise FetchError("Please set a valid SRCREV for url %s (possible key names are %s, or use a ;rev=X URL parameter)" % (str(attempts), ud.url), ud.url)
     1213:    if srcrev == "AUTOINC":
 *** 1214:        srcrev = ud.method.latest_revision(ud, d, name)
     1215:
     1216:    return srcrev
     1217:
     1218:def get_checksum_file_list(d):
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/__init__.py', lineno: 1626, function: latest_revision
     1622:        key = self.generate_revision_key(ud, d, name)
     1623:        try:
     1624:            return revs[key]
     1625:        except KeyError:
 *** 1626:            revs[key] = rev = self._latest_revision(ud, d, name)
     1627:            return rev
     1628:
     1629:    def sortable_revision(self, ud, d, name):
     1630:        latest_rev = self._build_revision(ud, d, name)
File: '/usr/local/dey-4.0/sources/poky/bitbake/lib/bb/fetch2/git.py', lineno: 743, function: _latest_revision
     0739:        """
     0740:        Compute the HEAD revision for the url
     0741:        """
     0742:        if not d.getVar("__BBSEENSRCREV"):
 *** 0743:            raise bb.fetch2.FetchError("Recipe uses a floating tag/branch '%s' for repo '%s' without a fixed SRCREV yet doesn't call bb.fetch2.get_srcrev() (use SRCPV in PV for OE)." % (ud.unresolvedrev[name], ud.host+ud.path))
     0744:
     0745:        # Ensure we mark as not cached
     0746:        bb.fetch2.get_autorev(d)
     0747:
Exception: bb.fetch2.FetchError: Fetcher failure: Recipe uses a floating tag/branch 'v5.15/nxp/dey-4.0/maint' for repo 'github.com/digi-embedded/linux.git' without a fixed SRCREV yet doesn't call bb.fetch2.get_srcrev() (use SRCPV in PV for OE).

ERROR: Parsing halted due to errors, see error messages above

Summary: There were 2 ERROR messages, returning a non-zero exit code.

Would be great to know if I am doing something wrong or there is something missing.

Thanks in advance.

Update

I have updated the conf/local.conf

INHERIT += "externalsrc"
EXTERNALSRC:pn-linux-dey = "/home/dey/linux"
EXTERNALSRC_BUILD:pn-linux-dey = "/home/dey/linux"

Removed the linux-dey_%.bbappend file from my layer.

Still seeing the same issue.

I’m having the identical issue, have you resolved it? I’m hoping to not become an expert in this, just want make some minor changes.