zedboard--ubuntu12.04(基于pc机)编译globalmem驱动
来源:互联网 发布:ipad淘宝店怎么上货 编辑:程序博客网 时间:2024/04/28 02:23
先参考下http://blog.csdn.net/xzyiverson/article/details/12681223
globalmem.c中的注释中的编译器是交叉编译器,实际上我注释掉了交叉编译器(上面的博客),用的是gcc的编译器。
globalmem.c和Makefile上传到附件资源了,需要的下载了,记得顶一下啊!
宋宝华书上的例程显然是不能在ubuntu12.04下编译成功的,因为内核有很多的改变,有必要做下面的修改:
1:没有#include <asm/system.h>这个文件,注释掉。
编译仍然出现错误unknown field 'ioctl' specified in initializer。
出现原因:2.6.36后的file_operations结构发生了重大变化。取消了原有的ioctl成员,添加来新的成员
long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
2.所以将.ioctl 改为.unlocked_ioctl
编译还是出错error:implicit declaration of function 'kmalloc'
错误原因:缺少头文件
3添加#include <linux/slab.h>
编译成功
ls一下
可能出现的错误:
error inserting 'globalmem.ko': -1 Device or resource busy
用cat /proc/devices 命令查看发现主设备号254已被rtc占用,所以更改驱动程序
#define GLOBALMEM_MAJOR 250(这个错误我没有出现。)
总结 :(来自韦东山)
移植驱动到新内核的时候:
1. 编译,必定会出现错误
2. 解决错误
2.1 头文件不对:去掉或改名
2.2 宏不对:改名使用新宏
2.3 有些函数没有了:改名使用新函数
- zedboard--ubuntu12.04(基于pc机)编译globalmem驱动
- zedboard--ubuntu12.04(pc机下)下helloworld驱动从失败到成功过程
- Zedboard-Ubuntu12.04内核编译
- 基于Ubuntu16.04 的globalmem驱动测试
- zedboard--运行在demo系统下的globalmem驱动(十九)
- zedboard---ubuntu12.04安装(一)
- zedboard--pc机的ubuntu安装Opencv(十七)
- ubuntu12.04编译min210的PC端的qtopia
- 编译及加载globalmem字符设备驱动出现的问题
- Zedboard-Ubuntu12.04下安装ISE14.4
- Zedboard-Ubuntu12.04下安装ISE14.4
- Zedboard-Ubuntu12.04下使用USB摄像头
- 基于ubuntu12.04 编译Android 7.0源码
- 基于Ubuntu12.04安装交叉编译环境
- globalmem虚拟字符设备驱动--字符驱动讲解(2)
- globalmem设备驱动
- 设备驱动实例--globalmem
- zedboard--ubuntu12.04下Opencv2.3.1安装过程(对十七的补充)
- libgdx 图形绘制
- libgdx 环境搭建
- spring mvc学习(二)用于直接跳转页面的控制器
- Java 布局管理器
- Java读取文件创建时间和最后修改时间
- zedboard--ubuntu12.04(基于pc机)编译globalmem驱动
- Java子类调用父类函数实验
- Android源码下载网站汇总
- hdu 3726 (数据结构综合(好题))
- mongodb的数据类型有哪些
- OracleOraDb11g_home1TNSListener服务启动不了的问题
- 为你详解Linux安装GCC方法
- rac环境下执行srvctl命令报错 cannot open sharedobject file
- EFM32芯片被锁解决方法