正点原子嵌入式linux驱动开发——U-boot图形化配置及其原理

经过之前对uboot的学习可以知道:uboot可以通过stm32mp15_trusted_defconfig来配置,或者通过文件stm32mp1.h来配置uboot。还有另外一种配置uboot的方法,就是图形化配置,以前的uboot是不支持图形化配置,只有Linux内核才支持图形化配置。不过不知道从什么时候开始,uboot也
支持图形化配置了,本章就来学习一下如何通过图形化配置uboot,并且学习一下图形化配置的原理,因为后面学习Linux驱动开发的时候可能要修改图形配置文件。

U-Boot图形化配置体验

uboot或Linux内核可以通过输入“make menuconfig”来打开图形化配置界面menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先在Ubuntu中安装ncurses库,命令如下:

sudo apt-get install build-essential
sudo apt-get install libncurses5-dev

menuconfig重点会用到两个文件:.config和Kconfig.config文件前面已经说了,这个文
件保存着uboot的配置项
,使用menuconfig配置完 uboot以后肯定要更新.config文件。Kconfig文件是图形界面的描述文件,也就是描述界面应该有什么内容,很多目录下都会有Kconfig文件。

在打开图形化配置界面之前,要先使用“make xxx_defconfig”对uboot进行一次默认配置,只需要一次即可。如果使用“make clean”清理了工程的话就那就需要重新使用“ make xxx_defconfig”再对 uboot进行一次配置。进入uboot根目录,输入如下命令:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- stm32mp15_atk_trusted_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- menuconfig

如果已经在uboot的顶层Makefile中定义了ARCH和CROSS_COMPILE的值,那么上述命令可以简化为:

make stm32mp15_atk_trusted_defconfig
make menuconfig

打开的图形化界面如下图所示:
正点原子嵌入式linux驱动开发——U-boot图形化配置及其原理_第1张图片
上图就是主界面,主界面上方的英文就是简单的操作说明,操作方法如下:

通过键盘上的“↑”和“↓”键来选择要配置的菜单,按下“Enter”键进入子菜单。菜单中高亮的字母就是此菜单的热键,在键盘上按下此高亮字母对应的键可以快速选中对应的菜单。选中子菜单以后按下“Y”键就会将相应的代码编译进Uboot中,菜单前面变为“[*]”。按下“N”键不编译相应的代码,按下“M”键就会将相应的代码编译为模块,菜单前面变为“[M]”。按两下“Esc”键退出,也就是返回到上一级,按下“?”键查看此菜单的帮助信息,按下“/”键打开搜索框,可以在搜索框输入要搜索的内容。


在配置界面下方会有五个按钮, 这五个按钮的功能如下: