
Как получить доступ и изменить переменные u-Boot env в Linux. Используя каталог u-boot/tools/env в каталоге u boot:
u-boot$ make env
Который создал исполняемый файл fw_printenv
. Я скопировал его в /usr/sbin и в целевой файл 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
Что является причиной этой ошибки?
/проц/мтд
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"
решение1
У вас fw_env.config
все по-другому. У меня env u-boot в диапазоне 0x00260000-0x00280000. Насколько я помню, файл fw_env довольно чувствителен, и если вы забудете какой-то столбец, fw_setenv вернется к какому-то значению по умолчанию, что может вызвать всякие странные ошибки.
Просто для справки, вот мой 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
Вы можете выполнить кросс-компиляцию strace
и использовать ее для устранения неполадок.