|
各位猫鼬在备份kernel分区的时候需要注意,不要备份正在使用的分区kernel,否则备份的kernel启动时通不过CRC校验!!!
拥有两个不一样kernel猫鼬要特别注意了。
测试环境:mtd7与mtd8刷的时同一个kernel文件
测试结果:启动后,所使用kernel分区数据会改变,此时备份此分区作为刷机固件CRC报错!!!
推荐备份方法:0分区启动时备份kernel2;1分区启动是备份kernel1;framework不受启动分区影响,但是保险起见还是推荐按kernel备份一样的方法。
验证测试过程:
0分区启动
/ # upgradetest getver
Main version num: V2.0.5P1N8
Spare version num: V2.0.5P1N8
/ # cat /proc/csp/versionstates
baseaddress : 0x1700000
current : 0
version1states : 0x8f
version2states : 0x83
____________________________________________________
Index Running Latest CRC Integrality Type
----------------------------------------------------
0 Y Y Y Y Upg
1 N Y N Y Upg
----------------------------------------------------
/ # cat /proc/mtd
dev: size erasesize name
mtd0: 10000000 00020000 "whole flash"
mtd1: 00300000 00020000 "u-boot"
mtd2: 00200000 00020000 "others"
mtd3: 00200000 00020000 "parameter tags"
mtd4: 00200000 00020000 "wlan"
mtd5: 00800000 00020000 "usercfg"
mtd6: 00600000 00020000 "preplugin"
mtd7: 03000000 00020000 "kernel1"
mtd8: 03000000 00020000 "kernel2"
mtd9: 01000000 00020000 "framework"
mtd10: 01000000 00020000 "framework1"
mtd11: 06800000 00020000 "plugin_data"
mtd12: 02b00000 00020000 "rootfs1"
mtd13: 03000000 00020000 "rootfs2"
/ # hexdump -C -s 0x500000 -n 128 /dev/mtd7
00500000 85 19 01 e0 30 00 00 00 78 be 3e fa 01 00 00 00 |....0...x.>.....|
00500010 00 00 00 00 02 00 00 00 df a6 ae 63 08 04 00 00 |...........c....|
00500020 0d da 23 4d 59 8a db 64 43 75 49 6e 66 6f 72 6d |..#MY..dCuInform|
00500030 85 19 02 e0 44 00 00 00 1d fb f7 98 02 00 00 00 |....D...........|
00500040 01 00 00 00 ed 41 00 00 00 00 00 00 00 00 00 00 |.....A..........|
00500050 df a6 ae 63 df a6 ae 63 df a6 ae 63 00 00 00 00 |...c...c...c....|
00500060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00500070 2b 1d 55 d5 85 19 01 e0 2b 00 00 00 e6 6e 26 7d |+.U.....+....n&}|
00500080
/ # hexdump -C -s 0x500000 -n 128 /dev/mtd8
00500000 41 26 ec f7 2e 2d 03 b1 08 d3 bf 15 19 fa 14 61 |A&...-.........a|
00500010 4f 7a 84 2d 8d 54 60 07 97 6b 47 53 4d 86 9c d1 |Oz.-.T`..kGSM...|
00500020 2f a2 47 39 4b 7d c3 17 be 2c bb 72 28 23 0f a2 |/.G9K}...,.r(#..|
00500030 a0 28 41 a7 e1 42 92 7c 31 19 1f c4 67 b2 ec f3 |.(A..B.|1...g...|
00500040 51 b0 af a1 29 a0 91 cf e7 29 e5 c3 ee de 9d 95 |Q...)....)......|
00500050 9f e4 e2 ae 07 b0 79 73 bf 17 6a c1 ac 4b 26 ad |......ys..j..K&.|
00500060 7e 68 fc f9 5e 2c 1b af f4 fb b5 08 e4 7d 03 0f |~h..^,.......}..|
00500070 15 f9 35 45 e9 aa 5b 65 2c 1c 83 a7 fe 02 8a f9 |..5E..[e,.......|
00500080
此时擦除mtd7分区后系统所有命令失效!!!确认kernel使用mtd7!
1分区启动
/ # cat /proc/csp/versionstates
baseaddress : 0x4700000
current : 1
version1states : 0x83
version2states : 0x8f
____________________________________________________
Index Running Latest CRC Integrality Type
----------------------------------------------------
0 N Y N Y Upg
1 Y Y Y Y Upg
----------------------------------------------------
/ # cat /proc/mtd
dev: size erasesize name
mtd0: 10000000 00020000 "whole flash"
mtd1: 00300000 00020000 "u-boot"
mtd2: 00200000 00020000 "others"
mtd3: 00200000 00020000 "parameter tags"
mtd4: 00200000 00020000 "wlan"
mtd5: 00800000 00020000 "usercfg"
mtd6: 00600000 00020000 "preplugin"
mtd7: 03000000 00020000 "kernel1"
mtd8: 03000000 00020000 "kernel2"
mtd9: 01000000 00020000 "framework"
mtd10: 01000000 00020000 "framework1"
mtd11: 06800000 00020000 "plugin_data"
mtd12: 03000000 00020000 "rootfs1"
mtd13: 02b00000 00020000 "rootfs2"
/ # hexdump -C -s 0x500000 -n 128 /dev/mtd7
00500000 41 26 ec f7 2e 2d 03 b1 08 d3 bf 15 19 fa 14 61 |A&...-.........a|
00500010 4f 7a 84 2d 8d 54 60 07 97 6b 47 53 4d 86 9c d1 |Oz.-.T`..kGSM...|
00500020 2f a2 47 39 4b 7d c3 17 be 2c bb 72 28 23 0f a2 |/.G9K}...,.r(#..|
00500030 a0 28 41 a7 e1 42 92 7c 31 19 1f c4 67 b2 ec f3 |.(A..B.|1...g...|
00500040 51 b0 af a1 29 a0 91 cf e7 29 e5 c3 ee de 9d 95 |Q...)....)......|
00500050 9f e4 e2 ae 07 b0 79 73 bf 17 6a c1 ac 4b 26 ad |......ys..j..K&.|
00500060 7e 68 fc f9 5e 2c 1b af f4 fb b5 08 e4 7d 03 0f |~h..^,.......}..|
00500070 15 f9 35 45 e9 aa 5b 65 2c 1c 83 a7 fe 02 8a f9 |..5E..[e,.......|
00500080
/ # hexdump -C -s 0x500000 -n 128 /dev/mtd8
00500000 85 19 01 e0 30 00 00 00 78 be 3e fa 01 00 00 00 |....0...x.>.....|
00500010 00 00 00 00 02 00 00 00 df a6 ae 63 08 04 00 00 |...........c....|
00500020 0d da 23 4d 59 8a db 64 43 75 49 6e 66 6f 72 6d |..#MY..dCuInform|
00500030 85 19 02 e0 44 00 00 00 1d fb f7 98 02 00 00 00 |....D...........|
00500040 01 00 00 00 ed 41 00 00 00 00 00 00 00 00 00 00 |.....A..........|
00500050 df a6 ae 63 df a6 ae 63 df a6 ae 63 00 00 00 00 |...c...c...c....|
00500060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00500070 2b 1d 55 d5 85 19 01 e0 2b 00 00 00 e6 6e 26 7d |+.U.....+....n&}|
00500080
此时擦除mtd8分区后系统所有命令失效!!!确认kernel使用mtd8!
|
|