Hi,
I am attempting to implement secure boot into our project and need to build the O.S. using Yocto for that.
I tried to build it from source using the Docker container ‘Crops’ as per the documentation. After i set up the docker container on my Linux system (VMWARE system, at the time there was about ± 80GB of data free) it ran correclty up until i think 10 tasks indicated the space was not enough.
I added about 30 more GB and restarted the docker container and now it seems to complete the build, however i don’t see a tarball output in the deploy/images/[machine] folder. I do have several other files there but not a tarrball, according to the documentation a tezi tarball should be a resulting ouptut in the /deploy/images/[machine] folder.
I am using the verdin-am62 module and tried to build the yocto build using the following docker setup:
docker run --rm -it --name=crops -v ~/yocto-workdir:/workdir --workdir=/workdir -e MACHINE=verdin-am62 -e IMAGE=torizon-docker torizon/crops:scarthgap-7.x.y startup-tdx.sh
Output files in ‘/deploy/images/verdin-am62’ folder:
According to the output logs i have 1 warning and 2 tasks failed with errors present after the build which i don’t understand.
warning:
Failed task outputs:
"ERROR: kernel-devsrc-1.0-r0 do_package: Error executing a python function in exec_func_python() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: ‘exec_func_python() autogenerated’, lineno: 2, function:
0001:
*** 0002:sstate_report_unihash(d)
0003:
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/classes-global/sstate.bbclass’, lineno: 920, function: sstate_report_unihash
0916: report_unihash = getattr(bb.parse.siggen, ‘report_unihash’, None)
0917:
0918: if report_unihash:
0919: ss = sstate_state_fromvars(d)
*** 0920: report_unihash(os.getcwd(), ss[‘task’], d)
0921:}
0922:
0923:#
0924:# Shell function to decompress and prepare a package for installation
File: ‘/workdir/torizon/layers/openembedded-core/bitbake/lib/bb/siggen.py’, lineno: 809, function: report_unihash
0805:
0806: if “.” in self.method:
0807: (module, method) = self.method.rsplit(‘.’, 1)
0808: locs[‘method’] = getattr(importlib.import_module(module), method)
*** 0809: outhash = bb.utils.better_eval(‘method(path, sigfile, task, d)’, locs)
0810: else:
0811: outhash = bb.utils.better_eval(self.method + ‘(path, sigfile, task, d)’, locs)
0812:
0813: try:
File: ‘/workdir/torizon/layers/openembedded-core/bitbake/lib/bb/utils.py’, lineno: 434, function: better_eval
0430: if extraglobals:
0431: ctx = copy.copy(ctx)
0432: for g in extraglobals:
0433: ctx[g] = extraglobals[g]
*** 0434: return eval(source, ctx, locals)
0435:
0436:@contextmanager
0437:def fileslocked(files, *args, **kwargs):
0438: “”“Context manager for locking and unlocking file locks.”“”
File: ‘’, lineno: 1, function:
File “”, line 1, in
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/lib/oe/sstatesig.py’, lineno: 677, function: OEOuthashBasic
0673: update_hash(“\n”)
0674:
0675: # Process this directory and all its child files
0676: if include_root or root != “.”:
*** 0677: process(root)
0678: for f in files:
0679: if f == ‘fixmepath’:
0680: continue
0681: process(os.path.join(root, f))
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/lib/oe/sstatesig.py’, lineno: 616, function: process
0612: except KeyError as e:
0613: msg = (“KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn’t match "
0614: “any user/group on target. This may be due to host contamination.” %
0615: (e, os.path.abspath(path), s.st_uid, s.st_gid))
*** 0616: raise Exception(msg).with_traceback(e.traceback)
0617:
0618: if include_timestamps:
0619: # Need to clamp to SOURCE_DATE_EPOCH
0620: if s.st_mtime > source_date_epoch:
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/lib/oe/sstatesig.py’, lineno: 610, function: process
0606: else:
0607: add_perm(stat.S_IXOTH, ‘x’)
0608:
0609: try:
*** 0610: update_hash(” %10s" % pwd.getpwuid(s.st_uid).pw_name)
0611: update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name)
0612: except KeyError as e:
0613: msg = ("KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn’t match "
0614: “any user/group on target. This may be due to host contamination.” %
Exception: Exception: KeyError: ‘getpwuid(): uid not found: 1000’
Path /workdir/torizon/build-torizon/tmp/work/verdin_am62-tdx-linux/kernel-devsrc/1.0/sstate-build-package/package is owned by uid 1000, gid 1000, which doesn’t match any user/group on target. This may be due to host contamination.
ERROR: Logfile of failure stored in: /workdir/torizon/build-torizon/tmp/work/verdin_am62-tdx-linux/kernel-devsrc/1.0/temp/log.do_package.3579
ERROR: Task (/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/recipes-kernel/linux/kernel-devsrc.bb:do_package) failed with exit code ‘1’
ERROR: boost-1.84.0-r0 do_package: Error executing a python function in exec_func_python() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: ‘exec_func_python() autogenerated’, lineno: 2, function:
0001:
*** 0002:sstate_report_unihash(d)
0003:
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/classes-global/sstate.bbclass’, lineno: 920, function: sstate_report_unihash
0916: report_unihash = getattr(bb.parse.siggen, ‘report_unihash’, None)
0917:
0918: if report_unihash:
0919: ss = sstate_state_fromvars(d)
*** 0920: report_unihash(os.getcwd(), ss[‘task’], d)
0921:}
0922:
0923:#
0924:# Shell function to decompress and prepare a package for installation
File: ‘/workdir/torizon/layers/openembedded-core/bitbake/lib/bb/siggen.py’, lineno: 809, function: report_unihash
0805:
0806: if “.” in self.method:
0807: (module, method) = self.method.rsplit(‘.’, 1)
0808: locs[‘method’] = getattr(importlib.import_module(module), method)
*** 0809: outhash = bb.utils.better_eval(‘method(path, sigfile, task, d)’, locs)
0810: else:
0811: outhash = bb.utils.better_eval(self.method + ‘(path, sigfile, task, d)’, locs)
0812:
0813: try:
File: ‘/workdir/torizon/layers/openembedded-core/bitbake/lib/bb/utils.py’, lineno: 434, function: better_eval
0430: if extraglobals:
0431: ctx = copy.copy(ctx)
0432: for g in extraglobals:
0433: ctx[g] = extraglobals[g]
*** 0434: return eval(source, ctx, locals)
0435:
0436:@contextmanager
0437:def fileslocked(files, *args, **kwargs):
0438: “”“Context manager for locking and unlocking file locks.”“”
File: ‘’, lineno: 1, function:
File “”, line 1, in
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/lib/oe/sstatesig.py’, lineno: 677, function: OEOuthashBasic
0673: update_hash(“\n”)
0674:
0675: # Process this directory and all its child files
0676: if include_root or root != “.”:
*** 0677: process(root)
0678: for f in files:
0679: if f == ‘fixmepath’:
0680: continue
0681: process(os.path.join(root, f))
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/lib/oe/sstatesig.py’, lineno: 616, function: process
0612: except KeyError as e:
0613: msg = (“KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn’t match "
0614: “any user/group on target. This may be due to host contamination.” %
0615: (e, os.path.abspath(path), s.st_uid, s.st_gid))
*** 0616: raise Exception(msg).with_traceback(e.traceback)
0617:
0618: if include_timestamps:
0619: # Need to clamp to SOURCE_DATE_EPOCH
0620: if s.st_mtime > source_date_epoch:
File: ‘/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/lib/oe/sstatesig.py’, lineno: 610, function: process
0606: else:
0607: add_perm(stat.S_IXOTH, ‘x’)
0608:
0609: try:
*** 0610: update_hash(” %10s" % pwd.getpwuid(s.st_uid).pw_name)
0611: update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name)
0612: except KeyError as e:
0613: msg = ("KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn’t match "
0614: “any user/group on target. This may be due to host contamination.” %
Exception: Exception: KeyError: ‘getpwuid(): uid not found: 1000’
Path /workdir/torizon/build-torizon/tmp/work/aarch64-tdx-linux/boost/1.84.0/sstate-build-package/package is owned by uid 1000, gid 1000, which doesn’t match any user/group on target. This may be due to host contamination.
ERROR: Logfile of failure stored in: /workdir/torizon/build-torizon/tmp/work/aarch64-tdx-linux/boost/1.84.0/temp/log.do_package.2306
ERROR: Task (/workdir/torizon/build-torizon/conf/…/…/layers/openembedded-core/meta/recipes-support/boost/boost_1.84.0.bb:do_package) failed with exit code ‘1’
NOTE: Tasks Summary: Attempted 9404 tasks of which 9364 didn’t need to be rerun and 2 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 11 seconds
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 7 seconds
"
I hope someone can point me in the right direction.
Kind regards Richard.