[yocto] Naive Questsions about 3rd Party Kernel Module

Ronald Oakes ronaldo at brc2.com
Fri Sep 9 09:01:22 PDT 2016


I have some, I presume naive, questions about some messages I'm
getting as a result of running (or attempting to run) my
vendor-provided kernel module under qemu.  (I've not tried on the real
hardware yet, I'd like it at least to boot somewhat cleaner on the
emulator before I commit to burning a CD to attempt real hardware even
if at this point that is just the same PC I'm developing on).

1: Upon each boot - or more correctly when I attempt to load my module
as part of an init.d script - I get a couple of messages from my
driver:
  "altadriver: module license 'Proprietary' taints kernel."
followed by:
  "Disabling lock debugging due to kernel taint"

Is there any way to prevent the prosperity license from tainting the
kernel?  As the kernel module is indeed under a proprietary license
(which isn't a problem - my product has a single customer so licensing
is not an issue), I don't want to override the license, but I don't
want it to impact kernel debugging should other issues develop.

2: I'm also getting a number of Unknown symbol messages such as:
  "altadriver: Unknown symbol ___stack_chk_fail  (err 0)"

Am I correct that these indicate that I'm missing a runtime library
dependency?  If so, any suggestions on how to locate what library has
the missing functions?  I do have these modules working on the native
system, so I know that I have the native versions of these libraries
and just need to identify and add them to my target system.

3: Related to the previous question, how important is the name of the
library in /usr/lib at the time that the module (or any other program)
starts?

On the native installer, one of the precompiled libraries gets
installed as symbolic link called /usr/lib/<filename>.so pointing to
where the file is unpacked.  I was unable to successfully get a
symbolic link of this name created on my target yesterday (even though
the same recipe created two other symbolic links in /usr/lib of the
same format), leaving only the actual file (named
/usr/lib/<filename>.so.<version>).  So, I modified my init.d script to
create the symbolic link before calling the program that, I believe,
installs the module (the program is a vendor supplied pre-compiled
binary that is used to create the device for the vendor hardware).
However, if the module is installed before that it is possible that
the symbolic link doesn’t exist but the library file is in /usr/lib
under a different but related name.

Thank You
  Ron Oakes



More information about the yocto mailing list