默認openwrt自動探測rootfs_data並掛載,這個機制是openwrt自帶補丁,在內核代碼搜索CONFIG_MTD_SPLIT閱讀代碼,在項目中需用自定義一個rootfs_data分區,就先要禁用內核的自動探測機制,
1,make kernel_menuconfig禁用CONFIG_MTD_SPLIT相關,保存后在target/linux/*/config-4.4內此宏沒有定義
2,編輯Config-kernel.in 增加如下,將CONFIG_MTD_SPLIT制作成可配置項,注意紅色字體
config KERNEL_MTD_SPLIT
bool 'Support Openwrt MTD split'
default n
help
no help
3,在通過設備樹在主板的mtd設備上建立新的分區rootfs_data,根據代碼分析,系統會自動尋找命名為rootfs_data的分區掛載為overlay
最重要的是要禁用內核的MTD_SPLIT機制
以上方法經過測試,運行良好,設備內所有的sysuprade,firstboot都沒問題