<Linux开发> -之-系统移植 uboot移植过程详细记录(第三部分)(uboot移植完结)

7 篇文章 1 订阅
3 篇文章 1 订阅

<Linux开发> -之-系统移植 uboot移植过程详细记录(第三部分)

<Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分)
<Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分)

本节,主要讲解一下U-Boot图形化配置大致流程。

一、安装支持库
通过下面命令在ubuntu中安装ncurses库:

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

二、图形化配置
1、在uboot移植完成第一部分,和第二部分之后的uboot文件夹根目录下,输入下main命令:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_onefu_emmc_defconfig 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig 

或将“mx6ull_onefu_emmc.sh”更改为下面内容:

#!/bin/bash
#清理工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
#执行配置uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_onefu_emmc_defconfig
#执行图形配置界面
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
#执行编译
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

#注1: ARCH=arm  设置目标为arm架构
#注2: CROSS_COMPILE=arm-linux-gnueabihf-    指定编译工具链前缀
#注3: V=1  用于设置编译过程的信息输出级别
#注4-j16 使用16核编译uboot

相比与之前,增加了一句“make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig”。
赋予“mx6ull_onefu_emmc.sh”可执行权限,然后运行““mx6ull_onefu_emmc.sh””。

chmod 777 mx6ull_onefu_emmc.sh
./mx6ull_onefu_emmc.sh

2、图形化界面介绍

等待配置完成后会弹出图形化界面,如下:
在这里插入图片描述
主界面上方的英文就是简单的操作说明,操作方法如下: 通过键盘上的“↑”和“↓”键来选择要配置的菜单,按下“Enter”键进入子菜单。菜单中高亮的字母就是此菜单的热键,在键盘上按下此高亮字母对应的键可以快速选中对应的菜单。选中子菜单以后按下“Y”键就会将相应的代码编译进Uboot中,菜单前面变为“< * >”。按下“N”键不编译相应的代码,按下“M”键就会将相应的代码编译为模块,菜单前面变为“< M >”。按两下“Esc”键退出,也就是返回到上一级,按下“?”键查看此菜单的帮助信息,按下“/”键打开搜索框,可以在搜索框输入要搜索的内容。
在配置界面下方会有五个按钮,这五个按钮的功能如下:
:选中按钮,和“Enter”键的功能相同,负责选中并进入某个菜单。
:退出按钮,和按两下“Esc”键功能相同,退出当前菜单,返回到上一级。
:帮助按钮,查看选中菜单的帮助信息。
:保存按钮,保存修改后的配置文件。
:加载按钮,加载指定的配置文件。

在上图中共有13个配置主配置项,通过键盘上的上下键调节配置项。后面跟着“—>”表示此配置项是有子配置项的,按下回车键就可以进入子配置项。

以如何使能dns命令为例,讲解一下如何通过图形化界面来配置uboot。进入“Command line interface —>”这个配置项,此配置项用于配置uboot的命令,进入以后如下图所示:
在这里插入图片描述
从上图可以看出,有很多配置项,这些配置项也有子配置项,选择“Network commands —>”,进入网络相关命令配置项,如下图所示:
在这里插入图片描述
从上图可以看出,uboot中有很多和网络有关的命令,比如bootp、tftpboot、dhcp等等。选中dns,然后按下键盘上的“Y”键,此时dns前面的“[ ]”变成了“[ * ]”,如下图所示:
在这里插入图片描述
每个选项有3种编译选项:编译进uboot中(也就是编译进u-boot.bin中)、取消编译(也就是不编译这个功能模块)、编译为模块。按下“Y”键表示编译进uboot中,此时“[ ]”变成了“[ * ]”;按下“N”表示不编译,“[ ]”默认表示不编译;有些功能模块是支持编译为模块的,这个一般在Linux内核里面很常用,uboot下面不使用,如果要将某个功能编译为模块,那就按下“M”,此时“[ ]”就会变为“< M >”。

细心的朋友应该会发现,在mx6ull_onefu_emmc.h里面我们配置使能了dhcp和ping命令,但是在图34.1.3中dhcp和ping前面的“[ ]”并不是“[ * ]”,也就是说不编译dhcp和ping命令,这不是冲突了吗?实际情况是dhcp和ping命令是会编译的。之所以在图34.1.3中没有体现出来时因为我们是直接在mx6ull_onefu_emmc.h中定义的宏CONFIG_CMD_PING和CONFIG_CMD_DHCP,而menuconfig是通过读取.config文件来判断使能了哪些功能,.config里面并没有宏CONFIG_CMD_PING和CONFIG_CMD_DHCP,所以menuconfig就会识别出错。
选中dns,然后按下“H”或者“?”键可以打开dns命令的提示信息。

按两下ESC键即可退出提示界面,相当于返回上一层。选择dns命令以后,按两下ESC键(按两下ESC键相当于返回上一层),退出当前配置项,进入到上一层配置项。如果没有要修改的就按两下ESC键,退出到主配界面,如果也没有其他要修改的,那就再次按两下ESC键退出menuconfig配置界面。如果修改过配置的话,在退出主界面的时候会有如下图所示提示:
在这里插入图片描述
上图询问是否保存新的配置文件,通过键盘的←或→键来选择“Yes”项,然后按下键盘上的回车键确认保存。至此,我们就完成了通过图形界面使能了uboot的dns命令,打开.config文件,会发现多了“CONFIG_CMD_DNS=y”这一行,如下图中的红框所示:
在这里插入图片描述
3、编译
在上面配置完DNS后,退出后,会接着编译。
在这里插入图片描述
编译完成后,下载到SD卡,并插入开发板启动。
重启开发板进入uboot命令模式,输入“?”查看是否有“dns”命令,一般肯定有的。
在这里插入图片描述

测试一下dns命令工作是否正常,使用dns命令来查看一下百度官网“www.baidu.com”的IP地址。要先设置一下dns服务器的IP地址,也就是设置环境变量dnsip的值,命令如下:

setenv dnsip 114.114.114.114 
saveenv 

在这里插入图片描述
设置好以后就可以使用dns命令查看百度官网的IP地址了,输入命令:

dns www.baidu.com

在这里插入图片描述
可以看出,“www.baidu.com”的IP地址为14.215.177.38,说明dns命令工作正常。这个就是通过图形化命令来配置uboot,一般用来使能一些命令还是很方便的,这样就不需要到处找命令的配置宏是什么,然后在到配置文件里面去定义。

至此,图形化配置的大致过程就以DNS的例子讲解一遍,对于其它参数也可通过这种图形化配置。

如想了解更过图形化配置,可惨开正点原子linux开发手册,或网上自行查找相关资料学习。

linux开发中的系统移植的uboot移植部分,已全部讲解完成。
后续将继续推出linux移植和文件系统移植。

<Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分)
<Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Rockchip RK3566是一款由Rockchip推出的高性能应用处理器,其集成了四核ARM Cortex-A55 CPU和ARM Mali-G52 GPU。在移植U-Boot 2023.04时,我们需要考虑以下几个方面的工作: 1. 了解RK3566芯片的硬件架构和技术规格,包括处理器核心、内存控制器、外设接口等。这将有助于理解U-Boot如何与硬件交互,并进行相应的配置。 2. 下载并准备U-Boot 2023.04的源代码。在Rockchip官方网站或开源社区中可以找到最新的U-Boot源代码。将其下载并解压到开发机上。 3. 设置交叉编译环境。因为U-Boot是一个跨平台的项目,所以需要配置适合RK3566的交叉编译器,确保能够正确编译U-Boot源代码。 4. 配置U-Boot据RK3566的硬件架构和技术规格,需要进行相应的配置,包括处理器、内存、外设等设置。这些设置在U-Boot的配置文件中进行,可以据需求进行修改。 5. 编译U-Boot。在配置好U-Boot后,使用交叉编译器编译U-Boot源代码。编译完成后,将生成的U-Boot二进制文件烧录到RK3566的启动设备上,如eMMC或SD卡。 6. 测试U-Boot。将准备好的启动设备插入RK3566开发板中,开发板的启动方式,进入U-Boot命令行界面。在命令行界面中可以进行各种操作和调试,如加载内核、启动操作系统等。 7. 调试和优化。在移植和测试U-Boot过程中,可能会出现一些问题和不稳定的情况。需要通过调试和优化来解决这些问题,确保U-Boot的正常运行和稳定性。 总之,移植U-Boot 2023.04到Rockchip RK3566需要了解芯片的硬件架构和技术规格,配置和编译U-Boot源代码,进行测试和调试。这样可以确保U-Boot能够与RK3566正常交互,并为后续的操作系统加载和启动提供基础支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waterfxw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值