Page 1 of 1

【Luckfox Pico Ultra W】uboot中saveenv不生效

Posted: 2025-06-09 14:50
by hartvon
Hello, Luckfox 团队:

我在uboot中修改了环境变量bootdelay,之后saveenv,但是重启(reset 或 reboot)后修改的bootdelay未生效
以下是大致的操作过程:

Code: Select all

=> printenv bootdelay 
bootdelay=0
=> setenv bootdelay 5
=> saveenv 
Saving Environment to envf...
=> printenv bootdelay 
bootdelay=5
...
Hit key to stop autoboot('CTRL+C'):  0 
- 板子型号:Luckfox Pico Ultra W
- 镜像类型:Luckfox_Pico_Ultra_W_EMMC_0429

辛苦帮忙分析一下原因,完整的日志见附件
saveenv.zip (1.31 KiB)
Downloaded 21 times

Re: 【Luckfox Pico Ultra W】uboot中saveenv不生效

Posted: 2025-06-10 1:32
by Crocodile
您好,bootdelay 是由u-boot的defconfig 通过 CONFIG_BOOTDELAY 设置的,作为环境变量是只读的,修改之后重启原本的程序会根据 CONFIG_BOOTDELAY 的数值重新设置,通过 setenv 设置的数值被重新覆盖

Re: 【Luckfox Pico Ultra W】uboot中saveenv不生效

Posted: 2025-06-10 13:23
by hartvon
感谢回复!

我尝试在uboot命令行中手动新增环境变量,保存后重启也会不生效:

Code: Select all

=> printenv myvar
## Error: "myvar" not defined
=> setenv myvar 123
=> sa
Saving Environment to envf...
=> printenv myvar 
myvar=123
=> reset
...
=> printenv myvar
## Error: "myvar" not defined
请问在哪里能看到 “bootdelay” 以及其他环境变量是只读还是可读写的,怎么将其修改为可读写?

Re: 【Luckfox Pico Ultra W】uboot中saveenv不生效

Posted: 2025-06-10 13:40
by Crocodile
主要通过在源码上搜索相关关键字,看变量是怎么赋值怎么被调用的,我测试过且能确定的可以修改的变量只有sys_bootargs(可以用来修改CMA大小),改成可读写的可能需要修改相关源码