默认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都没问题