From: Adrian Freihofer <[email protected]> Add a minimal out-of-tree kernel module and corresponding recipe under meta-selftest for devtool ide-sdk test coverage.
This provides a simple module source and Makefile that can be built via the module class in selftest scenarios. Signed-off-by: Adrian Freihofer <[email protected]> --- .../selftest-kmodule/files/Makefile | 16 ++++++ .../selftest-kmodule/files/selftest-kmodule.c | 56 +++++++++++++++++++ .../selftest-kmodule/selftest-kmodule.bb | 18 ++++++ 3 files changed, 90 insertions(+) create mode 100644 meta-selftest/recipes-test/selftest-kmodule/files/Makefile create mode 100644 meta-selftest/recipes-test/selftest-kmodule/files/selftest-kmodule.c create mode 100644 meta-selftest/recipes-test/selftest-kmodule/selftest-kmodule.bb diff --git a/meta-selftest/recipes-test/selftest-kmodule/files/Makefile b/meta-selftest/recipes-test/selftest-kmodule/files/Makefile new file mode 100644 index 0000000000..9a26462bfc --- /dev/null +++ b/meta-selftest/recipes-test/selftest-kmodule/files/Makefile @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: MIT + +obj-m := selftest-kmodule.o + +SRC := $(shell pwd) + +all: + $(MAKE) -C $(KERNEL_SRC) M=$(SRC) + +modules_install: + $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install + +clean: + rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c + rm -f Module.markers Module.symvers modules.order + rm -rf .tmp_versions Modules.symvers diff --git a/meta-selftest/recipes-test/selftest-kmodule/files/selftest-kmodule.c b/meta-selftest/recipes-test/selftest-kmodule/files/selftest-kmodule.c new file mode 100644 index 0000000000..a72e0a9786 --- /dev/null +++ b/meta-selftest/recipes-test/selftest-kmodule/files/selftest-kmodule.c @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: GPL-2.0-only + * A simple test kernel module with sysfs interface for devtool ide-sdk testing + * + * Usage: + * cat /sys/kernel/selftest_kmodule/magic + * Hello from selftest-kmodule + */ + +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/kobject.h> +#include <linux/sysfs.h> + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("OpenEmbedded Contributors"); +MODULE_DESCRIPTION("A simple test kernel module with sysfs interface for devtool ide-sdk testing"); + +/* Change this string to verify the modify/rebuild/redeploy workflow */ +#define SELFTEST_MAGIC_STRING "Hello from selftest-kmodule" + +static struct kobject *selftest_kobj; + +static ssize_t magic_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) +{ + return sysfs_emit(buf, "%s\n", SELFTEST_MAGIC_STRING); +} + +static struct kobj_attribute magic_attr = __ATTR_RO(magic); + +static int __init selftest_kmodule_init(void) +{ + int ret; + + selftest_kobj = kobject_create_and_add("selftest_kmodule", kernel_kobj); + if (!selftest_kobj) + return -ENOMEM; + + ret = sysfs_create_file(selftest_kobj, &magic_attr.attr); + if (ret) + kobject_put(selftest_kobj); + + pr_info("selftest-kmodule: loaded\n"); + return ret; +} + +static void __exit selftest_kmodule_exit(void) +{ + sysfs_remove_file(selftest_kobj, &magic_attr.attr); + kobject_put(selftest_kobj); + pr_info("selftest-kmodule: unloaded\n"); +} + +module_init(selftest_kmodule_init); +module_exit(selftest_kmodule_exit); diff --git a/meta-selftest/recipes-test/selftest-kmodule/selftest-kmodule.bb b/meta-selftest/recipes-test/selftest-kmodule/selftest-kmodule.bb new file mode 100644 index 0000000000..5b3f00c5a0 --- /dev/null +++ b/meta-selftest/recipes-test/selftest-kmodule/selftest-kmodule.bb @@ -0,0 +1,18 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +SUMMARY = "A simple kernel module for testing devtool ide-sdk" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" + +inherit module + +SRC_URI = "\ + file://selftest-kmodule.c \ + file://Makefile \ +" + +S = "${UNPACKDIR}" -- 2.53.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#231696): https://lists.openembedded.org/g/openembedded-core/message/231696 Mute This Topic: https://lists.openembedded.org/mt/117965268/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
