diff options
author | FreeArtMan <dos21h@gmail.com> | 2016-08-22 18:12:37 +0100 |
---|---|---|
committer | FreeArtMan <dos21h@gmail.com> | 2016-08-22 18:12:37 +0100 |
commit | 8e04380436866e5d35fc674232774cb51faee9c7 (patch) | |
tree | 1d6acd31aacb6d958312c7d20c510abbb01d7a1c /md/writeup | |
parent | 519253628e1847e60dca556221bbe0cda13f1172 (diff) | |
download | md-content-8e04380436866e5d35fc674232774cb51faee9c7.tar.gz md-content-8e04380436866e5d35fc674232774cb51faee9c7.zip |
Added kernel hello world compilation
Diffstat (limited to 'md/writeup')
-rw-r--r-- | md/writeup/kernel_hello_world.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/md/writeup/kernel_hello_world.md b/md/writeup/kernel_hello_world.md new file mode 100644 index 0000000..efad275 --- /dev/null +++ b/md/writeup/kernel_hello_world.md @@ -0,0 +1,54 @@ +# Kernel compile "Hello world" + +Compile minimal linux kernel module. + +## Files + +You need to create to files __Makefile__ and __hello_world.c__. + +__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__ +``` +//http://www.tldp.org/LDP/lkmpg/2.4/html/c147.htm +#include <linux/module.h> /* Needed by all modules */ +#include <linux/kernel.h> + +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. + +``` +make +``` |