在使用openwrt的過程中,發現其可以通過firmware固件的形式進行升級,而且這個升級可以是全系統級的,要支持這種升級,合適的flash分區非常重要。
以下討論的平臺是:
1.版本:openwrt trunk reversion 39055
2.板級平臺:wr703
系統啓動打印的分區信息如下:
[ 0.690000] Creating 5 MTD partitions on "spi0.0":
[ 0.700000] 0x000000000000-0x000000020000 : "u-boot"
[ 0.700000] 0x000000020000-0x000000101dd8 : "kernel"
[ 0.720000] 0x000000101dd8-0x0000007f0000 : "rootfs"
[ 0.750000] 0x000000680000-0x0000007f0000 : "rootfs_data"
[ 0.760000] 0x0000007f0000-0x000000800000 : "art"
[ 0.760000] 0x000000020000-0x0000007f0000 : "firmware"
以上分區對應如下圖:
openwrt系統先分別編譯出kernel及文件系統,然後以這個分區格式製作成firmware固件,燒寫的時候,通過mtd write將整個firmware.bin文件燒寫到firmware分區(圖中紅色部分),即將原先的系統覆蓋了,重啓之後,將引導進入新系統。如何製作該image,接下來研究了再記錄下來。