今天尝试编译一下ldd3的第二个例子SCULL(ubuntu 10.04),结果遇到了一堆的问题:
1. LDD3书上的ftp位置没有LDD3的例子,只有LDD1和LDD2的例子,但是在examples目录下有个linuxdriver3目录,里面放了LDD3的例子...汗
2. 编译一上来就报错,说linux/config.h没有了,一查google,发现这个头文件在新的内核中已经删除不用了,分别在access.c和pipe.c中加入了linux/sched.h,然后把linux/config给删除了,ok,头文件问题解决,再继续编译.
3. 在access.c中,发现uid和euid这两个变量不属于current结构了,需要从current->uid改成current-cred->uid了。改完再编,终于过了...
上帝阿,linux还真是与时俱进阿,这内核结构改的真快阿...
参考:http://hi.baidu.com/swinggucas/blog/item/32e1d3c3d4eacf3ee4dd3b22.html