linux kernel Module compile about "Hello, altercrazy"

     Pass a long time, then i must to say i could not remembered what i have done for a linux's introduction program(sample kernel module) at the beginning of this term,   so tonight, i want to recall the process for linux kernel Module about "hello altercrazy".

     The source code as follows: 

[root@localhost hello-kernel]# pwd
/home/polar/Desktop/PolarLittleTest/hello-kernel

[root@localhost hello-kernel]# ll
总计 12
-rw-r--r-- 1 root  root  266 09-21 08:57 \
-rw-rw-r-- 1 polar polar 470 11-04 22:35 hello.c
-rw-rw-r-- 1 polar polar 265 11-04 21:54 Makefile

#include<linux/init.h>
#include<linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
        //printk(KERN_ALERT "Hello altercrazy!\n"); 
        printk("<1>hello altercrazy!\n");
        return 0;
}

static void hello_exit(void)
{
        //printk(KERN_ALERT "Goodbye, kernel\n");
        printk("<1>goodbye, kernel\n");
}


module_init(hello_init);
module_exit(hello_exit);

Makefile

ifneq ($(KERNELRELEASE),)
        obj-m := -DEXPORT_SYMTAB
        obj-m := hello.o
else

#YourKernelDir

KERNELDIR ?= /usr/src/kernels/2.6.18-164.el5-i686
PWD := $(shell pwd)

default:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:

        rm *.o *.mod.c *.ko Module.*

endif

[root@localhost hello-kernel]# make
make -C /usr/src/kernels/2.6.18-164.el5-i686  M=/home/polar/Desktop/PolarLittleTest/hello-kernel modules
make[1]: Entering directory `/usr/src/kernels/2.6.18-164.el5-i686'
  CC [M]  /home/polar/Desktop/PolarLittleTest/hello-kernel/hello.o
  Building modules, stage 2.
  MODPOST
  CC      /home/polar/Desktop/PolarLittleTest/hello-kernel/hello.mod.o
  LD [M]  /home/polar/Desktop/PolarLittleTest/hello-kernel/hello.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.18-164.el5-i686'
[root@localhost hello-kernel]# 

[root@localhost hello-kernel]# ls
\        hello.ko     hello.mod.o  Makefile        Module.symvers
hello.c  hello.mod.c  hello.o      Module.markers
[root@localhost hello-kernel]# insmod hello.ko 
[root@localhost hello-kernel]# 

[root@localhost hello-kernel]#  tail /var/log/messages

[root@localhost hello-kernel]# rmmod hello.ko

[root@localhost hello-kernel]#  tail  /var/log/messages

while, if hello.c  as follow

=================================================================================================================================

#include<linux/init.h>
#include<linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
        printk("<0>hello altercrazy!\n");
        return 0;
}

static void hello_exit(void)
{
        printk("<0>goodbye, kernel\n");
}

module_init(hello_init);
module_exit(hello_exit);
then 

[root@localhost hello-kernel]# make
o

[root@localhost hello-kernel]# insmod hello.ko 
[root@localhost hello-kernel]# 
Message from syslogd@ at Sun Nov  4 22:35:37 2012 ...
localhost kernel: hello altercrazy!
[root@localhost hello-kernel]# rmmod hello.ko 
[root@localhost hello-kernel]# 
Message from syslogd@ at Sun Nov  4 22:37:46 2012 ...
localhost kernel: goodbye, kernel
and more important thing is

[root@localhost hello-kernel]# ls
\        hello.ko     hello.mod.o  Makefile        Module.symvers
hello.c  hello.mod.c  hello.o      Module.markers
[root@localhost hello-kernel]# make clean
rm *.o *.mod.c *.ko Module.*
[root@localhost hello-kernel]# ll
总计 12
-rw-r--r-- 1 root  root  266 09-21 08:57 \
-rw-rw-r-- 1 polar polar 470 11-04 22:35 hello.c
-rw-rw-r-- 1 polar polar 265 11-04 21:54 Makefile
[root@localhost hello-kernel]# 
=================================================================================================================================

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值