4.3.2. 配置 Uboot 和 Kernel 选项参数
在嵌入式系统开发中, Uboot 和 Kernel 的功能选项配置(也称为裁剪)是一个常见且关键的步骤。通过配置选项,用户可以根据系统的实际需求,去除不必要的功能,从而提升系统的效率和可靠性。以下是配置 Uboot 和 Kernel 选项的两种常用方法:xbuild 命令和手动配置。
4.3.2.1. 配置 Uboot 选项参数
使用 xbuild 命令配置
在 xbuild 编译系统中,提供了一个自动化工具来配置 Uboot 选项。使用以下命令可以简化配置流程,自动进行环境设置、生成配置文件并保存:
./bd.sh uboot menuconfig
# 或者使用快捷命令,先执行 source build/quickcmd.sh 配置环境后使用
bumc
命令执行成功后,系统会启动一个图形化的配置界面。用户可以在此界面中选择需要启用的功能或删除不需要的功能。
打开配置界面后,可以看到一系列选项,用户可以通过界面进行交互,选择要启用或禁用的功能。

完成配置后,选择
Exit退出,系统会提示是否保存修改,选择Yes保存配置到.config文件中。
自动保存和清理:
通过 ./bd.sh uboot menuconfig 启动的配置界面,当用户退出配置界面并保存时,xbuild 会自动执行以下步骤:
清理配置文件:使用
make savedefconfig命令对配置文件进行清理,保留必要的配置项,删除被依赖项,生成新的defconfig文件。更新配置文件:将生成的
defconfig文件复制到板级配置文件中,从而覆盖原有的 Uboot 配置文件。
示例操作如下:
make savedefconfig # 清理配置,删除被依赖项,生成 defconfig 文件
cp -f defconfig < 板级配置文件中的 Uboot 配置文件 > # 覆盖板级配置文件
手动配置
提示: 手动配置 Uboot 选项的过程是对 ./bd.sh uboot menuconfig 命令的分步操作。操作过程中,用到的配置文件和参数,需要用户知道含义和作用。
以下是手动配置的步骤,以配置 uboot/configs/hobot_x5_soc_defconfig 为例:
步骤一:进入 Uboot 目录并使用默认配置:
cd uboot make ARCH=arm64 hobot_x5_soc_defconfig
这个命令会加载
hobot_x5_soc_defconfig配置文件,设置 Uboot 编译环境,并在根目录下生成.config文件。执行命令的日志如下:$ make ARCH=arm hobot_x5_soc_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #
以上 make 命令功能解释(提示:理解即可,不需要实际执行):
make命令会首先执行位于顶级目录下的 Makefile 文件。在这个 Makefile 中,对于以config结尾的目标都有一个共同的入口:%config: scripts_basic outputmakefile FORCE $(Q)$(MAKE) $(build)=scripts/kconfig $@这段代码的展开效果为:
make -f ./scripts/Makefile.build obj=scripts/kconfig hobot_x5_soc_defconfig
步骤二:进入图形化配置界面:
make ARCH=arm menuconfig
执行命令后,会进入图形化配置界面,可以选择启用或禁用相关功能。

步骤三:保存配置并生成清理后的
defconfig文件:在配置完成后,选择
Exit退出,并根据提示保存配置。然后执行以下命令生成清理后的defconfig文件:make ARCH=arm savedefconfig

步骤四:对比修改前后的配置(可选)
为了确保修改符合预期,可以使用
diff命令对比配置文件的差异:diff defconfig configs/hobot_x5_soc_defconfig
步骤五:更新配置文件并清理编译环境:
将生成的
defconfig文件复制到源配置文件中,并清理编译环境:cp defconfig configs/hobot_x5_soc_defconfig # 覆盖源配置文件 # 清理源码目录下的 .config 等文件,否则在重新编译系统时会提示需要 xxx is not clean, please run 'make mrproper' make distclean # 或者使用错误提示的命令清理 make mrproper
步骤六:重新编译 Uboot
完成配置后,使用以下命令重新编译 Uboot:
./bd.sh uboot
4.3.2.2. 配置 Kernel 选项参数
使用 xbuild 命令配置
配置 Kernel 的方式与配置 Uboot 类似,xbuild 系统同样提供了图形化配置界面来帮助用户配置 Kernel 选项。执行以下命令可以打开 Kernel 配置界面:
./bd.sh boot menuconfig
# 或者使用快捷命令,先执行 source build/quickcmd.sh 配置环境后使用
bbmc
执行成功后,图形化配置界面将自动启动,用户可以在此界面中选择需要启用的功能或删除不需要的功能。
打开配置界面后,可以看到一系列选项,用户可以通过界面进行交互,选择要启用或禁用的功能。

配置完成后,选择
Exit退出,系统会提示是否保存修改,选择Yes保存配置到.config文件中。

自动保存和清理:
通过 ./bd.sh boot menuconfig 启动的配置,在配置退出后,xbuild 会自动执行以下步骤:
清理配置文件:使用
make savedefconfig命令清理配置文件,生成defconfig文件。更新配置文件:将
defconfig文件复制到板级配置文件中。
示例操作如下:
make savedefconfig # 清理并生成 defconfig 文件
cp defconfig < 板级配置文件中的 Kernel 配置文件 > # 覆盖板级配置文件
手动配置
提示: 手动配置 Kernel 选项的过程是对 ./bd.sh boot menuconfig 命令的分步操作。操作过程中,用到的配置文件和参数,需要用户知道含义和作用。
以下是手动配置的详细步骤, 以配置 kernel/arch/arm64/configs/hobot_x5_soc_defconfig 为例:
步骤一:进入 Kernel 目录并使用默认配置:
cd kernel make ARCH=arm64 hobot_x5_soc_defconfig
该命令会生成
.config文件,并为 Kernel 配置环境。步骤二:进入图形化配置界面
make ARCH=arm64 menuconfig
执行命令后,进入 Kernel 的图形化配置界面,用户可以选择启用或禁用各个功能。
步骤三:保存配置并生成清理后的
defconfig文件配置完成后,退出配置界面并保存,然后执行以下命令生成清理后的
defconfig文件:make ARCH=arm64 savedefconfig
步骤四:对比修改前后的配置(可选)
为了确保配置修改的准确性,可以对比修改前后的差异:
diff defconfig arch/arm64/configs/hobot_x5_soc_defconfig
步骤五:更新配置文件并清理编译环境
将新的
defconfig文件复制到源配置文件中,并清理编译环境:cp -f defconfig arch/arm64/configs/hobot_x5_soc_defconfig # 覆盖源配置文件 # 清理源码目录下的 .config 等文件,否则在重新编译系统时会提示需要 xxx is not clean, please run 'make mrproper' make distclean # 或者使用错误提示的命令清理 make mrproper
步骤六:重新编译 Kernel
完成配置后,使用以下命令重新编译 Kernel:
./bd.sh boot