d_raistlin 发表于 2010-11-14 20:01

关于驱动编译 unknown field 'ioctl' specified in initializer

内核版本 2.6.36

包含了 <asm/ioctl.h>
<linux/ioctl.h>
<asm-generic/ioctl.h> 都不行


然后我在Makefile中,包含了我用来编译驱动到内核代码树到路径,仍然不行,

Makefile

CC = arm-linux-gcc-I/root/桌面/kernerl/linux-2.6.36-rc6/include
2 ifneq ($(KERNELRELEASE),)
3
4 scull-objs := main.o pipe.o access.o
5
6 obj-m := scull.o
7
8 else
9
10   KERNELDIR ?= /lib/modules/2.6.36-rc6/build
11   PWD := $(shell pwd)
12
13 default:
14   $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
15
16 endif
17

mayjojo 发表于 2010-11-22 16:16

2.6.36的内核,我升级到这个内核之后也出问题。不知到什么原因

mayjojo 发表于 2010-11-22 16:21

刚发现2.6.36的file_operations结构发生了重大变化。

取消了原有的ioctl成员,添加来新的成员        long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
        long (*compat_ioctl) (struct file *, unsigned int, unsigned long);

dingcai 发表于 2010-11-24 21:59

:curse:

dingcai 发表于 2010-11-26 22:19

:curse:

d_raistlin 发表于 2010-11-28 19:56

刚发现2.6.36的file_operations结构发生了重大变化。

取消了原有的ioctl成员,添加来新的成员
mayjojo 发表于 2010-11-22 16:21 http://linux.chinaunix.net/bbs/images/common/back.gif


    原来是这个样子。
页: [1]
查看完整版本: 关于驱动编译 unknown field 'ioctl' specified in initializer