telnet
从同一型号的另一台设备上转储了分区。 我将
linux.bin
映像刷新到了相应的分区,但是我不知道我需要做什么才能使设备重新工作。也许从U-Boot闪烁就可以正常工作。这是TFTP的启动过程信息:
U-Boot 2010.09 (Sep 06 2016 - 10:08:39)GCT GDM7243
Build Info:
date: 2016/09/06-10:08:44
user: root@ubuntu-will
svnr:
src: /home/will/DEVELOPMENT/LTE_Router/B5328_FDD/SDK/work/uboot
ver: 0.46e
DRAM: 128 MiB (wbd-p2)
NAND: Built-in ECC Nand
maf_id : 0x00000098, dev_id : 0x000000a1
Pagesize : 2Kbytes
Address cycle : 4
128 MiB
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
nand_read_bbt: Bad block at 0x000006000000
In: serial
Out: serial
Err: serial
Net: 001cc910 Realtek8211 PHYCR1: 0000211c Rx delay: 0x00802300
PHYCR2:0x842 mii0
Hit ENTER key to stop autoboot: 5 4 3 2 1 0
GPIO RESET KEY OFF
00420000
---------------------
hdr chksum : 0xffffffff
magic : 0xffffffff
timstamp : 0xffffffff
data chksum : 0xffffffff
data size : 0xffffffff
---------------------
image header magic is invalid
00440000
---------------------
hdr chksum : 0xa6160741
magic : 0xcafebabe
timstamp : 0x00000003
data chksum : 0xf314f304
data size : 0x0001ffdc
---------------------
cmnnv current block is : 1
pesifwcheck=1
Erasing Nand...
Erasing at 0x80000 -- 25% complete.
Erasing at 0xa0000 -- 50% complete.
Erasing at 0xc0000 -- 75% complete.
Erasing at 0xe0000 -- 100% complete.
Writing to Nand... done
boot from part_idx: 2
do_check_partition() type:linux2, ---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
no valid header(0)
There are no valid headers
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
no valid header(1)
There are no valid headers
Erasing Nand...
Erasing at 0x80000 -- 25% complete.
Erasing at 0xa0000 -- 50% complete.
Erasing at 0xc0000 -- 75% complete.
Erasing at 0xe0000 -- 100% complete.
Writing to Nand... done
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
no valid header(0)
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
no valid header(2)
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
---------------------
hdr chksum : 0x00000000
magic : 0x00000000
timstamp : 0x00000000
data chksum : 0x00000000
data size : 0x00000000
---------------------
## Booting kernel from Legacy Image at d05fffc0 ...
Image Name: Linux-3.10.0-uc0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2317840 Bytes = 2.2 MiB
Load Address: d0600000
Entry Point: d0600000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
#1 楼
kernel_load_addr=0xd0600000
filesize=400000
然后重置设备。它应该工作。
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
gipc-protocol address: d4880010
ipc config: 00000004
router-device
s-ch_enabled: 0x10010001
s-ch_enabled: 0x10010001
s-ch_enabled: 0x10010001
ipc magic=0x40540103(12)
s-ch_enabled: 0x10010003
第二次重新引导后问题仍然存在。
如果在输入这些命令后重新启动,则设备实际上可以正常启动,但是如果我第二次重新启动,该错误将重新出现。仍然需要对此问题进行调查。
评论
嗨,欢迎来到RE.SE。这是界外话题。但是我很同情我去过那里。您是否检查了(U-Boot)环境?通常,校验和将存储在此处。尝试将“砖”设备上的校验和值设置为正常工作的设备的值(假设这是您要引导的内核)。我在这里可能是完全错误的,但是我的设备可以那样工作。校验和就是:一种检查内核映像完整性的方法,而不是主要用于篡改设备。或者,在加载内核的地址上尝试U-Boot的crc32命令。要显示环境,请尝试printenv并确保您具有有效的U-Boot映像(file命令可能有帮助)。 setenv和saveenv可用于操纵环境并保存您的更改。