ganquan@debian:~/Driver/examples/scull$ make make -C /lib/modules/2.6.26-2-686/build M=/home/ganquan/Driver/examples/scull LDDINC=/home/ganquan/Driver/examples/scull/../include modules make[1]: Entering directory `/usr/src/linux-headers-2.6.26-2-686' CC [M] /home/ganquan/Driver/examples/scull/main.o /home/ganquan/Driver/examples/scull/main.c:17:26: error: linux/config.h: No such file or directory make[2]: *** [/home/ganquan/Driver/examples/scull/main.o] Error 1 make[1]: *** [_module_/home/ganquan/Driver/examples/scull] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-2-686' make: *** [modules] Error 2
解决方法:
先删掉main.c里面的#include<linux/config.h>,因为在2.6.19版本以后不再有config.h文件了。删除后再make还是有很多问题,再添加#include <linux/sched.h> 到access.c文件。
ganquan@debian:~/Driver/examples/scull$ make make -C /lib/modules/2.6.26-2-686/build M=/home/ganquan/Driver/examples/scull LDDINC=/home/ganquan/Driver/examples/scull/../include modules make[1]: Entering directory `/usr/src/linux-headers-2.6.26-2-686' scripts/Makefile.build:46: *** CFLAGS was changed in "/home/ganquan/Driver/examples/scull/Makefile". Fix it to use EXTRA_CFLAGS. Stop. make[1]: *** [_module_/home/ganquan/Driver/examples/scull] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-2-686' make: *** [modules] Error 2
两种解决方法:
(1)用EXTRA_CFLAGS替换Makefile中的CFLAGS
(2)使用 KBUILD_NOPEDANTIC
再来一次
ganquan@debian:~/Driver/examples/scull$ make KBUILD_NOPEDANTIC=1 make -C /lib/modules/2.6.26-2-686/build M=/home/ganquan/Driver/examples/scull LDDINC=/home/ganquan/Driver/examples/scull/../include modules make[1]: Entering directory `/usr/src/linux-headers-2.6.26-2-686' CC [M] /home/ganquan/Driver/examples/scull/main.o CC [M] /home/ganquan/Driver/examples/scull/pipe.o CC [M] /home/ganquan/Driver/examples/scull/access.o LD [M] /home/ganquan/Driver/examples/scull/scull.o Building modules, stage 2. MODPOST 1 modules CC /home/ganquan/Driver/examples/scull/scull.mod.o LD [M] /home/ganquan/Driver/examples/scull/scull.ko make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-2-686'
没问题了。