给小度路由换16M Flash

5
1996

给小度路由换了16M的flash,重新编译了Uboot。但下载固件时出下如下情况:



从uboot的config看,在非dual image模式下Uboot应该是不会受flash大小影响的,估计是openwrt固件的分区表的问题。

以上分析是完全错误的,经王工提醒,在之前的Uboot启动信息中还有一句警告被我忽视了:


原来是没检测到flash芯片的ID,于是我查看了/driver下的spi_flash.c

发现果然没有我使用的winboard芯片,于是我将我芯片写入了其中


编译之,烧写之,再运行~

OK了~~~成功进入系统

但rootfs仍然只有2M多点,很奇怪的是在dts中并没有看到rootfs分区,观察rootfs的数值,我猜想rootfs是不是就是firmware-kernel的剩余空间,于是乎我将firmware分区改到了最大。

果然,rootfs变多了。

 

另外在4-debug模式下,还看到如下警告:


dq给出的答案:

firmware分区是刷 kernel+rootfs
kernel现在大小不是64k的整数倍,比如 大小996k,这样紧跟着的rootfs,就不是从64k的整数倍开始的,就会提示错误。
在kernel后补一个996k%64k – 64(64是uImage header的大小)大小的内容,kernel大小就可以是64k的整数倍了。

 

5 意见

留下一个答复

Please enter your comment!
Please enter your name here