linux 2.6.32 在arm9(s3c2440)平台的移植2 -- kconfig和makefile(...
时间:2010-08-11 来源:dos5gw
make menuconfig后,首先读入linux-2.6.32.2/arch/arm/Kconfig ???
sudu vi linux-2.6.32.2/arch/arm/Kconfig
(1)找到开头的mainmenu "Linux Kernel Configuration"source "这一行, 这是整个Configure树的根, 这一行匹配最后一个"带endmenu字样的行".再找到init/Kconfig"这一行, 可以看到该行之前的都是固定选项,不会出现在Configure可选选项的,
某个config的例子如下
config CONFIG_SYMBOL
tristate "string" 或者 bool "string"
default [y/n/m] if MACH_XXX2440
depends on ARCH_ARM
help 其中,CONFIG_SYMBOL字符可以在Configure菜单树中找到(按/就是搜索,类似vi), 并且还给出在数中的位置, 但是如果在Configure菜单树搜索tristate/bool后面引号内的string,是搜不到的, (2)搜索所有的menu "string" 的行, 这些都是Kernel Configure中的第一级目录,直到有endmenu字样的这一行结束. 比如arm/Kconfig中有 menu "Boot options" ... 最近的endmenu结束此层 menu "CPU Power Management" ... 最近的endmenu结束此层 整个Kconfig看起来是这样的: ********Kconfig开始******************* mainmenu "Linux Kernel Configuration" ##*以下是不可选择部分, config GENERIC_GPIO bool ##注释:这样的不可选 config PAGE_OFFSET default 0xC0000000 ##*以下是一级菜单的显示 source "init/Kconfig" ## ??? menu "System Type" ##常见的config,包括config_ID标识(对应Makefile里的字符), bool/tristate, depends on和default. endmenu menu "Boot options" ##... endmenu ##*以下是 source "net/Kconfig" source "drivers/Kconfig" source "fs/Kconfig" ********Kconfig结束******************* (3)比如,移植过程中修改linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c中代码, 这部分代码对应Kernel Configure菜单树中的哪项 ? vi linux-2.6.32.2/arch/arm/mach-s3c2440/Makefile & vi linux-2.6.32.2/arch/arm/mach-s3c2440/Kconfig & 在Makefile中找到: obj-$(CONFIG_MACH_MINI2440) += mach-mini2440.o, 可知mach-mini2440.c编译出的.o文件的选项标识ID=MACH_MINI2440, 在Kconfig中找到: config MACH_MINI2440 的部分, 可以看到这个选项的显示字符是bool "FriendlyARM Mini2440 development board", 在Kernel Configure菜单树中,按/搜索MACH_MINI2440, 可以看到这个选项在:System Type -> S3C2440 Machines -> FriendlyARM Mini2440 development board,这样就找到了, 我们按照手册中修改mach-mini2440.c, 最后是要在这个选项里选择它, 然后保存在顶层的.config中, make内核的时候就会被链接进去了. Kernel Configure菜单树中,按/搜索选项ID,也能列出此选项ID对应的Kconfig, 格式: [Kernel Configure菜单树]:[对应Kconfig路径] System Type ->MMU-based Paged Memory:/arch/arm/mach-s3c2440/Kconfig System Type ->ADC common driver :/arch/arm/plat-s3c24xx/Kconfig System Type ->Force UART FIFO :/arch/arm/plat-s3c/Kconfig System Type ->S3C2440 Machines : Device Drivers->I2C support : /drivers/i2c/Kconfig Device Drivers->Watchdog : /drivers/watchdog/Kconfig Device Drivers->Block devices : /drivers/block/Kconfig File systems->Miscellaneous : /fs/Kconfig File systems->Miscellaneous->YAFFS2 :/fs/yaffs2/Kconfig File systems->Network File Systems :/fs/Kconfig File systems->Network File Systems->Root on NFS: /fs/nfs/Kconfig
tristate "string" 或者 bool "string"
default [y/n/m] if MACH_XXX2440
depends on ARCH_ARM
help 其中,CONFIG_SYMBOL字符可以在Configure菜单树中找到(按/就是搜索,类似vi), 并且还给出在数中的位置, 但是如果在Configure菜单树搜索tristate/bool后面引号内的string,是搜不到的, (2)搜索所有的menu "string" 的行, 这些都是Kernel Configure中的第一级目录,直到有endmenu字样的这一行结束. 比如arm/Kconfig中有 menu "Boot options" ... 最近的endmenu结束此层 menu "CPU Power Management" ... 最近的endmenu结束此层 整个Kconfig看起来是这样的: ********Kconfig开始******************* mainmenu "Linux Kernel Configuration" ##*以下是不可选择部分, config GENERIC_GPIO bool ##注释:这样的不可选 config PAGE_OFFSET default 0xC0000000 ##*以下是一级菜单的显示 source "init/Kconfig" ## ??? menu "System Type" ##常见的config,包括config_ID标识(对应Makefile里的字符), bool/tristate, depends on和default. endmenu menu "Boot options" ##... endmenu ##*以下是 source "net/Kconfig" source "drivers/Kconfig" source "fs/Kconfig" ********Kconfig结束******************* (3)比如,移植过程中修改linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c中代码, 这部分代码对应Kernel Configure菜单树中的哪项 ? vi linux-2.6.32.2/arch/arm/mach-s3c2440/Makefile & vi linux-2.6.32.2/arch/arm/mach-s3c2440/Kconfig & 在Makefile中找到: obj-$(CONFIG_MACH_MINI2440) += mach-mini2440.o, 可知mach-mini2440.c编译出的.o文件的选项标识ID=MACH_MINI2440, 在Kconfig中找到: config MACH_MINI2440 的部分, 可以看到这个选项的显示字符是bool "FriendlyARM Mini2440 development board", 在Kernel Configure菜单树中,按/搜索MACH_MINI2440, 可以看到这个选项在:System Type -> S3C2440 Machines -> FriendlyARM Mini2440 development board,这样就找到了, 我们按照手册中修改mach-mini2440.c, 最后是要在这个选项里选择它, 然后保存在顶层的.config中, make内核的时候就会被链接进去了. Kernel Configure菜单树中,按/搜索选项ID,也能列出此选项ID对应的Kconfig, 格式: [Kernel Configure菜单树]:[对应Kconfig路径] System Type ->MMU-based Paged Memory:/arch/arm/mach-s3c2440/Kconfig System Type ->ADC common driver :/arch/arm/plat-s3c24xx/Kconfig System Type ->Force UART FIFO :/arch/arm/plat-s3c/Kconfig System Type ->S3C2440 Machines : Device Drivers->I2C support : /drivers/i2c/Kconfig Device Drivers->Watchdog : /drivers/watchdog/Kconfig Device Drivers->Block devices : /drivers/block/Kconfig File systems->Miscellaneous : /fs/Kconfig File systems->Miscellaneous->YAFFS2 :/fs/yaffs2/Kconfig File systems->Network File Systems :/fs/Kconfig File systems->Network File Systems->Root on NFS: /fs/nfs/Kconfig
相关阅读 更多 +