linux新内核编写设备驱动出错的地方

1.注释掉#include <asm/system.h>这个文件。

2.出现错误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);

所以将.ioctl 改为.unlocked_ioctl

3.出错error:implicit declaration of function 'kmalloc'

添加#include <linux/slab.h>

4.error inserting 'globalmem.ko': -1 Device or resource busy
用cat /proc/devices 命令查看发现主设备号已被占用,所以更改驱动程序
#define GLOBALMEM_MAJOR 为新的数就可以了

永不止步步 发表于06-11 15:46 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:305817个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号