This guide explains how to create, compile, insert, verify, and remove a simple Linux Kernel Module on Ubuntu 24.
mkdir kernel_module
cd kernel_moduleCreate a file named hello.c:
nano hello.cAdd the following code:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init hello_init(void) {
printk(KERN_INFO "Hello: Module loaded into kernel\n");
return 0;
}
static void __exit hello_exit(void) {
printk(KERN_INFO "Hello: Module removed from kernel\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("Simple Hello World Kernel Module");Save and exit: CTRL + X → Y → ENTER
⚙️ Step 3: Create Makefile nano Makefile Add:
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) cleanmakeOutput: hello.ko → Kernel object file
sudo insmod hello.kolsmod | grep helloIf you face permission issue:
sudo dmesg | tailExpected Output: Hello: Module loaded into kernel
sudo rmmod helloCheck logs again:
sudo dmesg | tailExpected Output: Hello: Module removed from kernel
make clean- Install dependencies
- Write hello.c
- Create Makefile
- Compile using make
- Insert module → insmod
- Verify → lsmod, dmesg
- Remove → rmmod
- Clean → make clean
Badri Narayanan