Writing framework in kernel
Hi I am writing some framework for my kernel drivers. I delegated to framework the code which is common amongs all kernel drivers. So my framework module core.c has none probe, remove functions. It has also none module_init, module_exit functions at those are not needed. 1.) When I do modprobe of my core.ko I got error: 15.092976] testframework_core: module license 'unspecified' taints kernel. [ 15.129532] testframework_core : Unknown symbol regmap_write (err 0) [ 15.129554] testframework_core : Unknown symbol devm_kmalloc (err 0) [ 15.129573] rstctl_core testframework_core : Unknown symbol of_property_read_variable_u32_array (err 0) [ 15.129598] testframework_core : Unknown symbol sysfs_remove_groups (err 0) etc So I suppose I need to put in my core.c line: MODULE_LICENSE("GPL v2"); at the end of file in order to get rid of above problems. I will check if it helps. However when I am looking at build-in frameworks in linux kernel nobody put line: MODULE_LICENSE("GPL v2"); So why I have to and for example here: https://elixir.bootlin.com/linux/latest/source/drivers/reset/core.c there is none such line and everything works? This is what I completely don't understand. My framework is external module, maybe this is the reason???
On Sun, Mar 22, 2020 at 05:08:15PM +0100, Tomek The Messenger wrote:
Hi I am writing some framework for my kernel drivers. I delegated to framework the code which is common amongs all kernel drivers. So my framework module core.c has none probe, remove functions. It has also none module_init, module_exit functions at those are not needed. 1.) When I do modprobe of my core.ko I got error: 15.092976] testframework_core: module license 'unspecified' taints kernel. [ 15.129532] testframework_core : Unknown symbol regmap_write (err 0) [ 15.129554] testframework_core : Unknown symbol devm_kmalloc (err 0) [ 15.129573] rstctl_core testframework_core : Unknown symbol of_property_read_variable_u32_array (err 0) [ 15.129598] testframework_core : Unknown symbol sysfs_remove_groups (err 0) etc
So I suppose I need to put in my core.c line: MODULE_LICENSE("GPL v2"); at the end of file in order to get rid of above problems. I will check if it helps.
Yes, that is what you need to do here, you are trying to access symbols that are GPL-only, and you did not specify the license of your module to the kernel. good luck! greg k-h
participants (2)
-
Greg KH -
Tomek The Messenger