<div><br><div class="gmail_quote"><div dir="auto">On Mon, Jul 24, 2017 at 3:19 AM Alexandru Vasiu <<a href="mailto:alexandru.vasiu@ni.com">alexandru.vasiu@ni.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dkms is a tool used to compile out of tree modules directly on<br>
target devices (sometimes you have sources or binaries which<br>
need to be compiled directly on target, outside OE).<br>
I used a simple module and a dkms config to test it, and dkms<br>
compiled and installed the module on target.<br>
<br>
For example:<br>
.<br>
├── dkms.conf<br>
└── src<br>
├── hello.c<br>
└── Makefile<br>
<br>
hello.c:<br>
#include <linux/module.h><br>
<br>
int init_module(void)<br>
{<br>
printk("Hello World!\n");<br>
return 0;<br>
}<br>
<br>
void cleanup_module(void)<br>
{<br>
printk("Goodbye Cruel World!\n");<br>
}<br>
<br>
MODULE_LICENSE("GPL");<br>
<br>
Makefile:<br>
obj-m += hello.o<br>
<br>
KERNELDIR ?= /lib/modules/$(shell uname -r)/build<br>
<br>
PWD := $(shell pwd)<br>
<br>
install:<br>
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules<br>
<br>
clean:<br>
rm -rf *.o *.ko *~ core .depend .*.cmd *.mod.c modules.order Module.symvers<br>
<br>
dkms.conf:<br>
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"<br>
CLEAN="make -C src/ clean"<br>
BUILT_MODULE_NAME=hello<br>
DEST_MODULE_LOCATION=/kernel/drivers/scsi<br>
BUILT_MODULE_LOCATION=src/<br>
PACKAGE_NAME=hello<br>
PACKAGE_VERSION=0.1<br>
AUTOINSTALL=yes<br>
REMAKE_INITRD=yes<br>
<br>
All files should be in /usr/src/<package-name>-<package-version>,<br>
in our case in /urs/src/hello-0.1.<br>
<br>
Signed-off-by: Alexandru Vasiu <<a href="mailto:alexandru.vasiu@ni.com" target="_blank">alexandru.vasiu@ni.com</a>><br>
---<br>
meta/recipes-kernel/dkms/<a href="http://dkms_2.4.0.bb" rel="noreferrer" target="_blank">dkms_2.4.0.bb</a> | 12 ++++++++++++<br>
1 file changed, 12 insertions(+)<br>
create mode 100644 meta/recipes-kernel/dkms/<a href="http://dkms_2.4.0.bb" rel="noreferrer" target="_blank">dkms_2.4.0.bb</a><br>
<br>
diff --git a/meta/recipes-kernel/dkms/<a href="http://dkms_2.4.0.bb" rel="noreferrer" target="_blank">dkms_2.4.0.bb</a> b/meta/recipes-kernel/dkms/<a href="http://dkms_2.4.0.bb" rel="noreferrer" target="_blank">dkms_2.4.0.bb</a><br>
new file mode 100644<br>
index 0000000000..78b23c43e9<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/dkms/<a href="http://dkms_2.4.0.bb" rel="noreferrer" target="_blank">dkms_2.4.0.bb</a><br>
@@ -0,0 +1,12 @@<br>
+SUMMARY = "DKMS Recipe - Adds DKMS tool for target"<br>
+HOMEPAGE = "<a href="https://github.com/dell/dkms/" rel="noreferrer" target="_blank">https://github.com/dell/dkms/</a>"<br>
+LICENSE = "GPLv2"<br>
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"<br>
+<br>
+SRC_URI = "<a href="https://github.com/dell/$%7BPN%7D/archive/v$%7BPV%7D.tar.gz" rel="noreferrer" target="_blank">https://github.com/dell/${PN}/archive/v${PV}.tar.gz</a>"<br>
+<br>
+SRC_URI[md5sum] = "d2e74dd79086c564a924b5763794091b"<br>
+<br>
+RDEPENDS_${PN} += "bash kmod gcc make patch"<br>
+</blockquote><div dir="auto"><br></div><div dir="auto">Perhaps you also need kernel-dev package </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
+inherit autotools-brokensep<br>
--<br>
2.13.3<br>
<br>
--<br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div></div>