Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102221
  • 博文数量: 18
  • 博客积分: 861
  • 博客等级: 上士
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-17 22:13
文章分类

全部博文(18)

文章存档

2011年(18)

分类: LINUX

2011-02-20 22:22:18

将代码直接编译进内核
----------------------------------------------------------------------------------
 
将代码加入到内核源代码树中
 
     通过如此方式的命令可以将代码源文件加入内核源代码树中
 
        . 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
            depends on
     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被设定,该选项才会在内核配置程序中出现。
 
----------------------------------------------------------------------------------------------
阅读(1980) | 评论(0) | 转发(0) |
0

上一篇:Linux内核配置与编译

下一篇:备忘

给主人留下些什么吧!~~