原创,转载请标明出处
在驱动里面加入自己的文件夹,例如我在driver/char/文件夹里面加入自己的pwm驱动,我需要在char目录下,新建一个pwm_bl目录,在此目录里面放入你的驱动源码 am335x_backlight.c。
同时,在pwm_bl目录里面,加入自己的Makefile,对应文件am335x_backlight.c, 里面写入一句话即可:
obj-y += am335x_backlight.o
注意,名字一定要对应am335x_backlight.c, 这样才能被编译工具识别,否无效报错。
这表示把驱动源码编译到内核里面,如果做成menuconfig中可选M或者*的话,需要这样写:
obj-$(CONFIG_AM335X_BACKLIGHT) += am335x_backlight.o
在同一目录中,新建Kconfig文件,文件加入如下内容,这个内容可以在内核menuconifg里面看到:
menu "WQ-pwm-driver "
comment "am335X pwm backlight"
config AM335X_BACKLIGHT
tristate "wq pwm driver"
help
this is WQ pwm driver
endmenu
同样,注意名字: AM335X_BACKLIGHT
我们在上一层目录中,也就是:driver/char中,修改当前的Makefile和Kconfig:
source "drivers/char/pwm_bl/Kconfig"
obj-y += pwm_bl/
表示编译此代码到内核里面去!也就是menuconfig的星号,如果不想直接编到内核里面去的话,需要修改一下。
obj-$(AM335X_BACKLIGHT) += pwm_bl/
make modules SUBDIRS=drivers/char/pwm_bl
这样可以只是编译drivers/char/pwm_bl/目录下的ko模块