在uboot下源码编译:
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- envtools
CHK include/config/uboot.release
CHK include/generated/version_autogenerated.h
CHK include/generated/timestamp_autogenerated.h
UPD include/generated/timestamp_autogenerated.h
COPY tools/version.h
LD tools/env/built-in.o
HOSTCC tools/env/crc32.o
HOSTCC tools/env/ctype.o
HOSTCC tools/env/env_attr.o
HOSTCC tools/env/env_flags.o
HOSTCC tools/env/fw_env.o
HOSTCC tools/env/linux_string.o
AR tools/env/lib.a
HOSTCC tools/env/fw_env_main.o
HOSTLD tools/env/fw_printenv
STRIP tools/env/fw_printenv
使用到的文件fw_env.config和fw_printenv
问题解决(1):Error opening lock file /var/lock/fw_printenv.lock
mkdir -p /var/lock/
touch /var/lock/fw_printenv.lock
问题解决(2)Warning: Bad CRC, using default environment
fw_env.config 设置 env 有问题 // mt0 一直写成mt1
# NOR example
# MTD device name Device offset Env. size Flash sector size Number of sectors
/dev/mtd0 0x80000 0x40000 0x40000 1
grep "CONFIG_ENV_OFFSET" .config
CONFIG_ENV_OFFSET=0x80000
grep "CONFIG_ENV_SIZE" .config
CONFIG_ENV_SIZE=0x40000
grep "CONFIG_ENV_SECT_SIZE" .config
CONFIG_ENV_SECT_SIZE=0x10000
问题解决3:Error: “3” not defined fw_setenv用来设置和删除环境变量 fw_printenv用来打印环境变量
ln -s ./fw_printenv fw_setenv
测试如下
# ./fw_setenv bootdelay 10
# reset
./fw_printenv