将代码直接编译进内核
----------------------------------------------------------------------------------
将代码加入到内核源代码树中
通过如此方式的命令可以将代码源文件加入内核源代码树中
. cp /linux-2.x.xx/drivers//
如果代码源文件不止一个,可以创建自己的目录。
----------------------------------------------------------------------------------------------
修改内核Makefile
单单的把代码源文件加入内核代码树中是无法被内核Makefile识别的,所以要对内核Makefile
作出相应的修改。
利用VIM软件修改内核Makefile文件,方式如下
. vim /linux-2.x.xx/drivers//makefile
如果源文件为单个,并且在当前目录下,加入以下语句
obj-$(CONFIG_<.config item name>) += .o
如果源文件不止一个,需要加入依赖,如下:
obj-$(CONFIG_<.config item name>) += .o
-objs := .o ... .o
如果源文件不在当前目录,使用以下方法调用下一级目录的Makefile文件
obj-m += /
如果需要额外的编译选项可以改变下面变量
EXTRA_CFLAGS+= -D
----------------------------------------------------------------------------------
为代码在内核配置程序中增加选项
每个目录下都有一个Kconfig文件,该文件负责帮助内核配置程序创建.config文件,通过对
Kconfig文件的修改,可以为内核内置程序提供交互选项。
用VIM打开代码源文件目录下的Kconfig文件
. vim /linux-2.x.xx/drivers//Kconfig
如果是自己创建的新目录,需要在上一级目录下的Kconfig文件中加入以下语句
source "dir to the new Kconfig" (eg: source "drivers/char/usb/Kconfig")
config <.config value name>
bool "menu item name"
default
help
"context"
<.config value name>
为配置定义的变量名,会被自动加入CONFIG_前序写入.config文件中。
bool
一般代表系统功能,为Y/N二值选项。
tristate
一般代表驱动功能,为Y/N/M三态选项。
"menu item name"
为在内核配置程序中选项的名称。
default
为设置的默认值。
如果依赖的选项没激活,编译将会被禁止。
强制激活依赖的选项。
bool "menu item name" if "a .config value name"
如果value被设定,该选项才会在内核配置程序中出现。
----------------------------------------------------------------------------------------------
阅读(1977) | 评论(0) | 转发(0) |