1. 编译LDD3 源码 “examples/scull”的代码时报错 linux/config.h 找不到
2. 在优快云参考 http://blog.youkuaiyun.com/hemoparrot/article/details/3603462 文章后 报ioctl 不能找到
1) 将main.c中的<linux/config.h>更改为<linux/sched.h>,并将<linux/sched.h>也增加到pipe.c和access.c中。因为从2.6.19版本以后config.h文件被取消了.所以以后有config.h的地方都会报错。
2)Makefile修改:将Makefile中的全部CFLAGS用EXTRA_CFLAGS替换3)access.c修改:替换所有current->uid 和 current->euid为 current->cred->uid和current->cred->euid。
4)将main.c pipe.c access.c 文件中的".ioctl" 改为“.unlocked_ioctl”
3. 精简了一下Makefile
ifneq ($(KERNELRELEASE),)
scull-objs := main.o pipe.o access.o
obj-m := scull.o
else
KERNELDIR ?= ~/linux //此处linux 目录树的目录
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modules
endif
最后编译通过