Linux(fedora 10)Hello World模块
?
一個內(nèi)核模塊的例子:
?
#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?
總結(jié)
以上是生活随笔為你收集整理的Linux(fedora 10)Hello World模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 融资偿还是什么意思 什么叫融资偿还
- 下一篇: MATLAB拉格朗日插值