
Wie kann ich auf die u-Boot-Umgebungsvariablen in Linux zugreifen und sie ändern? Verwenden des Verzeichnisses u-boot/tools/env im u-Boot-Verzeichnis:
u-boot$ make env
Dadurch wurde die ausführbare Datei erstellt fw_printenv
. Ich habe sie nach /usr/sbin und in die Zieldatei etc/fw_env.config kopiert:
# 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
Was verursacht diesen Fehler?
/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"
Antwort1
Ihr fw_env.config
System unterscheidet sich von meinem. Ich habe die U-Boot-Umgebung im Bereich 0x00260000-0x00280000. Soweit ich mich erinnere, ist die Datei fw_env ziemlich sensibel, und wenn Sie eine Spalte vergessen, greift fw_setenv auf einen Standardwert zurück, was zu allen möglichen seltsamen Fehlern führen kann.
Nur als Referenz, hier ist meine 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
Sie könnten es plattformübergreifend kompilieren strace
und zur Fehlerbehebung verwenden.