Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1183270
  • 博文数量: 221
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2139
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-27 19:53
个人简介

JustForFun

文章分类

全部博文(221)

文章存档

2024年(6)

2023年(8)

2022年(2)

2021年(2)

2020年(29)

2019年(11)

2018年(23)

2017年(41)

2016年(76)

2015年(23)

我的朋友
最近访客

分类: LINUX

2016-09-21 22:05:24

 内核源码里有
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
这个CONFIG_DM9000宏是通过 include/linux/autoconf.h这个.h文件里的宏来工作的。autoconf.h是自动生成的,通过.config里的配置生成的。还会通过.config自动生成include/config/auto.conf文件。auto.conf被主makefile包含,被各个子makefile使用。
///////////////////////////////////////////////////////////////////////////
make mx6ull_14x14_evk_nand_defconfig命令对于的配置文件是在uboot_imx6ull/configs/mx6ull_14x14_evk_nand_defconfig,包含的所用的头文件在configs/mx6ullevk.h。因为修改了这个头文件的名字,出现include/config.h:7:31: fatal error: configs/mx6ullevk.h: No such file or directory这个错误。所用是用这个头文件控制编译的。
vim include/config.h
/* Automatically generated - do not edit */
#define CONFIG_IMX_CONFIG       board/freescale/mx6ullevk/imximage.cfg
#define CONFIG_SYS_BOOT_NAND    1
#define CONFIG_BOARDDIR board/freescale/mx6ullevk
#include
#include
#include
#include
#include


uboot的配置文件:include/configs/mx6ullevk.h修改这个配置文件来达到裁剪和设置uboot,类似于kernel的make menuconfig的效果
///////////////////////////////////////////////////////////////




Linux/mips 3.10.14 Kernel Configuration 是在include/generated/autoconf.h里。
auto.conf中
CONFIG_DM9000_URBETTER_CON201=y
linux-2.6.28_smdk6410/drivers/net/Makefile中
obj-$(CONFIG_DM9000) += dm9000.o
obj-$(CONFIG_DM9000_URBETTER_CON201) += dm9000_con201.o
由于CONFIG_DM9000在include/config/auto.conf没有定义出宏,obj-$(CONFIG_DM9000) += dm9000.o 里变量为空,不会被加入编译,CONFIG_DM9000_URBETTER_CON201=y,obj-y += dm9000_con201.o 故而dm9000_con201.c会被
编译进内核dm9000_con201.o,
如果CONFIG_DM9000_URBETTER_CON201=m ,obj-m += dm9000_con201.o 故而dm9000_con201.c会被编译成模块dm9000_con201.ko。


linux-2.6.28_smdk6410/Documentation/kbuild/makefiles.txt       内核makefile的开发者说明文档
linux-2.6.28_smdk6410/Documentation/kbuild/modules.txt         如何build modules 和 install 的说明
linux-2.6.28_smdk6410/Documentation/kbuild/kconfig-language.txt    kconfig文件里的配置语言说明文档

#make  -n ARCH=arm  uImage 加-n来查看各个命令的详细操作。



///////////////////////////////////////////////////////////////////////








///////////////////////////////////////////////////////////////////////

这是内核的一个BUG。内核版本是2.6.27.8

具 体表现为,如果在driver目录下创建了一个新目录,然后在该目录下编写好Kconfig,并在drivers/Kconfig文件中添加了 source选项。按道理,内核配置中就应该添加上了这个目录。make menuconfig后就能够找得到。但实际情况确实找不到。更为疯狂的是,即便是把drivers/Kconfig文件胡乱改掉、甚至是删除掉,都不会 对内核的配置过程造成任何影响。
内核(基于ARM架构,下文同)中所有的配置文件,都是由arch/arm/Kconfig包含进去的(其他平台类推,比如x86就是arch/x86/Kconfig)。

////////////////////////////////////////////////////////////////////////
图片
///////////////////////////////////////////////////////////////////////////

图片
///////////////////////////////////////////////////////////////
图片
//////////////////////////////////////////////////////////////////////////////////////
图片
////////////////////////////////////////////////////////
图片
//////////////////////////////////////////////////////////////
图片
//////////////////////////////////////////////////////////////
图片


///////////////////////////////////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////////////////
 
















阅读(2919) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~