Как получить доступ к загрузочной среде из Linux?

Как получить доступ к загрузочной среде из Linux?

Как получить доступ и изменить переменные 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и использовать ее для устранения неполадок.

Связанный контент