红联Linux门户
Linux帮助

linux 内核驱动编译问题 求指教

发布时间:2013-03-21 15:51:09来源:红联作者:yelei302
hello.c
#incldue
#include

static int hello_init(void)
{
printk(KERN_WARNING"Hello,world!\n");
return 0;
}

static void hello_exit(void)
{
printk(KERN_INFO"Goodbye,world\n");
}


module_init(hello_init);
module_exit(hello_exit);


makefile
ifneq ($(KERNELRELERASE),)

obj-m :=hello.o

else

KDIR := /lib/modules/2.6.18-164.el5/build
all:
make -C $(KDIR) M=$(PWD) modules

clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers

endif

编译结果:
[root@localhost kernel]# make
make -C /lib/modules/2.6.18-164.el5/build M=/mnt/hgfs/Linux/kernel modules
make[1]: Entering directory `/usr/src/kernels/2.6.18-164.el5-i686'
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/kernels/2.6.18-164.el5-i686'

目录下并没有生成hello.o hello.ko
为什么??
文章评论

共有 5 条评论

  1. _lele 于 2013-07-22 00:02:30发表:

    应该可以的。。。现在

  2. _lele 于 2013-07-22 00:01:43发表:

    obj-m:=hello.o
    #generate the path
    CURRENT_PATH:=$(shell pwd)
    #the current kernel version number
    LINUX_KERNEL:=$(shell uname -r)
    #the absolute path
    LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL)
    #complie object
    all:
    make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
    clean:
    rm -rf *.*~core.depend.*.cmd*.ko*.mod.c.tmp_versions

  3. _lele 于 2013-07-22 00:00:17发表:

    make 文件问题吧。。

  4. 菟丝子001 于 2013-05-11 21:37:32发表:

    不大明白,有没有大神帮忙

  5. haohu137 于 2013-05-09 19:06:30发表:

    路过,看看。