xiaofei_heu 发表于 2012-12-29 14:36:31

动态加载hello world驱动模块出错

PC平台:ubuntu10.04内核源码为2.6.32.38-generic
使用移植源码为天嵌光盘里的2.6.30.4压缩包,放在了root/test,使用tar命令解压到默认路径 /
在/root/test下建立了一个test01文件夹,里面创建了两个文件,分别是hello.c Makefile

root@xiaofei-desktop:~/test/test01# ls
hello.cMakefile

hello.c的内容是
#include <linux/init.h>
#include <linux/module.h>

static int __init hello_init(void)
{
        printk("Hello,My world!\n");
        printk(KERN_ALERT"This is my first driver.\n");
        return 0;
}

static void __exit hello_exit(void)
{
        printk(KERN_ALERT"Goodbye,My world\n");
        return 0;
}

MODULE_LICENSE("GPL");
MODULE_AUTHOR("LIU");

module_init(hello_init);
module_exit(hello_exit);

Makefile的内容是
ifneq ($(KERNELRELEASE),)   
obj-m := hello.o   
else

KDIR        := /opt/EmbedSky/linux-2.6.30.4
all:
        make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
clean:   
        rm -rf *.o *.ko *.mod.c *.markers *.order *.symvers   
endif
在/root/test/test01/下使用make命令,出现以下错误:
root@xiaofei-desktop:~/test/test01# make
make -C /opt/EmbedSky/linux-2.6.30.4 M=/root/test/test01 modules ARCH=arm CROSS_COMPILE=arm-linux-
make: 正在进入目录 `/opt/EmbedSky/linux-2.6.30.4'

ERROR: Kernel configuration is invalid.
         include/linux/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.


WARNING: Symbol version dump /opt/EmbedSky/linux-2.6.30.4/Module.symvers
         is missing; modules will have no dependencies and modversions.

Building modules, stage 2.
/opt/EmbedSky/linux-2.6.30.4/scripts/Makefile.modpost:43: include/config/auto.conf: 没有那个文件或目录
make: *** 没有规则可以创建目标“include/config/auto.conf”。 停止。
make: *** 错误 2
make:正在离开目录 `/opt/EmbedSky/linux-2.6.30.4'
make: *** 错误 2

xiaofei_heu 发表于 2012-12-29 14:55:53

怎么没有回复呐{:2_140:}

xiaofei_heu 发表于 2012-12-29 15:24:32

问题已解决,不用麻烦技术指导了{:2_130:}
页: [1]
查看完整版本: 动态加载hello world驱动模块出错