工厂出现1PCS机器,5G mac地址和校准数据写入失败。5G校准数据写入到ART分区的第二个块。2.4G是正常的。
正常情况:
1 2 3 4 5 | # getmac wl0 4c:c6:4c:61:41:e8 # hexdump -C -n 16 -s $((0x26800+14)) /dev/mtd13 0002680e 4c c6 4c 61 41 e8 00 03 7f 12 34 57 00 03 7f 12 |L.LaA.....4W.... |
setmac之后,再读,数据全是FF。怀疑是坏块导致,使用nandtest测试发现,第二个块是坏块。
1 2 3 4 5 6 7 8 | # nandtest /dev/mtd13 ECC corrections: 0 ECC failures : 0 Bad blocks : 1 BBT blocks : 0 Bad block at 0x00020000 4)... 000e0000: checking...of 4)... Finished pass 1 successfully |
由于ART分区,使用dd /dev/mtd13的方式进行读写,是不支持跳过坏块的。出现坏块后,校准数据无法写入。可更换flash解决。