本人想添加自己的一个驱动,结果在make的时候出错,于是拿mini2440自带的那个led的驱动来试验下到底错误出在哪里。结果还是错的!想不通为什么自带的驱动都会有问题!肯定是自己做的时候有错!下面是我的步骤,请哪位大虾看一下啊!!!!!
2.6.32.2内核的目录我放在/win7/linux2.6.32.2,已经编译过!步骤(make mrproper,make menuconfig ARCH=arm,make bzImage CROSS_COMPILE=arm-linux-,make modules)
交叉工具链已经安装!
驱动源代码是mini2440自带的led驱动,没修改过!
下面是makefile!
ifeq ($(KERNELRELEASE),)
KDIR ?=/win7/linux-2.6.32.2
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
modules_install:
$(MAKE) -C $(KDIR) M=$(PWD) modules_install
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
.PHONY:modules modules_install clean
else
obj-m := leds.o
endif
其中 ARCH=arm CROSS_COMPILE=arm-linux-我加跟没加都试过!
然后下面是错误(我把led.c跟Makefile放在/win7/led目录下的)
[root@localhost led]# make
make -C /win7/linux-2.6.32.2 M=/win7/led modules
make[1]: Entering directory `/win7/linux-2.6.32.2'
CC [M] /win7/led/leds.o
/win7/led/leds.c:4:28: error: mach/regs-gpio.h: No such file or directory
/win7/led/leds.c:30: error: implicit declaration of function 'S3C2410_GPB'
/win7/led/leds.c:30: error: initializer element is not constant
/win7/led/leds.c:30: error: (near initialization for 'led_table[0]')
/win7/led/leds.c:31: error: initializer element is not constant
/win7/led/leds.c:31: error: (near initialization for 'led_table[1]')
/win7/led/leds.c:32: error: initializer element is not constant
/win7/led/leds.c:32: error: (near initialization for 'led_table[2]')
/win7/led/leds.c:33: error: initializer element is not constant
/win7/led/leds.c:33: error: (near initialization for 'led_table[3]')
/win7/led/leds.c:37: error: 'S3C2410_GPIO_OUTPUT' undeclared here (not in a function)
/win7/led/leds.c:37: error: initializer element is not constant
/win7/led/leds.c:37: error: (near initialization for 'led_cfg_table[0]')
/win7/led/leds.c:38: error: initializer element is not constant
/win7/led/leds.c:38: error: (near initialization for 'led_cfg_table[1]')
/win7/led/leds.c:39: error: initializer element is not constant
/win7/led/leds.c:39: error: (near initialization for 'led_cfg_table[2]')
/win7/led/leds.c:40: error: initializer element is not constant
/win7/led/leds.c:40: error: (near initialization for 'led_cfg_table[3]')
/win7/led/leds.c: In function 's3c2440_leds_ioctl':
/win7/led/leds.c:55: error: implicit declaration of function 's3c2410_gpio_setpin'
/win7/led/leds.c: In function 'dev_init':
/win7/led/leds.c:81: error: implicit declaration of function 's3c2410_gpio_cfgpin'
make[2]: *** [/win7/led/leds.o] 错误 1
make[1]: *** [_module_/win7/led] 错误 2
make[1]: Leaving directory `/win7/linux-2.6.32.2'
make: *** [modules] 错误 2
[root@localhost led]#
我想不通为什么会是那个驱动的问题,说什么头文件找不到跟设定值不是常量等等!求高手啊啊啊啊啊 !急!