os/linux/ SummaryWritingASimpleLinuxKernelModule1
Summarised from https://blog.sourcerer.io/writing-a-simple-linux-kernel-module-d9dc3762c234
apt-get install build-essential linux-headers-`uname -r`
mkdir ~/src/lkm_example
cd ~/src/lkm_example
and some C
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>MODULE_LICENSE(“GPL”);
MODULE_AUTHOR(“Robert W. Oliver II”);
MODULE_DESCRIPTION(“A simple example Linux module.”);
MODULE_VERSION(“0.01”);static int __init lkm_example_init(void) {
printk(KERN_INFO “Hello, World!\n”);
return 0;
}static void __exit lkm_example_exit(void) {
printk(KERN_INFO “Goodbye, World!\n”);
}module_init(lkm_example_init);
module_exit(lkm_example_exit);
and we need a Makefile
obj-m += lkm_example.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
then to load it
sudo insmod lkm_example.ko
and
sudo dmesg
to see our little "Hello, World!"
message.