該文在以添加觸摸屏驅動爲例,介紹添加驅動的方法。
1、添加驅動文件
將驅動文件添加到touchscreen文件夾下(此次要添加的驅動是隻是將.c .h文件直接放在touchscreen文件夾中,要添加的驅動本身不包含文件夾)
android\device\renesas\kernel\drivers\input\touchscreen
2、Kconfig 、Makefile、.config文件介紹
2.1、三者關係比喻
Kconfig:菜單
Makefile:具體的做法
.config:你點的菜
3、修改Kconfig 、Makefile、.config文件
3.1、修改Kconfig文件
android\device\renesas\kernel\drivers\input\touchscreen\Kconfig
//即添加驅動的路徑下的Kconfig文件
//添加如下代碼
config TOUCHSCREEN_MCU
tristate "Mcu touchscreen module"
default m
help
This implement interface support for mcu
touchscreen debug.
Say Y here if you want to have a Android app debug interface
to your system.
If unsure, say N.
3.2、修改Makefile文件
android\device\renesas\kernel\drivers\input\touchscreen\Makefile
//即添加驅動的路徑下的Makefile文件
//添加如下代碼
obj-$(CONFIG_TOUCHSCREEN_MCU) += touchscreen_mcu.o
3.3、修改.config文件
//.config的路徑爲
android\out\target\product\salvator\obj\KERNEL_OBJ\.config
//添加如下代碼
CONFIG_TOUCHSCREEN_MCU=m//編譯成模塊
到此驅動就已經添加進來了,生成的.ko文件在如下目錄中。
mydroid/out/target/product/salvator/obj/KERNEL_OBJ/drivers/input/touchscreen
3、拷貝文件到打包目錄
//修改modules.mk文件,主要是找**.mk文件
android\device\renesas\salvator\modules.mk
BOARD_VENDOR_KERNEL_MODULES += \
$(TARGET_KERNEL_MODULES_OUT)/cyttsp6.ko \ //找到在同一目錄下的驅動cyttsp6
$(TARGET_KERNEL_MODULES_OUT)/cyttsp6_i2c.ko\
$(TARGET_KERNEL_MODULES_OUT)/touchscreen_mcu.ko//照葫蘆畫瓢
這樣touchscreen_mcu.ko就會打包到mydroid/out/target/product/salvator/vendor/lib/modules文件夾下。
4、增加系統起來後自動加載驅動
//修改init.salvator.rc文件,也可能是setup.core.cgf文件
android\device\renesas\salvator\init.salvator.rc
//添加如下代碼
insmod /vendor/lib/modules/touchscreen_mcu.ko