设为首页 加入收藏

TOP

Linux设备驱动开发中有关scull模块的编译问题
2014-11-24 08:15:01 来源: 作者: 【 】 浏览:1
Tags:Linux 设备驱动 开发 有关 scull 模块 编译 问题

运行了一下《linux设备驱动程序》第三章的那个scull例子,发现出现如下错误提示:
error: linux/config.h: No such file or directory
我的系统内核版本是2.6.35的,config.h这个头文件貌似在2.6.19的内核版本后就没有了,搜了搜网上的文章,有些人说打过patch的没问题,这是肯定的,如果不打patch,就只有改代码了,又有人说只要在access.c中添加 #include 和#include 就能通过编译,不过,出现了如下错误:
error: 'struct task_struct' has no member named 'uid'
error: 'struct task_struct' has no member named 'euid'


本文相配套的《Linux设备驱动程序》下载在http://www.linuxidc.net/thread-2029-1-1.html

下面是我的解决办法:



1. 在 pipi.c 文件中添加 #include



2. 去掉 main.c 中的 #include



3. 在 access.c 文件中添加 #include



4. 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
5. 将Makefile中的
CFLAGS += $(DEBFLAGS)
CFLAGS += -I$(LDDINC)


修改为:


EXTRA_CFLAGS += $(DEBFLAGS)


EXTRA_CFLAGS += -I$(LDDINC)


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux驱动编译不通过的问题解决 下一篇Linux2.6内核的原子操作的实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python爬虫教程(从 (2025-12-26 16:49:14)
·【全269集】B站最详 (2025-12-26 16:49:11)
·Python爬虫详解:原 (2025-12-26 16:49:09)
·Spring Boot Java: (2025-12-26 16:20:19)
·Spring BootでHello (2025-12-26 16:20:15)