0
点赞
收藏
分享

微信扫一扫

Linux(fedora 10)Hello World模块


 

一个内核模块的例子:

 

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
static int hello_init(void)
{
printk(KERN_ALERT"hello,world!/n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye,cruel world!/n");
}
module_init(hello_init);
module_exit(hello_exit);


Makefile文件


 

ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KERNELDIR ?= /usr/src/kernels/$(shell uname -r)
PWD := $(shell pwd)
INSTALLDIR = /opt/rootfs/lib/modules
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
cp hello.ko $(INSTALLDIR)
clean:
rm -rf *.o *~core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY:modules modules_install clean
endif

 

在shell下

 


[root@localhost hello_driver]# 
make




make -C /usr/src/kernels/2.6.27.5-117.fc10.i686 M=/opt/hello_driver modules




make[1]: Entering directory `/usr/src/kernels/2.6.27.5-117.fc10.i686'




CC [M] /opt/hello_driver/hello.o




Building modules, stage 2.




MODPOST 1 modules




CC /opt/hello_driver/hello.mod.o




LD [M] /opt/hello_driver/hello.ko




make[1]: Leaving directory `/usr/src/kernels/2.6.27.5-117.fc10.i686'




[root@localhost hello_driver]#
ls




hello.c hello.mod.c hello.o Makefile~ modules.order




hello.ko hello.mod.o Makefile Module.markers Module.symvers




[root@localhost hello_driver]#
insmod hello.ko




[root@localhost hello_driver]#
lsmod | grep hello




hello 5248 0




[root@localhost hello_driver]#
rmmod hello




[root@localhost hello_driver]#
tail -n 2 /var/log/messages




Jun 23 19:33:39 localhost kernel: hello,world!




Jun 23 19:33:55 localhost kernel: Goodbye,cruel world!




[root@localhost hello_driver]#
dmesg | tail

举报

相关推荐

Linux:Hello World 模块

Hello,world

HELLO WORLD

Hello,World!

hello world

Hello World

0 条评论