itop4412学习记录
3.1 Menuconfig的操作
• Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁减掉
• menuconfig是生成.config的一个工具
• 在Linux发展过程中,配置内核可以使用一下命令:
– #make config(基于文本的最为传统的配置界面,不推荐使用)
– #make menuconfig(基于文本菜单的配置界面)
– #make xconfig(要求QT被安装)
– #make gconfig(要求GTK+被安装)
• 在Linux源码目录下输入命令make Menuconfig,可以进入配置界面
– menuconfig实现的代码在源码“scripts”目录下(了解即可)
• 常用操作
– 上下选择→按键“上下方向键”
– 左右选择→按键“左右方向键”
– 进入下级界面→按键“回车”
– 返回上级界面→选择“Exit”+按键“回车”
– 帮助→选择“help”+按键“回车”
• 搜索
– 界面输入“/”,输入查找关键词,输入“回车”即可搜索
• 使用“空格”键选择具体驱动配置,有三种状态
– “M”编译成模块(需要在编译文件里面特殊定义,后面介绍)
– “空”不编译状态
– “*”编译进内核
• 退出
– 不保存退出
– 保存退出
3.2 Kconfig和.config文件
(1)Kconfig
• Kconfig也是通过脚本编写而成,所以学会“仿写”即可
• Kconfig文件在每一级目录下都有,源码下的如下图所示,路径为/home/topeet/iTop4412_Kernel_3.0/Kconfig
– mainmenu菜单可以看到平台“arm”和内核版本“3.0.15”
driver目录下的Kconfig分析
举例:drivers/Kconfig文件source "drivers/char/Kconfig"与drivers/char/Kconfig的menu "Character devices"对应关系。
• menu "Device Drivers"菜单类
– source “xxx”
• menu "Character devices"
– source "xxx"
• 最终选项
– Enable LEDS config
(2).config文件
• 源码中带的config_for_xxx都是针对不同的操作系统或者功能裁减的.config文件。
3.3 Linux内核配置裁减(实验)
• 在Kconfig中的添加HELLO,然后查看menuconfig
• 将HELLO定义为“tristate”,可选为“M”状态
• 配置和裁减HELLO的驱动,查看.config文件的变化