linux设备驱动开发中有关scull模块的编译问题
来源:互联网 发布:买外包软件 编辑:程序博客网 时间:2024/05/17 23:01
昨天运行了一下《linux设备驱动程序》第三章的那个scull例子,发现出现如下错误提示:
error: linux/config.h: No such file or directory
我的系统内核版本是2.6.35的,config.h这个头文件貌似在2.6.19的内核版本后就没有了,搜了搜网上的文章,有些人说打过patch的没问题,这是肯定的,如果不打patch,就只有改代码了,又有人说只要在access.c中添加 #include <linux/sched.h>和#include <linux/capability.h>就能通过编译,不过,出现了如下错误:
error: 'struct task_struct' has no member named 'uid'
error: 'struct task_struct' has no member named 'euid'
下面是我的解决办法:
1. 在 pipi.c 文件中添加 #include <linux/sched.h>
2. 去掉 main.c 中的 #include <linux/config.h>
3. 在 access.c 文件中添加 #include <linux/sched.h>
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设备驱动开发中有关scull模块的编译问题
- linux设备驱动开发中有关scull模块的编译问题
- linux设备驱动——scull源码编译问题
- 新手 Fedora 7 下编译 linux 设备驱动 3ed scull模块
- 编译LDD3的scull驱动问题总结
- Scull字符设备驱动模块的内存使用分析
- Linux设备驱动--Linux驱动模块交叉编译的注意事项
- [linux设备驱动程序]scull字符设备驱动编译在新内核编译问题解决方案
- ldd(linux设备驱动程序)scull驱动
- LDDR3中scull编译问题
- LDDR3中scull编译问题
- 慢慢学Linux驱动开发,第七篇,scull的使用
- 设备驱动之一 - 最简单的可运行的scull模块
- 基于scull结构的驱动模块源码
- Linux设备驱动学习(2) 全局内存“设备” scull
- 关于linux内核驱动开发中Makefile编译的问题
- 【Linux】我的第一个驱动程序——scull字符设备驱动
- Introduction the naive“scull” 《linux设备驱动》 学习笔记
- VPython - 安装
- 文件格式和数据压缩相关书籍
- 抽象类和接口类的区别
- Red Hat集群套件介绍
- Word 2007 自动更新,让操作速度加倍!
- linux设备驱动开发中有关scull模块的编译问题
- 生成适用symbian 的gloox.lib库文件
- 如何在WORD中设置标题1与标题2编号样式不一样
- 关于地址线宽度、数据线宽度等数值的总结
- 也谈阿里巴巴面试题_身高排队问题
- MATLAB调用C/C++函数的方法--(二)
- 字符串与字符数组
- 借“样式”巧用Word自带的多级项目符号!
- 好的开源游戏引擎