/*
* hello-1.c - The simplest kernel module.
*/
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
然後將他放到 source code根目錄/driver/char
接著修改同一個資料夾下的Kconfig
仿造其他格式加入這段
config Hello_2443
tristate "Hello module for 2443"
depends on ARCH_S3C2410
help
add by JJ, a kernel module test.
再到source code根目錄下下make menuconfig 指令
即可在Device Drivers -> Charater devices -> Hello module for 2443
將選項調成<M>
再去改/driver/char下的Makefile, 加入
#add by JJ
#kernel module test
obj-$(CONFIG_Hello_2443) += hello2443.o
再回到source code根目錄, 下make modules
即可產生hello2443.ko
...利用minicom zmodem將編譯好的module 載入板子後..
[root@(none) modules]# insmod hello2443.ko
hello2443: module license 'unspecified' taints kernel.
Hello world 1.
[root@(none) modules]# lsmod
hello2443 1088 0 - Live 0xbf000000 (P)
但是rmmod卻出現了一些問題@@a...
[root@(none) modules]# rmmod hello2443
rmmod: chdir(/lib/modules): No such file or directory
似乎跟載入的位置有關,再試看看巴
沒有留言:
張貼留言