打印

linux2.6.36.4内核编译出错

[复制链接]
179|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
社畜一枚|  楼主 | 2018-9-5 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在内核官方网站下载了linux2.6.36.4版本的内核,想移植触摸屏的驱动,经过不断的修改,最后出现了这样的问题:

drivers/char/s3c_adc.c:157: error: unknown field 'ioctl' specified in initializer

drivers/char/s3c_adc.c:157: warning: initialization from incompatible pointer type

make[2]: *** [drivers/char/s3c_adc.o] 错误 1

make[1]: *** [drivers/char] 错误 2

make: *** [drivers] 错误 2



[code]153     static struct file_operations s3c_adc_fops = {

        154                         .owner                = THIS_MODULE,

        155                        .read                = s3c_adc_read,

        156                        .open                = s3c_adc_open,

        157                        .ioctl          = s3c_adc_ioctl,

        158             };



在网上查了相关的资料,解释为下:

2.6.36的file_operations结构发生了重大变化。取消了原有的ioctl成员,添加来新的成员

      long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);

        long (*compat_ioctl) (struct file *, unsigned int, unsigned long);  

1.我想,如果可以找到static struct file_operations定义的文件,就可以解决了。但是我对代码不是很熟,可以告诉我这个结构体定义的位置吗?

2.具体的怎么修改才可以使内核编译成功,可以解释一下吗?



非常感谢!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

397

主题

401

帖子

0

粉丝