赞
踩
以前的 uboot 是不支持图形化配置,只有 Linux 内核才支持图形化配置。不过不知道从什么时
候开始, uboot 也支持图形化配置了.
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-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
如果已经在 uboot 的顶层 Makefile 中定义了 ARCH 和 CROSS_COMPILE 的值,那么上述
命令可以简化为:
make mx6ull_alientek_emmc_defconfig
make menuconfig
打开后的图形化界面如下图所示:
通过键盘上的“↑”和“↓”键来选择要配置的菜单**,按下“Enter键进入子菜单**。菜单
中高亮的字母就是此菜单的热键,在键盘上按下此高亮字母对应的键可以快速选中对应的菜单。
选中子菜单以后按下**“Y”键就会将相应的代码编译进 Uboot 中**,菜单前面变为“< * >”。按下
“N”键不编译相应的代码,按下“M”键就会将相应的代码编译为模块,菜单前面变为“< M >”。
按两下“Esc”键退出,也就是返回到上一级,按下“?”键查看此菜单的帮助信息,按下“/”键打开搜索框,可以在搜索框输入要搜索的内容。
在配置界面下方会有五个按钮,这五个按钮的功能如下:
:选中按钮,和“Enter”键的功能相同,负责选中并进入某个菜单。
:退出按钮,和按两下“Esc”键功能相同,退出当前菜单,返回到上一级。
:帮助按钮,查看选中菜单的帮助信息。
:保存按钮,保存修改后的配置文件。
:加载按钮,加载指定的配置文件。
以DNS为例,配置如下:
使用如下命令编译 uboot:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
千万不能使用如下命令:
./mx6ull_mybsp_emmc.sh
因为 mx6ull_mybsp_emmc.sh 在编译之前会清理工程,会删除掉.config 文件!通过图形化界面配置所有配置项都会被删除。
为了防止每次编译器之前清理掉工程,可以save到指定路径下,在下次make menuconfig 打开界面时,可以使用Load去加载之前的配置文件。
修改完毕后再使用
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
如果makefile 中指定了ARCH 和 CROSS_COMPILE,则直接输入:
make -j16
chmod 777 imxdownload //给予 imxdownload 可执行权限
./imxdownload u-boot.bin /dev/sda //烧写 u-boot.bin 到 SD 卡中
烧写完成以后将 SD 卡插入 I.MX6U-MINI 开发板的 TF 卡槽中,最后设置开发板从 SD卡启动。打开 mobaxterm,设置好开发板所使用的串口并打开,复位开发板。
编译完成以后烧写到 SD 卡中, 重启开发板进入 uboot 命令模式, 输入 “?” 查看是否有 “dns”命令,一般肯定有的。测试一下 dns 命令工作是否正常,使用 dns 命令来查看一下百度官网“www.baidu.com”的 IP 地址。要先设置一下 dns 服务器的 IP 地址,也就是设置环境变量 dnsip的值,mobaxterm中输入命令如下:
setenv dnsip 114.114.114.114
saveenv
dns www.baidu.com
打开顶层 Kconfig,在最后面加入如下代码:
menu "My test menu"
config MY_TESTCONFIG
bool "This is my test config"
default y
help
This is a empty config, just for test!
endmenu # my test menu
添加完成以后使用 make menuconfig 打开图形化配置界面:
再点击Enter 进去子菜单:
从图可看出配置项 MY_TESTCONFIG 默认也是被选中的,因此在.config 文件中肯定会有“CONFIG_MY_TESTCONFIG=y”这一行,如下图所示:
到此为止,自定义菜单添加成功了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。