分类: LINUX
2011-08-02 20:50:57
在看设备驱动开发详解时,第一个hello.c程序无法编译为模块。经上网查询。
1)vim Makefile
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.20/build 改为/lib/modules/2.6.38.8-35.fc15.i686.PAE/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules --->特别提醒,是MAKE 不是gcc
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
2)将Makefile 和hello.c 放在同一目录下
3)make 即可得到hello.ko
4)insmod hello.ko
5)dmesg | grep Hello 可以看到模块加载的信息。
或 /var/log/messages 可以看到printk的打印信息