本帖最后由 axlrose 于 2015-1-19 18:36 编辑
[ 0.680000] 4 ofpart partitions found on MTD device spi32766.0
[ 0.690000] Creating 4 MTD partitions on "spi32766.0":
[ 0.690000] 0x000000000000-0x000000030000 : "u-boot"
[ 0.700000] 0x000000030000-0x000000040000 : "u-boot-env"
[ 0.710000] 0x000000040000-0x000000050000 : "factory"
[ 0.710000] 0x000000050000-0x000000800000 : "firmware"
[ 0.720000] 0x000000142b79-0x000000800000 : "rootfs"
[ 0.730000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
解决办法:
参考 github的 openwrt-mt7620的仓库里面的target/linux/ramips/image/Makefile
https://github.com/qdk0901/openwrt-mt7620/blob/master/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -155,6 +155,7 @@ define BuildFirmware/OF
$(call MkImageLzmaDtb,$(2),$(3),$(5))
dd if=$(KDIR)/vmlinux-$(2).bin.lzma of=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=1441728 conv=sync
mv $(KDIR)/vmlinux-$(2).bin.lzma.padded $(KDIR)/vmlinux-$(2).bin.lzma
$(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).uImage,$(5))
擦除块大小为64K(0x10000), 按理说应该是多留出64K空间出来
同步时bs设置为1441728 (0x15FFC0) 1M多
算出来得到 分区大小为 1441792(0x160000) 就不会提示了
主要去看mtdsplit.c的源代码,从firmware去分这东东出来, 最后mtd添加分区的时候算出来不对齐,就提示了,其实了可以不管,无非就是添加了个不可擦除标记
qdk0901 等各位高手看到的话解答一下
群里网名: 枪炮与玫瑰
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|