1. uboot介绍
bootloader:引导加载程序的统称
uboot是引导加载程序中的一种
1.1 uboot特点
- uboot是一个开源分布式软件
- uboot是由德国DNEX小组进行维护
- uboot支持多种硬件架构平台
- uboot是一个裸机开发程序
- uboot占用体积小
- uboot主要作用引导linux内核进行启动,并且内核启动成功之后,uboot生命周期结束
1.2 uboot命令
1.3 如何设置uboot命令
1.4 uboot启动模式
交互模式
自启动模式
2. 组网步骤(重点)
2.1 组网准备工作
2.2 ubuntu网络配置
2.3 开发板网络配置
2.4 测试网络是否成功
移植uboot前准备工作
3. uboot源码获取
4. 源码准备工作
4.1 准备源码
4.2 分析源码
5. 如何确定<board_name>名字
5.1 方式一
0、ubuntu连接网络成功,安装库:sudo apt-get install bison flex
1、通过以上分析可知默认的默认板子相关配置命令为make <board_name>_defconfig,所以在uboot源码目录下执行相关配置命令
linux@ubuntu:~/FSMP1A/u-boot-2021.07$ make fsmp1a_defconfig***
*** Can't find default configuration "arch/../configs/fsmp1a_defconfig"!
***
解释:不能找到默认的配置信息“arch/../configs/fsmp1a_defconfig”
2、进入uboot源码目录下, arch/../configs/目录下,查看相关的配置信息有哪些
stm32mp15_basic_defconfig : uboot非安全版本默认配置
stm32mp15_trusted_defconfig : uboot安全版本默认配置
5.2 方式二
1、在uboot源码目录下,执行make fsmp1a_defconfig命令,因为有make参与,所以在Makefile中,可以找到目标
2、在uboot源码目录下,打开Makefile文件,搜索config目标
563 %config: scripts_basic outputmakefile FORCE
564 @echo "hello DC23101"
565 @echo $(Q)
566 @echo $(MAKE)
567 @echo $(build)
568 @echo $@
569 $(Q)$(MAKE) $(build)=scripts/kconfig $@3、在uboot源码目录下,执行make fsmp1a_defconfig,查看到变量的打印信息
564 @echo "hello DC23101" ====> 打印内容:hello DC23101
565 @echo $(Q) ====> 打印内容:@
566 @echo $(MAKE) ====> 打印内容: make
567 @echo $(build) ====> 打印内容:-f ./scripts/Makefile.build obj
568 @echo $@ ====>打印内容: fsmp1a_defconfig
4、在uboot源码目录下,再次打开Makfile文件,将$(Q)变量去掉,查看打印信息
563 %config: scripts_basic outputmakefile FORCE
564 @echo "hello DC23101"
565 @echo $(Q)
566 @echo $(MAKE)
567 @echo $(build)
568 @echo $@
569 $(MAKE) $(build)=scripts/kconfig $@
5、在uboot源码目录下,执行make fsmp1a_defconfig,查看到变量的打印信息
make -f ./scripts/Makefile.build obj=scripts/kconfig fsmp1a_defconfig
6、在uboot源码目录下,进入scripts/kconfig目录,打开Makefile文件,搜索defconfig
linux@ubuntu:~/FSMP1A/u-boot-2021.07$ cd scripts/kconfig/
linux@ubuntu:~/FSMP1A/u-boot-2021.07/scripts/kconfig$ vi Makefile
109 %_defconfig: $(obj)/conf
110 @echo "hello world"
111 $< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
7、 在uboot源码顶层目录下,执行make fsmp1a_defconfig,查看到变量的打印信息
hello world
scripts/kconfig/conf --defconfig=arch/../configs/fsmp1a_defconfig Kconfig
解释:conf是一个可执行文件,将目标和Kconfig作为参数传递给conf,最终生成配置文件相关内容
scripts/kconfig/conf:可执行文件
--defconfig=arch/../configs/fsmp1a_defconfig : 目标
Kconfig: 存放板子相关默认的配置信息