错误linux autocof.h,十一、移植优化---CONFIG 优化进 menuconfig(2)

11.3 jz2440.h 中的剩余宏移植

11.3.1 CONFIG_SYS_TEXT_BASE

CONFIG_SYS_TEXT_BASE:设置系统代码段的基地址,设为 0x0;menuconfig 中已经有了此宏,可以去掉。

11.3.2 CONFIG_SYS_GENERIC_BOARD

这个宏的作用是让每块板子加入自己的配置文件,具体可以查看文档 doc/README.generic-board

这个不需要移植

11.3.3 CONFIG_DOS_PARTITION

DOS 分区,我们不需要,删除掉,这个已经在 menuconfig 中可配

11.3.4 CONFIG_BAUDRATE

可配置,删除

11.3.5 BOOTP options

BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址。

若我们开启了网卡,可以开启bootp

CONFIG_BOOTP_BOOTFILESIZE:menuconfig 中无法配置,保持原状

CONFIG_BOOTP_BOOTPATH:可直接在 menuconfig 中配置

CONFIG_BOOTP_GATEWAY:可直接在 menuconfig 中配置

CONFIG_BOOTP_HOSTNAME:可直接在 menuconfig 中配置

11.3.6 Command line configuration

CONFIG_CMD_BSP:此命令被遗弃,若是需要,则为每一个命令定义一个Kconfig选项即可,但是现在仍然在menuconfig存在,打开。

CONFIG_CMD_CACHE:使能 icache 和 dcache 的宏,可配,打开

CONFIG_CMD_DATE:从 RTC 中获取或设置时间和日期,可配,打开

CONFIG_CMD_DHCP:通过网络使用 DHCP/TFTP协议启动镜像,可配置,打开

CONFIG_CMD_PING:发送 ICMP ECHO_REQUEST 给网络主机,可配置,打开

CONFIG_CMD_USB:USB支持,可配置,打开

11.3.7 CONFIG_SYS_HUSH_PARSER

以前的 uboot 版本对应文件:cmd_exit.c 和 cmd_test.c,当前版本对应文件:exit.c 和 test.c。

宏被切换成了 CONFIG_HUSH_PARSER:

41a5349019dbeaa159e4955e95e109ed.png

这个选项使命令行解释器可以使用“hush”shell(来自Busybox),从而启用强大的命令行语法,如if ... then ... else ... fi条件或'&&'和'||' 构造(“shell脚本”)。

menuconfig 有对应宏。可打开,删除文件中定义。但 uboot 制作启动linux 内核用,可以关闭掉,自己选择

11.3.8 autoboot

CONFIG_BOOTDELAY:在自运行 bootcmd 前的延迟,可设置读秒为 5 或其他任意整数。在uboot启动后会倒计时CONFIG_BOOTDELAY,如果没有收到用户的输入则自动去执行宏CONFIG_BOOTCOMMAND中设置的命令

设置为 0,没有延迟的自启动,但是可以通过按键输入停止启动

设置为-1:不使能自启动

设置为-2,没有延迟的自启动,且不可以通过按键中断启动

CONFIG_BOOT_RETRY_TIME:这个就是 uboot 重复尝试启动的特性,如果设置的值为负数,则不使能。在板子头文件中配置的,不需要修改。

CONFIG_RESET_TO_RETRY:仅仅当CONFIG_BOOT_RETRY_TIME开启的时候,才使能。在 CONFIG_BOOT_RETRY_TIME 计数超出后,板子将复位重新启动。一样保持默认

CONFIG_ZERO_BOOTDELAY_CHECK:在以前版本中的作用为,如果它被定义,则可以通过点击任意键来停止自启动程序,即使 CONFIG_BOOTDELAY 设置为0。

这个宏当前可以用 CONFIG_AUTOBOOT_KEYED 代替,关闭 CONFIG_AUTOBOOT_KEYED 就可以使用任意键来中断自动了,如果打开 CONFIG_AUTOBOOT_KEYED,则是通过特殊的按键和字符串来终止自启动

可以保留也可以删除

11.3.9 调试设置

CONFIG_CMD_KGDB:KGDB 调试,设置了此宏后,需要定义 CONFIG_KGDB_BAUDRATE 即串口的调试波特率 115200

可以删掉此选项,CONFIG_CMD_KGDB 可配置,CONFIG_KGDB_BAUDRATE 则在板子配置文件中加入即可。

11.3.10 杂项设置

CONFIG_SYS_CBSIZE:从终端输入的缓存最大大小

CONFIG_SYS_PBSIZE:终端输出的缓存的最大大小

CONFIG_SYS_MAXARGS:终端接收到的命令参数最大个数

CONFIG_SYS_BARGSIZE:启动时候,传递给内核的启动参数的最大缓存

CONFIG_SYS_MEMTEST_START:简单内存测试使用的区域的开始地址

CONFIG_SYS_MEMTEST_END:简单内存测试使用的区域的结束地址

CONFIG_SYS_LOAD_ADDR:这个宏是属于内核启动相关宏,默认加载地址,这个主要是内核下载的地址,如果我们在 tftp 或是 bootcmd 命令中没有指定地址,那么内核就自动加载到此地址。

这几个宏定义在板子的配置文件中。

11.3.11 压缩方式

CONFIG_BZIP2:需要添加进Kconfig 才可见,同样可删除

CONFIG_LZO:可配置,直接选中,删除文件即可

CONFIG_BZIP2 添加:lib/Kconfig

08161b8d07317a52b3f7d74fb70b03a1c22.png

11.3.12 环境变量

CONFIG_ENV_IS_IN_FLASH:在 flash 中保存环境变量,可配置

CONFIG_ENV_SIZE:环境变量大小,可配置,JZ2440 默认为 0x10000 (64KB),JZ2440 在menuconfig 中不可配置

11.3.13 文件系统

CONFIG_CMD_EXT2

CONFIG_CMD_MTDPARTS

CONFIG_MTD_DEVICE

CONFIG_MTD_PARTITIONS

CONFIG_MTD_PARTITIONS

CONFIG_RBTREE

uboot不需要支持文件系统 全部干掉即可,也在 menuconfig 中可配置

11.4 comm: file 2 is not in sorted order

uboot 编译最后执行的命令如下:

8e32e09ed5e6fc00afafeee87bc54e63661.png

在 check-config.sh  脚本中,对 u-boot.cfg 进行有序检查,与 ./scripts/cofnig_whitelist.txt 进行对比。

执行 comm -23 --nocheck-order ${configs} ${whitelist} > ${suspects} 此条命令的时候报错。

comm 加入 --nocheck-order 可以屏蔽此条错误。

comm -23 --nocheck-order ${configs} ${whitelist} > ${suspects}

我对 config_whitelist.txt 进行过重新排序:cat ./scripts/config_whitelist.txt | sort -u -o 1.txt

之后对比两个文件,发现有很大的不同,不知道 uboot 中是怎么对 config_whitelist.txt 进行排序的,应该不是按照  ASCII 进行排序的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值