一、u-boot-env 是什么?

1、概述

u-boot-env 是 U-Boot 启动过程中的一个环境变量。它保存了一些与启动相关的参数和配置信息,如开机参数、内核参数、根文件系统等。u-boot-env 可以在 U-Boot 启动时从 Flash 中加载,并在 U-Boot 运行过程中被访问和修改。

二、添加新板时,如何配置 u-boot-env?

1、准备

在添加新板之前,需要确保已经正确安装和编译了 OpenWrt 19.07,并具备一定的 Linux 系统知识。

2、配置步骤

在 OpenWrt 19.07 中,编译生成的 u-boot-env 文件位于 build_dir/target-mips_24kc_musl/u-boot-*/u-boot-*/tools 目录下。在配置 u-boot-env 之前,需要先了解板子的硬件配置和所需的启动参数。接下来的步骤是:

- 复制 u-boot-env.example 文件到 u-boot-env.config 文件:

cp u-boot-env.example u-boot-env.config

- 修改 u-boot-env.config 文件,根据实际需求设置环境变量的值。一般情况下,需要设置的环境变量有:bootcmd、bootargs、ethaddr、ipaddr、serverip 等。其中,
- bootcmd:指定开机启动的命令;
- bootargs:指定内核启动参数;
- ethaddr:指定板子的 MAC 地址;
- ipaddr:指定板子的 IP 地址;
- serverip:指定服务器的 IP 地址。

3、编译和导入配置

- 编译 u-boot-env.config 文件:

./scripts/env/uboot_env ./build_dir/target-mips_24kc_musl/u-boot-*/u-boot-*/tools/u-boot-env.config

- 导入配置到 u-boot-env.bin:

./build_dir/target-mips_24kc_musl/u-boot-*/u-boot-*/tools/mkenvimage -s 0x20000 -o u-boot-env.bin ./build_dir/target-mips_24kc_musl/u-boot-*/u-boot-*/tools/u-boot-env.config

- 将生成的 u-boot-env.bin 文件烧录到板子的 Flash 中。

以上就是如何在 OpenWrt 19.07 中添加新板时配置 u-boot-env 的方法。根据实际需求修改 u-boot-env.config 文件中的环境变量,编译并导入配置到 u-boot-env.bin,将其烧录到 Flash 中即可完成配置。配置正确后,u-boot 将按照设定的参数进行启动,使得新板能够正常工作。