<div dir="ltr">Hi,<div><br></div><div>I&#39;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 = &quot;Kernel module for EPIX grabber&quot;</div><div>#TODO: set correct license</div><div>LICENSE = &quot;CLOSED&quot;</div><div><br></div><div>inherit module</div><div><br></div><div>SRC_URI = &quot;file://Makefile \</div><div>           file://pixcilnx_aarch64_4.4.a \</div><div>           file://pixcipub.c \</div><div>           file://pixcipub.h \</div><div>          &quot;</div><div><br></div><div>S = &quot;${WORKDIR}&quot;</div><div><br></div><div># The inherit of module.bbclass will automatically name module packages with</div><div># &quot;kernel-module-&quot; prefix as required by the oe-core build environment.</div><div><br></div><div>KERNEL_MODULE_AUTOLOAD += &quot;pixci&quot;</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: &#39;exec_python_func() autogenerated&#39;, lineno: 2, function: &lt;module&gt;</div><div>     0001:</div><div> *** 0002:split_kernel_module_packages(d)</div><div>     0003:</div><div>File: &#39;/home/damien/procbox-develop/sources/poky/meta/classes/kernel-module-split.bbclass&#39;, lineno: 141, function: split_kernel_module_packages</div><div>     0137:</div><div>     0138:    postinst = d.getVar(&#39;pkg_postinst_modules&#39;)</div><div>     0139:    postrm = d.getVar(&#39;pkg_postrm_modules&#39;)</div><div>     0140:</div><div> *** 0141:    modules = do_split_packages(d, root=&#39;${nonarch_base_libdir}/modules&#39;, file_regex=module_regex, output_pattern=module_pattern, description=&#39;%s kernel module&#39;, postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends=&#39;kernel-%s&#39; % (d.getVar(&quot;KERNEL_VERSION&quot;)))</div><div>     0142:    if modules:</div><div>     0143:        metapkg = d.getVar(&#39;KERNEL_MODULES_META_PACKAGE&#39;)</div><div>     0144:        d.appendVar(&#39;RDEPENDS_&#39; + metapkg, &#39; &#39;+&#39; &#39;.join(modules))</div><div>     0145:</div><div>File: &#39;/home/damien/procbox-develop/sources/poky/meta/classes/package.bbclass&#39;, lineno: 234, function: do_split_packages</div><div>     0230:            d.setVar(&#39;pkg_postinst_&#39; + pkg, postinst)</div><div>     0231:        if postrm:</div><div>     0232:            d.setVar(&#39;pkg_postrm_&#39; + 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(&#39;PACKAGES&#39;, &#39; &#39;.join(packages))</div><div>     0237:    return list(split_packages)</div><div>     0238:</div><div>File: &#39;/home/damien/procbox-develop/sources/poky/meta/classes/kernel-module-split.bbclass&#39;, 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(&#39;PKGD&#39;)</div><div>     0068:</div><div>     0069:        # If autoloading is requested, output /etc/modules-load.d/&lt;name&gt;.conf and append</div><div>File: &#39;/home/damien/procbox-develop/sources/poky/meta/classes/kernel-module-split.bbclass&#39;, lineno: 52, function: extract_modinfo</div><div>     0048:        tmpfile = tf[1]</div><div>     0049:        cmd = &quot;%sobjcopy -j .modinfo -O binary %s %s&quot; % (d.getVar(&quot;HOST_PREFIX&quot;) or &quot;&quot;, file, tmpfile)</div><div>     0050:        subprocess.call(cmd, shell=True)</div><div>     0051:        f = open(tmpfile)</div><div> *** 0052:        l = f.read().split(&quot;\000&quot;)</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: &#39;/usr/lib/python3.5/codecs.py&#39;, 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: &#39;utf-8&#39; codec can&#39;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>