如果客户需要实现某一个功能,自己写驱动程序,他们希望能单独编译他们的驱动程序,然后动态的insmod 和 rmmod,插入内核和从内核卸掉掉对应的ko档。
步骤如下(拿hello_world_ko举例):
1、 先把我们的release.tgz解压开,然后在sys build目录下面,保证build过一次,这样会在内核根目录下面生成相关的配置文件.config 文件,其实内核该导入哪些配置.所以以后我们要裁剪内核,比如要让平台支持游戏杆,就要让CONFIG_INPUT_JOYSTICK=y 或者 CONFIG_INPUT_JOYSTICK=m,前者表示编译进内核,后者表示编译成模块,即ko档。
2、 在 dtv_linux/mak/customer.mak 最后一行, 加入include $(DTVLINUX)/mak/hello_world_ko.mak (hello_world_ko 换成他们的 ko name 即可)
3、 在 dtv_linux/mak/ 加入一个 hello_world_ko.mak ,内容如下:
THIRD_PARTY_ROOT = $(LINUX_ROOT)/third_party/source
hello_world_ko:
$(MAKE) -C $(THIRD_PARTY_ROOT)/$@ O=$(O)
clean_hello_world_ko:
$(MAKE) -C $(THIRD_PARTY_ROOT)/$(subst clean_,,$@) clean O=$(O)
4、 请注意 dtv_linux/mak/customer.mak 需有以下的宣告
ifndef O
export O = $(