
¿Cómo puedo acceder y cambiar las variables env de u-Boot en Linux? Usando el directorio u-boot/tools/env en el directorio de arranque u:
u-boot$ make env
Lo cual creó el archivo ejecutable fw_printenv
. Copié esto en /usr/sbin y en el archivo target etc/fw_env.config:
# Configuration file for fw_(printenv/saveenv) utility.
# Up to two entries are valid, in this case the redundand
# environment sector is assumed present.
# MTD device name Device offset Env. size Flash sector size
/dev/mtd0 0x00000 0x20000 0x20000
target#./fw_printenv
SEGV
Que esta causando este error?
/proc/mtd
dev: size erasesize name
mtd0: 00020000 00020000 "flash_uboot_env"
mtd1: 002e0000 00020000 "flash_linux_image"
mtd2: 00900000 00020000 "flash_jffs2"
mtd3: 00900000 00020000 "flash_data"
Respuesta1
El tuyo fw_env.config
es diferente al mío. Tengo el entorno u-boot en el rango 0x00260000-0x00280000. Según recuerdo, el archivo fw_env es bastante sensible y, si olvida alguna columna, fw_setenv volverá a algún valor predeterminado que puede causar todo tipo de errores extraños.
Sólo como referencia, aquí está mi fw_env.config
root@linux:~# cat /etc/fw_env.config
# Dev. name offset env. size flash sector size nbr. sectors
/dev/mtd1 0x00 0x2000 0x20000 1
Puede realizar una compilación cruzada strace
y utilizarla para solucionar problemas.