ipe.o] Error 1
make[1]: *** [_module_/home/elite/Desktop/linux设备驱动开发/examples/scull] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-22-generic'
make: *** [modules] Error 2
TASK_INTERRUPTIBLE找不到,既然前面删除掉了了一个头文件,必然有很多变量找不到,
那就到/usr/src/linux-headers-2.6.32-22-generic下grep一下呗:
最终找到头文件,添加上:
#include
access.c也需要添加上面的头文件。
然后,还得make,痛苦阿。。。。
make -C /lib/modules/2.6.32-22-generic/build M=/home/elite/Desktop/linux设备驱动开发/examples/scull LDDINC=/home/elite/Desktop/linux设备驱动开发/examples/scull/../include modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-22-generic'
CC [M] /home/elite/Desktop/linux设备驱动开发/examples/scull/access.o
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c: In function‘scull_u_open’:
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c:107: error:‘struct task_struct’ has no member named ‘uid’
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c:108: error:‘struct task_struct’ has no member named ‘euid’
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c:115: error:‘struct task_struct’ has no member named ‘uid’
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c: In function‘scull_w_available’:
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c:166: error:‘struct task_struct’ has no member named ‘uid’
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c:167: error:‘struct task_struct’ has no member named ‘euid’
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c: In function‘scull_w_open’:
/home/elite/Desktop/linux设备驱动开发/examples/scull/access.c:185: error:‘struct task_struct’ has no member named ‘uid’
make[2]: *** [/home/elite/Desktop/linux设备驱动开发/examples/scull/access.o] Error 1
make[1]: *** [_module_/home/elite/Desktop/linux设备驱动开发/examples/scull] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-22-generic'
make: *** [modules] Error 2
说task_struct结构体没有uid,euid成员变量,struct task_struct定义在include/linux/sched.h中,这主要是由于原来task_struct结构体定义有所改动,将uid和euid等挪到 cred中,见include/linux/sched.h和include/linux/cred.h。
因此只需要将报error的代码做如下修改
current->uid 修改为 current->cred->uid
current->euid 修改为 current->cred->euid
然后编译,即可通过。