私のシステムで奇妙な動作をする。 ubootからprintenvとsaveenvが正しく動作します。 userspace fw_printenvから、fw_setenvは何も保存せず、エラーやフィードバックも出ません。fw_setenvが動作しない、fw_printevが
これは私のfw_env.configあり、それは正しい
# cat /etc/fw_env.config
# Configuration file for fw_(printenv/saveenv) utility.
# Up to two entries are valid, in this case the redundant
# environment sector is assumed present.
# Notice, that the "Number of sectors" is ignored on NOR.
# MTD device name Device offset Env. size Flash sector size Number of sectors
/dev/mtd0 0x80000 0x40000 0x40000 1
#/dev/mtd2 0x0000 0x4000 0x4000
# NAND example
#/dev/mtd0 0x4000 0x4000 0x20000 2
#
任意のアイデアですか?
これは、そう、それはlibの問題と思われるfw_setenv
execve("/usr/sbin/fw_setenv", ["fw_setenv", "pippo", "pippo"], [/* 11 vars */]) = 0
brk(0) = 0x2012000
uname({sys="Linux", node="buildroot", ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ab91000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/tls/v7l/vfp/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l/vfp", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/tls/v7l/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/tls/vfp/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/vfp", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/tls/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/v7l/vfp/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l/vfp", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/v7l/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/vfp/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/vfp", 0x7ee54508) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214\317\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=129092, ...}) = 0
mmap2(NULL, 160612, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2abff000
mprotect(0x2ac1f000, 28672, PROT_NONE) = 0
mmap2(0x2ac26000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f) = 0x2ac26000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214\177\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1238696, ...}) = 0
mmap2(NULL, 1275280, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2ac27000
mprotect(0x2ad51000, 32768, PROT_NONE) = 0
mmap2(0x2ad59000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12a) = 0x2ad59000
mmap2(0x2ad5c000, 9616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ad5c000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ab5c000
set_tls(0x2ab5c4c0, 0x2ab5cb98, 0x2ab9a058, 0x2ab5c4c0, 0x2ab9a058) = 0
mprotect(0x2ad59000, 8192, PROT_READ) = 0
mprotect(0x2ab99000, 4096, PROT_READ) = 0
brk(0) = 0x2012000
brk(0x2033000) = 0x2033000
open("/etc/fw_env.config", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=422, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad5f000
read(3, "# Configuration file for fw_(pri"..., 4096) = 422
read(3, "", 4096) = 0
close(3) = 0
munmap(0x2ad5f000, 4096) = 0
stat64("/dev/mtd0", {st_mode=S_IFCHR|0660, st_rdev=makedev(90, 0), ...}) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aab0000
open("/dev/mtd0", O_RDONLY) = 3
ioctl(3, MCE_GET_RECORD_LEN or MEMGETINFO or MFB_SET_CHROMA_KEY or MTRRIOC_SET_ENTRY, {type=MTD_NORFLASH, flags=MTD_WRITEABLE|MTD_BIT_WRITEABLE, size=0x100000, erasesize=0x10000, writesize=0x1, oobsize=0, padding=0xffffffff}) = 0
lseek(3, 524288, SEEK_SET) = 524288
read(3, "\33\326PMbootdelay=3\0baudrate=115200\0"..., 262144) = 262144
close(3) = 0
open("/dev/mtd0", O_RDWR) = 3
ioctl(3, MCE_GET_LOG_LEN or MEMERASE or MTRRIOC_DEL_ENTRY, {start=0x80000, length=0x40000}) = 0
lseek(3, 524288, SEEK_SET) = 524288
write(3, "\307L\362Xbootdelay=3\0baudrate=115200\0"..., 262144) = 262144
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
のstraceのです。 私はramrofを生成するためにbuildrootを使用していますが、いくつかのライブラリはコンパイルされていないようです。 libgcc_s.so.1を修正するために、ポストビルドスクリプトにツールチェーンのフォルダから直接コピーを追加しました。 ldconfigの場合、私は現時点で何をすべきか分かりません。 G
U-Bootとカーネルは、メインラインソースに基づいていますか。もしそうなら、バージョンを教えてくれますか?どのフラッシュチップがターゲット上にU-Boot環境を保持していますか? –
そして、あなたはfw_printenvがうまくいっていますか?つまり、U-Bootで変数を設定し、それをLinuxで印刷しましたか?デフォルトでは、ツールとU-Bootバイナリを一緒にビルドし、入手したツールを使用すると、デフォルト環境が組み込まれます。 'fw_printenv>/dev/null'を実行しない限り、最初のエラーが見逃せない場合もあります(問題が発生しているstderrが表示されるように)。 –
Nope、uboot、およびkernelは、チップベンダーのSDKにあります。 – JosephITA