なんか流行ってるみたいなんでのっかってみるぉ!
crash.c
#include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> static int __init crash_init(void) { printk("crashing kernel...\n"); /* *((char *) 0) = 0; */ panic("Hello, panic!"); return 0; } static void __exit crash_exit(void) { printk("crash_exit called. this module is now unloaded.\n"); return; } module_init(crash_init); module_exit(crash_exit); MODULE_AUTHOR("Maintainer: hirose31"); MODULE_DESCRIPTION("crash module"); MODULE_LICENSE("GPL");
Makefile
TARGET = crash.ko all: $(TARGET) crash.ko: crash.c make -C /lib/modules/`uname -r`/build M=`pwd` modules clean: make -C /lib/modules/`uname -r`/build M=`pwd` clean obj-m += crash.o
実行結果
# make # insmod ./crash.ko crashing kernel... Kernel panic - not syncing: Hello, panic!
crashdumpのテスツとかで便利す!