本文来源http://blog.youkuaiyun.com/gt945/article/details/12710381
新固件下载
由于网件的bootloader是经过定制的,固件打包方式也不同,因此我一直以为openwrt直接编译出的固件不能直接刷在路由器上。后来有一次我无意中打开了openwrt生成的
openwrt-ar71xx-generic-wnr2200-squashfs-factory.img文件,发现里面的结构和官方的一模一样,可见openwrt按照网件官方固件的打包方式进行了打包,编译出来的固件可以直接刷入使用。
接下来我便深入了解了openwrt是如何针对网件进行打包固件的。其实其打包过程与我之前发的一个脚本相似,但是有一些不一样的地方。
一、分区拼接不一样,他在kernel分区后面紧跟着rootfs分区。
二、linux内核经过了patch,将bootargs固化进去,这样bootloader中的bootargs就不会影响内核启动,并且刷固件的时候也无需再修改bootargs。
问题二解决了我之前遇到的问题——刷固件必须修改bootargs
问题一却造成编译的固件无法正常启动,在openwrt官方的wnr2200配置中,mtdparts无法区分kernel和rootfs分区,