This implements UBIFS rootfs, enables it for mips targets and adds the necessary settings for rb532.
Signed-off-by: Phil Sutter phil@nwl.cc --- mk/image.mk | 19 +++++++++++++++++++ mk/rootfs.mk | 1 + target/config/Config.in.rootfs | 9 +++++++++ target/linux/config/Config.in.flash | 23 ++++++++++++++++++++++- target/mips/Makefile | 8 ++++++++ 5 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/mk/image.mk b/mk/image.mk index 6b704f200938c..84d6ab9a80bd9 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -122,6 +122,7 @@ TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel INITRAMFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img ROOTFSJFFS2= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img +ROOTFSUBIFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-ubifs.img ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.xz ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.xz ROOTFSISO= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso @@ -191,6 +192,24 @@ ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR} PATH='${HOST_PATH}' mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \ --pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE)
+${FW_DIR}/${ROOTFSUBIFS}: ${TARGET_DIR} + ( \ + PATH='${HOST_PATH}'; \ + SP_SIZE='${ADK_TARGET_FLASH_SUBPAGE_SIZE}'; \ + PG_SZIE='${ADK_TARGET_FLASH_PAGE_SIZE}'; \ + LEB_SIZE=$$(((($$SP_SIZE + $$PG_SIZE) / $$PG_SIZE) * $$PG_SIZE)); \ + mkfs.ubifs -r ${TARGET_DIR} \ + -m $$PG_SIZE \ + -e $$((${ADK_TARGET_FLASH_PEB_SIZE} - $$LEB_SIZE)) \ + -c $$(((${ADK_TARGET_MTD_SIZE} / $$LEB_SIZE))) \ + -o ${FW_DIR}/rootfs.ubifs; \ + cd ${FW_DIR} && ubinize -o $@ \ + -p ${ADK_TARGET_FLASH_PEB_SIZE} \ + -m ${ADK_TARGET_FLASH_PAGE_SIZE} \ + -s ${ADK_TARGET_FLASH_SUBPAGE_SIZE} \ + "${ADK_TOPDIR}/target/${ADK_TARGET_ARCH}/${ADK_TARGET_SYSTEM}/ubinize.cfg"; \ + ) $(MAKE_TRACE) + createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list ${SED} 's/.*CONFIG_(RD_|BLK_DEV_INITRD|INITRAMFS_).*//' \ ${LINUX_DIR}/.config diff --git a/mk/rootfs.mk b/mk/rootfs.mk index 027c671b6b492..15489603654a5 100644 --- a/mk/rootfs.mk +++ b/mk/rootfs.mk @@ -58,6 +58,7 @@ $(eval $(call rootfs_template,initramfspiggyback,INITRAMFSPIGGYBACK,rootfstype=t $(eval $(call rootfs_template,initramfsarchive,INITRAMFSARCHIVE,rootfstype=tmpfs)) $(eval $(call rootfs_template,squashfs,SQUASHFS,$(MTDDEV) rootfstype=squashfs)) $(eval $(call rootfs_template,yaffs,YAFFS,$(MTDDEV))) +$(eval $(call rootfs_template,ubifs,UBIFS,ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs)) $(eval $(call rootfs_template,jffs2,JFFS2,$(MTDDEV) rootfstype=jffs2)) $(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp)) $(eval $(call rootfs_template,encrypted,ENCRYPTED)) diff --git a/target/config/Config.in.rootfs b/target/config/Config.in.rootfs index c24535f013617..335a4547f1303 100644 --- a/target/config/Config.in.rootfs +++ b/target/config/Config.in.rootfs @@ -87,6 +87,15 @@ config ADK_TARGET_ROOTFS_YAFFS help Root filesystem on NAND flash with YAFFS2.
+config ADK_TARGET_ROOTFS_UBIFS + bool "UBIFS root filesystem (NAND)" + select ADK_KERNEL_UBIFS_FS + select ADK_HOST_NEED_MTD_UTILS + select ADK_HOST_NEED_KERNEL2MINOR + depends on ADK_TARGET_WITH_NAND + help + Root filesystem on NAND flash with UBI. + config ADK_TARGET_ROOTFS_NFSROOT bool "NFS root" select ADK_KERNEL_NETWORK_FILESYSTEMS diff --git a/target/linux/config/Config.in.flash b/target/linux/config/Config.in.flash index 3cf3a15ffa480..159e4aa45a520 100644 --- a/target/linux/config/Config.in.flash +++ b/target/linux/config/Config.in.flash @@ -163,9 +163,30 @@ config ADK_TARGET_MTD_SIZE int depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \ || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \ - || ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9 + || ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9 \ + || ADK_TARGET_SYSTEM_MIKROTIK_RB532 default "16777216" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 + default "134217728" if ADK_TARGET_SYSTEM_MIKROTIK_RB532 default "0"
+config ADK_TARGET_FLASH_PEB_SIZE + int + default 131072 if ADK_TARGET_SYSTEM_MIKROTIK_RB532 + help + Physical Erase Block size. + +config ADK_TARGET_FLASH_PAGE_SIZE + int + default 2048 if ADK_TARGET_SYSTEM_MIKROTIK_RB532 + help + Minimum input/output size. + +config ADK_TARGET_FLASH_SUBPAGE_SIZE + int + default 512 if ADK_TARGET_SYSTEM_MIKROTIK_RB532 + default ADK_TARGET_FLASH_PAGE_SIZE + help + Size of NAND sub-pages (if supported). + endmenu diff --git a/target/mips/Makefile b/target/mips/Makefile index bb30049f15619..6f0bd728c27ec 100644 --- a/target/mips/Makefile +++ b/target/mips/Makefile @@ -87,6 +87,11 @@ else @echo 'sudo dd if=$(FW_DIR)/disk.img of=/dev/sdX bs=2048k' endif endif +ifeq ($(ADK_TARGET_FS),ubifs) +targethelp: + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo 'The UBI image is: ${FW_DIR}/${ROOTFSUBIFS}' +endif
# image creation and kernel install kernel-strip: @@ -121,3 +126,6 @@ endif ifeq ($(ADK_TARGET_FS),yaffs) imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp endif +ifeq ($(ADK_TARGET_FS),ubifs) +imageinstall: $(FW_DIR)/$(ROOTFSUBIFS) targethelp +endif
Hi, Phil Sutter wrote,
This implements UBIFS rootfs, enables it for mips targets and adds the necessary settings for rb532.
Thanks for the patch. I think ubinize.cfg is missing somehow: iniparser: cannot open /home/wbx/openadk/target/mips/mikrotik-rb532/ubinize.cfg ubinize: error!: cannot load the input ini file "/home/wbx/openadk/target/mips/mikrotik-rb532/ubinize.cfg"
Signed-off-by: Phil Sutter phil@nwl.cc
mk/image.mk | 19 +++++++++++++++++++ mk/rootfs.mk | 1 + target/config/Config.in.rootfs | 9 +++++++++ target/linux/config/Config.in.flash | 23 ++++++++++++++++++++++- target/mips/Makefile | 8 ++++++++ 5 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/mk/image.mk b/mk/image.mk index 6b704f200938c..84d6ab9a80bd9 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -122,6 +122,7 @@ TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel INITRAMFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img ROOTFSJFFS2= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img +ROOTFSUBIFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-ubifs.img ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.xz ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.xz ROOTFSISO= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso @@ -191,6 +192,24 @@ ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR} PATH='${HOST_PATH}' mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \ --pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE)
+${FW_DIR}/${ROOTFSUBIFS}: ${TARGET_DIR}
- ( \
PATH='${HOST_PATH}'; \
SP_SIZE='${ADK_TARGET_FLASH_SUBPAGE_SIZE}'; \
PG_SZIE='${ADK_TARGET_FLASH_PAGE_SIZE}'; \
^^^^^^^
This seems like a typo. Can you resend this patch with an update to both issues?
Rest of series looks good to me.
best regards Waldemar