uboot bootcmd和bootargs环境变量设置

【系统移植】uboot 通过 NFS 加载根文件系统(二) —— 修改环境变量 bootcmd、bootargs 阅读详情

一.官方环境变量bootcmd

bootcmd变量定义位于“include/configs/mx6ull_my_evk.h”(copy from include/configs/mx6ullevk.h )中,
#define CONFIG_BOOTCOMMAND \
	   "run findfdt;" \
	   "mmc dev ${mmcdev};" \
	   "mmc dev ${mmcdev}; if mmc rescan; then " \
		   "if run loadbootscript; then " \
			   "run bootscript; " \
		   "else " \
			   "if run loadimage; then " \
				   "run mmcboot; " \
			   "else run netboot; " \
			   "fi; " \
		   "fi; " \
	   "else run netboot; fi"
#endif

此脚本主要做四件事,
a.MMC设备查找。
b.读取zImage
c.驱动设备树
d.启动Linux.
不做分析,删除,按照我们需求改写如下

#define CONFIG_BOOTCOMMAND \
	   	"mmc dev 1;" \
	   	"fatload mmc 1:1 0x80800000 zImage;" \
	   	"fatload mmc 1:1 0x83000000 imx6ull_my_evk.dtb;" \
	 	"bootz 0x80800000-0x83000000;"
#endif

修改后重启,发现该环境变量并没有生效
在这里插入图片描述
这是因为源码中,启动时会对环境变量进行检测,如果不为空,则不更新。
我们可以在uboot使用env命令对bootargs变量恢复默认值。

=> env help
env - environment handling commands

Usage:
env default [-f] -a - [forcibly] reset default environment
env default [-f] var [...] - [forcibly] reset variable(s) to their default values
env delete [-f] var [...] - [forcibly] delete variable(s)
env edit name - edit environment variable
env exists name - tests for existence of variable
env export [-t | -b | -c] [-s size] addr [var ...] - export environment
env import [-d] [-t [-r] | -b | -c] addr [size] - import environment
env print [-a | name ...] - print environment
env run var [...] - run commands in an environment variable
env save - save environment
env set [-f] name [arg ...]

对某一变量恢复,使用

env default [-f] var [...] - [forcibly] reset variable(s) to their default values

对所有变量恢复,使用命令

env default [-f] -a - [forcibly] reset default environment

运行结果:
在这里插入图片描述

可以看到变量已经恢复。

二.官方环境变量bootargs.

bootargs由第145-147行脚本设置而来。展开后为
		mmcargs=setenv bootargs console= ttymxc0, 115200 root= /dev/mmcblk1p2 rootwait rw

在这里插入图片描述
此环境变量根据自身环境决定是否需要修改。

【系统移植】SD卡烧录uboot、linux内核、根文件系统 阅读详情

相关推荐

Linux驱动开发:uboot移植流程

内部有个以太网MAC外设,也就是ENET,需要外接一个PHY芯片来实现网络通信功能,也就是内部 MAC+外部 PHY 芯片的方案。大家可能听过DM9000这个网络芯片,在一些没有内部MAC的CPU中,比如三星的 2440,4412 等,就会采用DM9000来实现联网功能。DM9000提供了一个类似SRAM的访问接口,主控CPU通过这个接口即可与DM9000进行通信,DM9000就是一个MAC+PHY芯片。有两个网络接口ENET1和ENET2,正点原子的开发板提供了这两个网络接口,其中ENET1和ENET2。

2501_90249203的博客 1195

linux-uboot 移植三 uboot启动内核过程

uboot 的本质工作是引导 Linux,所以 uboot 肯定有相关的 boot(引导)命令来启动 Linux。常用的跟 boot 有关的命令有: bootz、 bootm 和 boot。要启动 Linux,需要先将 Linux 镜像文件拷贝到 DRAM 中,如果使用到设备树的话也需要将设备树拷贝到 DRAM 中。可以从EMMC 或者 NAND 等存储设备中将 Linux 镜像和设备树文件拷贝到 DRAM,也可以通过 nfs 或者 tftp 将 Linux 镜像文件和设备树文件下载到 DRAM 中。不管用

u010681589的博客 4318

【驱动】uboot环境变量分析

0、bootcmd 0.1 飞凌原设置 bootcmd=if mmc rescan; then if run loadbootscript; then run bootscript; else if test ${bootdev} = sd1; then echo update firmware.........;run update_from_sd;else echo mmc boot.

郭老二 2275

Uboot中bootargs以及bootcmd设置

u-boot有两种工作模式:自启动模式, 交互模式。​ 交互模式:开发板上电之后,u-boot启动,在串口工具上打印各种信息,当出现倒计时之后,按下电脑键盘上的任意键,此时就会进入到u-boot的交互模式,我们就可以输入各种u-boot命令和u-boot进行交互,u-boot内部解析串口输入的u-boot命令。

MrWangHao的博客 3321

嵌入式系统学习笔记之五-- uboot常用命令 环境变量

uboot 中环境变量的作用就是在不改变源码、不用重新编译的情况下,可以使我们通过设置环境变量的值来改变 uboot 的一些设置。uboot 开机时会一次性从存储介质(启动介质)中读取全部的环境变量到内存中作为环境变量的初始值,uboot 运行过程中用到的环境变量,都是内存中的环境变量,用户可以使用saveenv 指令将内存中的环境变量重新写入存储介质(启动介质)中,下次重启系统时会从存储介质(启动介质)中读取更新过的环境变量。 1 、查看环境变量 输入 printenv 命令,即可查看所有环境变量:(或者

sixtome 1745

Windows 下安装 ros2 的超详细教程

Windows11 ROS安装

2401_83363439的博客 3317

bootcmd 和 和 bootargs 环境变量 启动Linux

bootcmd 和 和 bootargs 环境变量 启动Linux

qq_24330911的博客 3547

手把手教你用示波器测试DDR5 DRAM信号完整性(附眼图分析技巧)

本文详细介绍了如何使用示波器测试DDR5 DRAM信号完整性,包括眼图分析技巧。从DDR5的核心挑战、测试设备选型到实测工作流程,提供了全面的指导。特别强调了DFE功能验证和系统级协同测试,帮助工程师解决信号完整性问题,提升测试效率。

g2h3i4j5的博客 1150

uboot移植(5)--bootcmd、bootargs环境变量设置

uboot中bootcmd、bootargs环境变量设置

qq_67915669的博客 1609

光纤布拉格光栅(FBG)笔记【1】:波导结构和布拉格波长推导

引言 本文是光纤布拉格光栅(FBG)的笔记【1】,主要介绍了光纤布拉格光栅的波导结构,并且利用动量和能量守恒推导了光纤布拉格波长的表达式 普通光纤中让折射率发生周期性变化就是结构最简单的均匀光纤布拉格光栅(FBG),其波导结构如下图所示。 其传感原理描述可以分为以下的三点: ①光纤纤芯传播的光会在每个光栅面进行反射和透射; ②如果不满足布拉格条件,依次排列的光栅平面反射的光会逐渐变得不同直到最后相互抵消;同时由于系数不匹配,与布拉格波长不相符的光在每个光栅平面的反射也很微弱,这些光大部分在光纤中发生透.

subtitle_的博客 2万+

Unity游戏开发客户端面经——数据结构(初级)

Unity游戏开发客户端面经 之 数据结构篇

Sea3752的博客 1万+

uboot bootcmd和bootargs环境变量设置

一.官方环境变量bootcmd bootcmd变量定义位于“include/configs/mx6ull_my_evk.h”(copy from include/configs/mx6ullevk.h )中, #define CONFIG_BOOTCOMMAND \ "run findfdt;" \ "mmc dev ${mmcdev};" \ "mmc dev ${mmcdev}; if mmc rescan; then " \ "if run loadboot

3216

保姆级教程:用Python 3.10和Ollama在Windows上搞定LightRAG本地部署(附环境配置避坑指南)

本文提供了一份详细的Windows系统下LightRAG本地部署指南,涵盖Python 3.10环境配置、Ollama模型服务安装到LightRAG核心组件部署的全流程。特别针对Windows平台常见问题提供解决方案,帮助开发者快速搭建高效的检索增强生成(RAG)系统,实现专业领域知识的智能检索与整合。

weixin_28725407的博客 480

uboot中bootcmd和bootargs环境变量

u-boot环境变量bootcmd和bootargs简介

wangfei19841001的博客 3590

ESP32设备驱动-MLX90393磁场传感器驱动

MLX90393 磁场传感器可以在运行时重新编程为不同的模式和不同的设置。 该传感器使用 Melexis 专有的 Triaxis® 技术提供与沿 XYZ 轴感应的磁通密度成比例的 16 位输出,还提供温度输出信号。 这些数字值可通过 I2C 和 SPI 获得,其中 MLX90393 是总线上的从设备。

视觉与物联智能 2350

2023年12月青少年C/C++软件编程(三级)等级考试试卷及答案解析

有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。输出为一行,表达式的值。任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。

长春高老师编程 1511

U-Boot--bootcmd和bootargs参数

bootcmduboot 倒计时结束以后就会执行 bootcmd 中的命令bootargs保存着 uboot 传递给 Linux 内核的参数。

2401_89324144的博客 2355

PHP实现获取本机ip及mac地址​(附完整源码)

PHP实现获取本机ip及mac地址​(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 351

uboot的环境变量

1、如何理解环境变量 环境变量就好像程序的全局变量一样。程序中任何地方都可以根据需要去使用或者更改环境变量(一般都是使用),环境变量和全局变量不同之处在于:全局变量的生命周期是在程序的一次运行当中,只被存储在内存中,程序开始运行时诞生,程序结束时死亡,下次运行程序时从头开始;但是环境变量被存储在Flash的一块专门区域(Flash上有一个环境变量分区),一旦我们在程序中保存了该环境变量,那么下次开...

qslv_bhlt的博客 644

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

[IMX][UBoot] 12.环境变量 bootcmd 和 bootargs

UBoot 环境变量 bootcmd 和 bootargs

毛线 965

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux系统移植篇(六)bootcmd 和 bootargs 环境变量

Linux系统移植篇(六)bootcmd 和 bootargs 环境变量

你要拥有一个你喜欢并且热爱的人生 1500

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Linux系统移植13:bootcmd和bootargs环境变量

bootcmd 保存着 uboot 默认命令, uboot 倒计时结束以后就会执行 bootcmd 中的命令。这些命令一般都是用来启动 Linux 内核的,比如读取 EMMC 中的 Linux 内核镜像文件和设备树文件到 DRAM 中,然后启动 Linux 内核。可以在 uboot 启动以后进入命令行设置 bootcmd 环境变量的值。如果 EMMC 没有保存 bootcmd 的值,那么 uboot 就会使用默认的值,板子第一次运行 uboot 的时候都会使用默认值来设置 bootcmd 环境变量。

weixin_45783574的博客 461

imx6ull-系统移植篇12——bootcmd环境变量

本文主要介绍了U-Boot启动Linux内核前的关键环境变量:bootcmd。

m0_62228566的博客 976

uboot移植到6410开发板的过程及环境变量的修改

一、通过U盘下载uboot.bin到开发板,U盘事先必须用飞凌光盘里的一个快速烧写工具,把mmc.bin烧写进U盘内,但是打开U盘后看不到这个文件。然后将uboot.bin烧写进U盘。(ps,如果要直接通过U盘将内核还有文件系统烧写进开发板里,可以直接将zImage跟cramfs文件系统拷进U盘)   二、将U盘插入开发板,选择U盘启动模式,1 2 3 off ,其他on;打开终端,启动;之后

天涯海阁 4032

Uboot常用命令之环境变量命令

Uboot常用命令之环境变量命令

2301_76587520的博客 1257

56. Uboot移植实验

首先就是通信效率和速度,一般 SOC 内部的 MAC 是带有一个专用 DMA 的,专门用于处理网络数据包,采用 SRAM 来读写 DM9000 的速度是压根就没法和内部 MAC+外部 PHY 芯片的速度比。从这里也可以看出,三星的 2440、 4412 这些芯片设计之初就不是给工业产品用的,他们是给消费类电子使用的,比如手机、平板等,手机或平板要上网,可以通过 WIFI 或者 4G,我是没有见过哪个手机或者平板上网是要接根网线的。pixclock:像素时钟,每个像素时钟周期的长度,单位为皮秒。

TrueLink的博客 1030
上一篇: uboot 误删 bootargs如何恢复
下一篇: linux开启nfs服务器
loveshipting
博客等级 码龄12年 9粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

loveshipting

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

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

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

打赏作者

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

抵扣说明:

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

余额充值