title: Kernel compile "Hello world" # Kernel compile "Hello world" Compile minimal linux kernel module. ## Files You need to create to files __Makefile__ and __hello_world.c__. __Makefile__ ```Makefile obj-m += hello_world.o KDIR ?= /lib/modules/$(shell uname -r)/build all: make -C $(KDIR) M=$(PWD) modules clean: make -C $(KDIR) M=$(PWD) clean ``` __hello_world.c__ ```c //http://www.tldp.org/LDP/lkmpg/2.4/html/c147.htm #include /* Needed by all modules */ #include int hello_world_init( void ) { printk(KERN_DEBUG "Hello World!\n"); return 0; } void hello_world_exit( void ) { printk(KERN_DEBUG "Exit Hello World!\n"); } module_init( hello_world_init ); module_exit( hello_world_exit ); MODULE_LICENSE("GPL"); ``` ## Compile Now if you havent done so ... install kernel headers of kernel that your system have now. And everything should be there. ```sh make ``` ## Load module ```sh sudo insmod hello_world.ko ``` check that module is running ```sh lsmod | grep hello ``` ## Unload module ```sh rmmod hello_world ``` ### Install kernel headers raspbian RaspberryPi4 ARMv8 ```bash sudo apt-get install raspberrypi-kernel-headers ```