关闭

Linux 内核配置

237人阅读 评论(0) 收藏 举报
分类:
一 Linux 内核配置 


(1)修改Makefile添加自己的交叉开发工具链 


#ARCH ?= $(SUBARCH)
#CROSS_COMPILE ?=
#CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)


#添加的自己的平台和开发工具链
ARCH = arm
CROSS_COMPILE = arm-cortex_a8-linux-gnueabi-


(2)添加配置文件
第一种方法:
[1]将平台默认的配置文件拷贝到Linux内核的顶层目录,命名为.config 


例如:
cp arch/arm/configs/s5pc100_defconfig .config


[2]通过make menuconfig命令配置一下内核


第二种方法:
[1]make  默认配置文件
例如:
make s5pc100_defconfig




注意:
通过make menuconfig需要确认:
[1]当前平台的是否正确
[2]是通过那个串口输出信息
[3]需要配置的设备驱动和服务


(3)make 编译内核 


顶层目录:vmlinux       elf格式的Linux内核
arch/arm/boot/Image    去掉elf头和符号信息之后的Linux内核
arch/arm/boot/zImage   通过gzip压缩后,添加了自解压代码之后的Linux内核
arch/arm/boot/compressed/vmlinux 通过gzip压缩后,添加了自解压代码之后的Linux内核(elf格式)


二 Kconfig和Makefile 


1.Makefile : 完成对文件编译
基本语法
[1]obj-y += dir/ 或 obj-y += file
   表示对应目录需要编译进内核或指定的文件需要编译进内核


[2]obj-CONFIG_XXX += dir/ 或 obj-CONFIG_XXX += file
   表示对应目录或文件是否需要编译进内核,取决于CONFIG_XXX宏的定义


2.Kconfig : 提供内核的配置菜单选项


配置选项
config 选项名
属性1
属性2 


[1]选项名 
config HELLO


展现的形式:CONFIG_HELLO,在.config文件中定义 


[2]属性 
(1)选择类型
<1>tristate   y:编译进内核  m:编译成模块  n:不编译 
   <2>bool       y:编译进内核  n:不编译 
<3>string     CONFIG_选项名="字符串"
<4>int        CONFIG_选项名=整数 
<5>hex        CONFIG_选项名=十六进制数

(2)提示字符串
  prompt "提示字符串"


(3)range  指定值的范围


(4)help   帮助信息
help 
 "test help ..."


(5)default  当没有进行配置的时候,默认的选择是什么
例如:
config HELLO 
tristate 
prompt "hello support"
default y 


(6)depends on  配置选项名 
 [1]depends on 配置选项名 
 [2]depends on 配置选项名1 || 配置选项名2 
 [3]depends on 配置选项名1 && 配置选项名3
 
 y:2  m:1  n:0
 && -> 最小值
 || -> 最大值


 注意:如果依赖的结果为0:不可见,2:三态,1:2态

(7)select  配置选项名
 当前配置选项被选中的时候,同时选择select 指定的配置型选项


注意:(1)和(2)必须有,其它可选择
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:84404次
    • 积分:2775
    • 等级:
    • 排名:第12890名
    • 原创:101篇
    • 转载:27篇
    • 译文:100篇
    • 评论:6条