<div dir="ltr">Hi,<div><br></div><div>I'm trying to add pixcilnx kernel object to my image based on 4.4.38-l4t-r28.1.</div><div><br></div><div>The make file looks like this</div><div>----------------------------------------------------------------------------------------------------------------</div><div><div>obj-m := pixci.o</div><div>pixci-objs := pixcipub.o pixcilnx.o</div><div><br></div><div>SRC := $(shell pwd)</div><div><br></div><div># invoked from user or surrogate?</div><div>all:</div><div> ar -x pixcilnx_aarch64_4.4.a pixcilnx_4.4.o</div><div> mv pixcilnx_4.4.o pixcilnx.o_shipped</div><div> $(MAKE) -C $(KERNEL_SRC) M=$(SRC) </div><div> $(CROSS_COMPILE)strip --strip-debug --discard-all pixci.ko</div><div><br></div><div>modules_install:</div><div> $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install</div><div><br></div><div>clean:</div><div> rm -f *.o</div><div> rm -f *.ko</div><div> rm -f .pixci.mod.o.cmd</div><div> rm -f .pixci.o.cmd</div><div> rm -f .pixci.ko.cmd</div><div> rm -f .pixcipub.o.cmd</div><div> rm -rf .tmp_versions</div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">----------------------------------------------------------------------------------------------------------------</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div>The <a href="http://pixci.bb">pixci.bb</a> file looks like this</div><div><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">----------------------------------------------------------------------------------------------------------------</span><br></div><div><div>SUMMARY = "Kernel module for EPIX grabber"</div><div>#TODO: set correct license</div><div>LICENSE = "CLOSED"</div><div><br></div><div>inherit module</div><div><br></div><div>SRC_URI = "file://Makefile \</div><div> file://pixcilnx_aarch64_4.4.a \</div><div> file://pixcipub.c \</div><div> file://pixcipub.h \</div><div> "</div><div><br></div><div>S = "${WORKDIR}"</div><div><br></div><div># The inherit of module.bbclass will automatically name module packages with</div><div># "kernel-module-" prefix as required by the oe-core build environment.</div><div><br></div><div>KERNEL_MODULE_AUTOLOAD += "pixci"</div><div>#This should put your module name into /etc/modules-load.d/modname.conf on the image.</div></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">----------------------------------------------------------------------------------------------------------------</span><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><br></div><div>Do package fails with the following error:</div><div><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">----------------------------------------------------------------------------------------------------------------</span></div><div><div>ERROR: pixci-1.0-r0 do_package: Error executing a python function in exec_python_func() autogenerated:</div><div><br></div><div>The stack trace of python calls that resulted in this exception/failure was:</div><div>File: 'exec_python_func() autogenerated', lineno: 2, function: <module></div><div> 0001:</div><div> *** 0002:split_kernel_module_packages(d)</div><div> 0003:</div><div>File: '/home/damien/procbox-develop/sources/poky/meta/classes/kernel-module-split.bbclass', lineno: 141, function: split_kernel_module_packages</div><div> 0137:</div><div> 0138: postinst = d.getVar('pkg_postinst_modules')</div><div> 0139: postrm = d.getVar('pkg_postrm_modules')</div><div> 0140:</div><div> *** 0141: modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))</div><div> 0142: if modules:</div><div> 0143: metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')</div><div> 0144: d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules))</div><div> 0145:</div><div>File: '/home/damien/procbox-develop/sources/poky/meta/classes/package.bbclass', lineno: 234, function: do_split_packages</div><div> 0230: d.setVar('pkg_postinst_' + pkg, postinst)</div><div> 0231: if postrm:</div><div> 0232: d.setVar('pkg_postrm_' + pkg, postrm)</div><div> 0233: if callable(hook):</div><div> *** 0234: hook(f, pkg, file_regex, output_pattern, m.group(1))</div><div> 0235:</div><div> 0236: d.setVar('PACKAGES', ' '.join(packages))</div><div> 0237: return list(split_packages)</div><div> 0238:</div><div>File: '/home/damien/procbox-develop/sources/poky/meta/classes/kernel-module-split.bbclass', lineno: 65, function: frob_metadata</div><div> 0061: vals[m.group(1)] = m.group(2)</div><div> 0062: return vals</div><div> 0063:</div><div> 0064: def frob_metadata(file, pkg, pattern, format, basename):</div><div> *** 0065: vals = extract_modinfo(file)</div><div> 0066:</div><div> 0067: dvar = d.getVar('PKGD')</div><div> 0068:</div><div> 0069: # If autoloading is requested, output /etc/modules-load.d/<name>.conf and append</div><div>File: '/home/damien/procbox-develop/sources/poky/meta/classes/kernel-module-split.bbclass', lineno: 52, function: extract_modinfo</div><div> 0048: tmpfile = tf[1]</div><div> 0049: cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile)</div><div> 0050: subprocess.call(cmd, shell=True)</div><div> 0051: f = open(tmpfile)</div><div> *** 0052: l = f.read().split("\000")</div><div> 0053: f.close()</div><div> 0054: os.close(tf[0])</div><div> 0055: os.unlink(tmpfile)</div><div> 0056: vals = {}</div><div>File: '/usr/lib/python3.5/codecs.py', lineno: 321, function: decode</div><div> 0317:</div><div> 0318: def decode(self, input, final=False):</div><div> 0319: # decode input (taking the buffer into account)</div><div> 0320: data = self.buffer + input</div><div> *** 0321: (result, consumed) = self._buffer_decode(data, self.errors, final)</div><div> 0322: # keep undecoded input until the next call</div><div> 0323: self.buffer = data[consumed:]</div><div> 0324: return result</div><div> 0325:</div><div>Exception: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa9 in position 83: invalid start byte</div><div><br></div><div>ERROR: pixci-1.0-r0 do_package: Function failed: split_kernel_module_packages</div></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">----------------------------------------------------------------------------------------------------------------</span><br></div><div><br></div><div>Any ideas what I could be doing wrong?</div><div><br></div><div>Thanks,</div><div>-Damien</div>
</div></div>