关于驱动编译 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 2.6.36的内核,我升级到这个内核之后也出问题。不知到什么原因 刚发现2.6.36的file_operations结构发生了重大变化。
取消了原有的ioctl成员,添加来新的成员 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
long (*compat_ioctl) (struct file *, unsigned int, unsigned long); :curse: :curse: 刚发现2.6.36的file_operations结构发生了重大变化。
取消了原有的ioctl成员,添加来新的成员
mayjojo 发表于 2010-11-22 16:21 http://linux.chinaunix.net/bbs/images/common/back.gif
原来是这个样子。
页:
[1]