Ubuntu下轻松建立你的内核驱动开发环境
时间:2010-10-30 来源:飞舞飘扬
1.笔者刚学linux驱动开发,看到网上很多说要现建立内核树。在笔者到官网下载源码时,源码下面有如下说明: If you are simply trying to build third-party modules for your kernel, you do not want this package. Install the appropriate linux-headers package instead. 意思是,如果你只是想为内核编译第三方的模块,那么,你不需下载此源码包。安装内核头文件包或许会更适合你。
2.如果你的ubuntu是保持更新的,你的系统是安装有内核头文件包的,不信你到/usr/src目录下查看,是不是有linux-headers-2.6.xx-xx-generic的文件夹呢,呵呵。我现在可以说,你可以在此开发你的驱动程序了。
linux内核2.6.28之后:
1.删除config.h文件
2.access.c 增加#include 两个头文件:capability.h和sched.h
3.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
2.如果你的ubuntu是保持更新的,你的系统是安装有内核头文件包的,不信你到/usr/src目录下查看,是不是有linux-headers-2.6.xx-xx-generic的文件夹呢,呵呵。我现在可以说,你可以在此开发你的驱动程序了。
linux内核2.6.28之后:
1.删除config.h文件
2.access.c 增加#include 两个头文件:capability.h和sched.h
3.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
相关阅读 更多 +