配置介绍(代码片段)

kele-dad kele-dad     2022-11-07     806

关键词:

1.1 常用命令  

  当前 uboot 的配置已经完全变成Linux 内核的配置形式了,完全可以按照Linux 内核的分析方是区分析 uboot。

  uboot 和 Linux的代码配置项由 Kconfig 来完成的,关于 Kconfig 语法,可参见:linux/Documentation/kbuild/kconfig-language.txt

  在编译时,先进行配置,目的是根据需求选择功能以及编译生成方式类型(模式或包含在内核中).

  配置项操作可以由如下命令中的其中一条来完成:

   make config, make menuconfig, make oldconfig, make xx_defconfig

  • make config:这个要求用户手动选择所有配置项,配置完成后生成 .config 文件。
  • make menuconfig:显示以curses的图形配置菜单,当已有.config文件存在时,它会根据 .config 文件设定默认项。若不存在 .config 文件,则根据各级 Kconfig 文件来设定菜单项。完成配置后,生成.config文件。
  • make oldconfig:与 make menuconfig 相同,区别在于这个没有图形界面,当已有 .config 文件存在时,它根据.config文件设定默认项,若kconfig有新配置项时,会提示你进行选择;若不存在 .config 文件,则根据各级 Kconfig 文件来设定菜单项。完成配置后,生成 .config 文件。

  若已存在 .config 文件,make menuconfig 及 make oldconfig 都会把原 .config 另存为 .config.old。

  • make xx_defconfig: 一般源码中都有不同硬件平台的默认配置文件,你也可以制做自己的默认配置文件,当这个命令执行时,它会根据 kconfig 及 xx_defconfig 来生成 .config 文件。

  在执行完其中一条 config 命令后,会生成 .config 及 autoconf 文件,autoconf 是根据配置项生成的相应宏定义,供 makefile 使用,当执行 make 命令时,就会根据 autoconf 定义的宏及 makefile 去编译源码。

  u-boot的编译跟kernel编译一样,分两步执行: 
  - 第一步:配置,执行make xxx_defconfig进行各项配置,生成.config文件 
  - 第二部:编译,执行make进行编译,生成可执行的二进制文件u-boot.bin或u-boot.elf

1.2 make xxx_defconfig 命令执行分析

  由于 2008.03 的 uboot 版本中已经遗弃了 2440 所以我们选择一块其他开发板进行分析。

  执行命令:make smdkc100_defconfig V=1

  V = 1 的意思是打开编译过程

  过程如下:

 1 make -f ./scripts/Makefile.build obj=scripts/basic
 2   cc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer      -o scripts/basic/fixdep scripts/basic/fixdep.c  
 3 rm -f .tmp_quiet_recordmcount
 4 make -f ./scripts/Makefile.build obj=scripts/kconfig smdkc100_defconfig
 5   cc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer    -D_GNU_SOURCE -DCURSES_LOC="<ncurses.h>" -DLOCALE   -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
 6   cat scripts/kconfig/zconf.tab.c_shipped > scripts/kconfig/zconf.tab.c
 7   cat scripts/kconfig/zconf.lex.c_shipped > scripts/kconfig/zconf.lex.c
 8   cat scripts/kconfig/zconf.hash.c_shipped > scripts/kconfig/zconf.hash.c
 9   cc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer    -D_GNU_SOURCE -DCURSES_LOC="<ncurses.h>" -DLOCALE  -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
10   cc  -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o  
11 scripts/kconfig/conf  --defconfig=arch/../configs/smdkc100_defconfig Kconfig
12 #
13 # configuration written to .config
14 #

  技术分享图片

  这一项是生成了 scripts/basic/fixdep 工具

  技术分享图片

  这一项是生成了 scripts/kconfig/conf 工具

  技术分享图片

  最后执行 scripts/kconfig/conf 工具 生成.config

   可以知道 make xxx_defconfig 的执行主要分成三个部分:

  1. 执行 make -f ./scripts/Makefile.build obj=scripts/basic,编译生成 scripts/basic/fixdep 工具
  2. 执行 make -f ./scripts/Makefile.build obj=scripts/kconfig rpi_3_32b_defconfig 编译生成 scripts/kconfig/conf 工具
  3. 执行 scripts/kconfig/conf --defconfig=arch/../configs/xxx_defconfig Kconfig生成最终的 .config 配置文件 

     

 



配置介绍(代码片段)

1.1常用命令    当前uboot的配置已经完全变成Linux内核的配置形式了,完全可以按照Linux内核的分析方是区分析uboot。  uboot和 Linux的代码配置项由Kconfig来完成的,关于Kconfig语法,可参见:linux/Documentation/kbuild/kconfig-language.tx... 查看详情

spring配置使用介绍(代码片段)

Spring配置使用介绍文章目录Spring配置使用介绍一、集合类型注入1、注解形式2、xml形式二、alias使用1、xml形式2、注解形式三、depends-on1、xml形式2、注解形式四、继承关系五、scope1、xml形式2、注解形式六、replaced-method七、配置文... 查看详情

harbor仓库使用介绍(高可用配置)(代码片段)

Harbor仓库使用介绍(高可用配置)一、Harbor简介1.Harbor功能介绍2.Harbor高可用方式二、Harbor仓库使用介绍1.安装Docker2.安装Docker-Compose3.配置Harbor4.Harbor高可用配置1)安装Nginx服务2)修改Nginx配置文件3)Harbor界面... 查看详情

nfs介绍,配置(上)(代码片段)

...rpcbind监听111端口2.NFS服务需要借助于rpc协议NFS服务端安装配置1.服务端安装两个服务:[[email protected]~]#yuminstall-ynfs-utilsrpcbind2.客户端安装一个服务:[[email protected]~]#yuminstall-ynfs-utils3.服务端编辑配置文件:[[em 查看详情

nacos概念介绍配置模型(代码片段)

概念介绍配置集(ConfigurationSet)⼀个配置文件就是⼀个配置集。新建配置集路径:配置管理-配置列表-添加按钮命名空间(Namespace)用于配置文件隔离,例如:区分不同租户,开发环境、生产环境... 查看详情

centos7冗余备份磁盘配置介绍(代码片段)

Centos7冗余备份磁盘配置介绍我们上一盘介绍了Centos7磁盘阵列配置介绍,今天继续上一篇的配置介绍,通过上一篇的配置介绍我们发现了一个问题。,运维人员需要在硬盘硬件出现故障后,手动增加新的硬盘进去,这样很不方便... 查看详情

mycat配置文件的详细介绍(代码片段)

mycat配置文件的详细介绍其中三大配置文件为:server.xmlschema.xmlrule.xml常用配置文件间的关系由上图可以看到Mycat的核心配置文件均采用xml格式,这几个配置文件的用途如下:server.xml:用于配置系统参数、用户信息、访问权限及SQL... 查看详情

springmvc介绍(代码片段)

...SpringMVC的运行原理SpringMVC的使用1、依赖jar包2、在web.xml中配置前端控制器3、创建SpringMVC的配置文件4、编写controller层5、编写jsp页面日志分析1、日志依赖2、日志配置文件3、日志打印数据插入示例mapper.java接口文件mapper.xml文件删... 查看详情

spring介绍(代码片段)

Spring介绍介绍IOC介绍Spring容器管理对象1、添加依赖2、配置spring配置文件(applicationCintext.xml)3、创建实体类4、spring来管理容器5、通过容器获取对象Spring中DI介绍Spring中bean实例和依赖注入基于注解形式使用spring和mybatis的整合1、引... 查看详情

gitbook实用配置及插件介绍(代码片段)

配置title设置书本的标题"title":"GitbookUse"author作者的相关信息"author":"zhangjikai"description本书的简单描述"description":"记录Gitbook的配置和一些插件的使用"languageGitbook使用的语言,版本2.6.4中可 查看详情

nacos配置中心用法详细介绍(代码片段)

...cos作为注册中心的用法,除此之外,Nacos还能作为配置中心使用,那这篇文章就介绍下Nacos作为配置中心的基本用法,首先我们先了解下为什么需要使用配置中心。一、为什么需要配置中心:在没有配置中心之... 查看详情

springboot全局配置文件介绍(代码片段)

全局配置文件能够对一些默认配置值进行修改。SpringBoot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针... 查看详情

springboot全局配置文件介绍(代码片段)

全局配置文件能够对一些默认配置值进行修改。SpringBoot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针... 查看详情

rocketmq(16)——nameserver可配置参数介绍(代码片段)

NameServer可配置参数介绍NameServer是通过RocketMQ的bin目录下的mqnamesrv指令启动的,之前介绍的都是不带任何参数直接启动的,实际上该指令还可以带一些参数。通过mqnamesrv-h可以查看mqnamesrv指令可以配置的一些参数。$bin/mqnamesrv-husage... 查看详情

rocketmq(16)——nameserver可配置参数介绍(代码片段)

NameServer可配置参数介绍NameServer是通过RocketMQ的bin目录下的mqnamesrv指令启动的,之前介绍的都是不带任何参数直接启动的,实际上该指令还可以带一些参数。通过mqnamesrv-h可以查看mqnamesrv指令可以配置的一些参数。$bin/mqnamesrv-husage... 查看详情

android逆向android环境配置与常用工具介绍(代码片段)

【Android逆向】Android环境配置与常用工具介绍1.写在前面2Android的简单介绍3配置Android开发环境①配置`JavaSEDevelopmentKit(JDK)`。②安装AndroidStudio(需要科学上网,否则无法正常使用)遇到报错-HAXM(IntelHardwareAcceleratedExecutionManage... 查看详情

mybatis介绍(代码片段)

mybatis介绍mybatismybatis的使用步骤1、引入mybatis依赖2、配置全局配置信息(nybatis-config.xml)3、Pojo类(Student.java)4、mapper接口文件(StudentMapper.java)5、mapper的xml文件6、执行查询操作日志分析1、日志依赖2、日志配置文件3、日志打印数据插... 查看详情

集群介绍keepalived介绍用keepalived配置高可用集群(代码片段)

集群介绍keepalived介绍用keepalived配置高可用集群keepalived他需要包含一个服务,比如这个服务用来实现高可用,最早讲述集群的时候一个角色可能存在单点故障,如果这个服务当机就有问题了,现在想让这个服务高可用就得用一个... 查看详情