找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 3567|回复: 2

must either start or end on erase block boundary 解决方法

[复制链接]
发表于 2015-1-19 18:35 | 显示全部楼层 |阅读模式
本帖最后由 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 等各位高手看到的话解答一下
群里网名: 枪炮与玫瑰


发表于 2015-1-19 18:46 | 显示全部楼层
根本就不是这个意思
op的kernel跟rootfs是拼接在一起的
kernel的大小不可能是block size的整倍数
因此必然会有这个提示
 楼主| 发表于 2015-1-19 18:50 | 显示全部楼层
原始的Makefile里面处理就是直接 合并两个文件,所以不是整数倍很正常,前面加个dd bs=N 就是故意让他做成整数再合并,我理解的应该没错吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-12 07:38

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表