打印
[技术问答]

如何编译Linux中使用的fw_printenv和fw_setenv

[复制链接]
992|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2023-9-13 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何编译Linux中使用的fw_printenv和fw_setenv

使用特权

评论回复
沙发
riplay| | 2023-9-13 16:25 | 只看该作者
本帖最后由 riplay 于 2023-9-13 16:27 编辑

在uboot目录下执行make ARCH=arm CROSS_COMPILE=aarch64-linux- envtools
产生fw_printenv在uboot\tools\env目录中,复制fw_printenv到rootfs
产生fw_setenv用ln -s fw_printenv fw_setenv
要使用fw_printenv还需要将fw_env.config复制到rootfs\etc目录下,并根据使用的flash修改

使用特权

评论回复
板凳
weifeng90| | 2023-9-14 08:05 | 只看该作者
没有用过新唐的MPU芯片

使用特权

评论回复
地板
jcky001| | 2023-9-16 15:00 | 只看该作者
在uboot目录下执行make ARCH=arm CROSS_COMPILE=aarch64-linux- envtools
产生fw_printenv在uboot\tools\env目录中,复制fw_printenv到rootfs
产生fw_setenv用ln -s fw_printenv fw_setenv
要使用fw_printenv还需要将fw_env.config复制到rootfs\etc目录下,并根据使用的flash修改

使用特权

评论回复
5
cr315| | 2023-9-20 10:32 | 只看该作者
在Linux中,fw_printenv和fw_setenv是用于操作U-Boot环境变量的工具。U-Boot是一个常用的引导加载程序,用于在系统启动时加载内核和初始化RAM磁盘。

要编译fw_printenv和fw_setenv,您需要按照以下步骤进行操作:

安装U-Boot源代码:首先,您需要获取U-Boot的源代码。您可以从U-Boot的官方网站下载最新的源代码,或者通过Git克隆源代码仓库。

配置编译环境:在编译之前,您需要确保您的系统已经安装了必要的编译工具链。对于大多数Linux发行版,您可以使用包管理器来安装所需的软件包,例如build-essential和device-tree-compiler。

配置U-Boot:进入U-Boot源代码目录,并执行以下命令以配置U-Boot:

bash
make ARCH=your_architecture CROSS_COMPILE=your_cross_compile_prefix menuconfig
在上面的命令中,将your_architecture替换为您的目标体系结构的名称(例如,arm、x86等),将your_cross_compile_prefix替换为您的交叉编译工具链的前缀(例如,arm-linux-gnueabi-)。
4. 配置环境变量工具:在U-Boot配置菜单中,找到并启用以下选项:

* `CMDLINE_EDITING`  
* `ENV_IN_FLASH`或`ENV_IN_SPI_FLASH`(根据您的硬件配置选择)  
* `ENV_IS_IN_FAT`(如果您的环境变量存储在FAT文件系统中)
5. 编译U-Boot:保存配置并退出配置菜单。然后执行以下命令以编译U-Boot:

bash
make ARCH=your_architecture CROSS_COMPILE=your_cross_compile_prefix all
这将编译U-Boot,并在源代码目录下的tools目录中生成fw_printenv和fw_setenv工具。
6. 安装工具:如果您**将这些工具安装到系统中,可以执行以下命令:

bash
sudo cp tools/fw_printenv /usr/bin/  
sudo cp tools/fw_setenv /usr/bin/
这将将工具复制到/usr/bin/目录下,使它们可以在任何位置直接运行。

现在,您应该能够使用fw_printenv和fw_setenv工具来操作U-Boot的环境变量。请确保在执行这些工具时具有适当的权限,并根据您的实际硬件配置正确设置环境变量。

使用特权

评论回复
6
tpgf| | 2023-10-14 13:29 | 只看该作者
请问 fw_printenv和 fw_setenv有什么作用呢

使用特权

评论回复
7
paotangsan| | 2023-10-14 14:10 | 只看该作者
fw_setenv 除了能修改 uboot 环境变量参数外,还自带了保存功能

使用特权

评论回复
8
wakayi| | 2023-10-14 14:36 | 只看该作者
fw_printenv 可以直接修改工具源码来做参数配置

使用特权

评论回复
9
wowu| | 2023-10-14 20:13 | 只看该作者
fw_env.config 配置的方法相对来说灵活很多

使用特权

评论回复
10
renzheshengui| | 2023-10-14 20:58 | 只看该作者
fw_setenv 仅仅是 fw_printenv 创建的一个软链接,基本不占内存空间

使用特权

评论回复
11
heimaojingzhang| | 2023-10-14 21:39 | 只看该作者
printenv 的作用是查看保存在环境变量中的默认参数,setenv 的作用是对环境变量的默认参数做出临时的修改

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2039

主题

7368

帖子

10

粉丝