diff mbox

[OpenWrt-Devel] add ubifs filesystem for image building system

Message ID BLU180-W591D22C60D37B614425937D0F00@phx.gbl
State Rejected
Headers show

Commit Message

YounJaeRho Jan. 2, 2016, 2:11 p.m. UTC
Currently, the devices which actually uses ubifs filesystem uses squashfs filesystem
Thus openwrt binary image have a wrong squashfs- prefix not ubifs- which gives user confusion
This patch add ubifs filesystem for image building system but not for legacy system

Signed-off-by: YounJae Rho <luxflow@live.com>
---
 include/image.mk                     | 3 ++-
 target/linux/ipq806x/image/Makefile  | 3 ++-
 target/linux/kirkwood/image/Makefile | 4 ++--
 target/linux/ramips/image/Makefile   | 4 ++--
 target/linux/ramips/mt7621/target.mk | 2 +-
 5 files changed, 9 insertions(+), 7 deletions(-)

--
2.5.0

Comments

Felix Fietkau Jan. 2, 2016, 3:02 p.m. UTC | #1
On 2016-01-02 15:11, RhoYounJae wrote:
> Currently, the devices which actually uses ubifs filesystem uses squashfs filesystem
> Thus openwrt binary image have a wrong squashfs- prefix not ubifs- which gives user confusion
> This patch add ubifs filesystem for image building system but not for legacy system
You're right about one thing: These images do use ubifs, however only as
an overlay. The base filesystem is squashfs, just like on all those NOR
flash based devices (which use jffs2 as overlay).

I might accept a patch that adds ubifs as an option, if you can convince
me that it's actually useful, but replacing the squashfs images with
ubifs ones is not an option.

- Felix
Daniel Golle Jan. 3, 2016, 9:17 p.m. UTC | #2
On Sat, Jan 02, 2016 at 04:02:58PM +0100, Felix Fietkau wrote:
> On 2016-01-02 15:11, RhoYounJae wrote:
> > Currently, the devices which actually uses ubifs filesystem uses squashfs filesystem
> > Thus openwrt binary image have a wrong squashfs- prefix not ubifs- which gives user confusion
> > This patch add ubifs filesystem for image building system but not for legacy system
> You're right about one thing: These images do use ubifs, however only as
> an overlay. The base filesystem is squashfs, just like on all those NOR
> flash based devices (which use jffs2 as overlay).
> 
> I might accept a patch that adds ubifs as an option, if you can convince
> me that it's actually useful, but replacing the squashfs images with
> ubifs ones is not an option.

Similar to having a JFFS2 read-write-mounted rootfs without any overlay
can make sense in certain (rare) scenaria. I intended to use a ubifs
rootfs in those situations on devices which need UBI.
There already is a way to generate images having ubifs rootfs, see e.g.
https://dev.openwrt.org/browser/trunk/target/linux/oxnas/image/Makefile#L90

UBI and UBIFS image generation is still kind of a mess because not all
targets have been migrated to the 'new way' (using SysupgradeNAND and
UbinizeImage) yet. Once this is done, include/image.mk can be cleaned
up and the old stuff (still needed on targets relying on a static
ubinize.cfg) can be removed...


Cheers


Daniel
Felix Fietkau Jan. 3, 2016, 9:22 p.m. UTC | #3
On 2016-01-03 22:17, Daniel Golle wrote:
> On Sat, Jan 02, 2016 at 04:02:58PM +0100, Felix Fietkau wrote:
>> On 2016-01-02 15:11, RhoYounJae wrote:
>> > Currently, the devices which actually uses ubifs filesystem uses squashfs filesystem
>> > Thus openwrt binary image have a wrong squashfs- prefix not ubifs- which gives user confusion
>> > This patch add ubifs filesystem for image building system but not for legacy system
>> You're right about one thing: These images do use ubifs, however only as
>> an overlay. The base filesystem is squashfs, just like on all those NOR
>> flash based devices (which use jffs2 as overlay).
>> 
>> I might accept a patch that adds ubifs as an option, if you can convince
>> me that it's actually useful, but replacing the squashfs images with
>> ubifs ones is not an option.
> 
> Similar to having a JFFS2 read-write-mounted rootfs without any overlay
> can make sense in certain (rare) scenaria. I intended to use a ubifs
> rootfs in those situations on devices which need UBI.
> There already is a way to generate images having ubifs rootfs, see e.g.
> https://dev.openwrt.org/browser/trunk/target/linux/oxnas/image/Makefile#L90
Not a very good example, it still uses the old image building code ;)

- Felix
diff mbox

Patch

diff --git a/include/image.mk b/include/image.mk
index 1522dd7..9675146 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -71,6 +71,7 @@  fs-types-$(CONFIG_TARGET_ROOTFS_JFFS2) += $(addprefix jffs2-,$(JFFS2_BLOCKSIZE))
 fs-types-$(CONFIG_TARGET_ROOTFS_JFFS2_NAND) += $(addprefix jffs2-nand-,$(NAND_BLOCKSIZE))
 fs-types-$(CONFIG_TARGET_ROOTFS_EXT4FS) += ext4
 fs-types-$(CONFIG_TARGET_ROOTFS_ISO) += iso
+fs-types-$(CONFIG_TARGET_ROOTFS_UBIFS) += ubifs
 fs-subtypes-$(CONFIG_TARGET_ROOTFS_JFFS2) += $(addsuffix -raw,$(addprefix jffs2-,$(JFFS2_BLOCKSIZE)))
 fs-subtypes-$(CONFIG_TARGET_ROOTFS_CPIOGZ) += cpiogz
 fs-subtypes-$(CONFIG_TARGET_ROOTFS_TARGZ) += targz
@@ -453,7 +454,7 @@  define Device/Init
   KERNEL_NAME := vmlinux
   KERNEL_SIZE :=

-  FILESYSTEMS := $(TARGET_FILESYSTEMS)
+  FILESYSTEMS := $(filter-out ubifs,$(TARGET_FILESYSTEMS))
 endef

 define Device/ExportVar
diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile
index 14cf442..a3481c5 100644
--- a/target/linux/ipq806x/image/Makefile
+++ b/target/linux/ipq806x/image/Makefile
@@ -65,6 +65,7 @@  endef

 define Device/UbiFit
        KERNEL_IN_UBI := 1
+       FILESYSTEMS := ubifs
        IMAGES := nand-factory.ubi nand-sysupgrade.tar
        IMAGE/nand-factory.ubi := append-ubi
        IMAGE/nand-sysupgrade.tar := sysupgrade-nand
@@ -72,7 +73,7 @@  endef

 define Device/DniImage
        PROFILES += $$(DEVICE_NAME)
-       FILESYSTEMS := squashfs
+       FILESYSTEMS := ubifs
        KERNEL_SUFFIX := -uImage
        KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
        KERNEL = kernel-bin | append-dtb | pad-to $$$$(($$(KERNEL_SIZE)-2*64-1)) | uImage none | append-file $(KDIR)/root.dummy
diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile
index 3fc84aa..88028e8 100644
--- a/target/linux/kirkwood/image/Makefile
+++ b/target/linux/kirkwood/image/Makefile
@@ -25,7 +25,7 @@  define Device/linksys-audi
   SUBPAGESIZE := 256
   BLOCKSIZE := 16KiB
   KERNEL_SIZE := 2624k
-  FILESYSTEMS := squashfs
+  FILESYSTEMS := ubifs
   PROFILES := Generic AUDI
   IMAGES := factory.bin sysupgrade.tar
   IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
@@ -38,7 +38,7 @@  define Device/linksys-viper
   SUBPAGESIZE := 512
   BLOCKSIZE := 128KiB
   KERNEL_SIZE := 2688k
-  FILESYSTEMS := squashfs
+  FILESYSTEMS := ubifs
   PROFILES := Generic VIPER
   IMAGES := factory.bin sysupgrade.tar
   IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile
index 6d4dd64..a62e905 100644
--- a/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -1064,13 +1064,13 @@  define Device/wf-2881
   BLOCKSIZE := 128KiB
   PAGESIZE := 2048
   KERNEL_SIZE := 2097152
-  FILESYSTEMS := squashfs
+  FILESYSTEMS := ubifs
   IMAGE/sysupgrade.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE)
 endef

 define Device/ubnt-erx
   DTS := UBNT-ERX
-  FILESYSTEMS := squashfs
+  FILESYSTEMS := ubifs
   KERNEL_SIZE := 3145728
   KERNEL := $(KERNEL_DTB) | uImage lzma
   IMAGES := sysupgrade.tar factory-initramfs.tar
diff --git a/target/linux/ramips/mt7621/target.mk b/target/linux/ramips/mt7621/target.mk
index 4e38dbd..858804b 100644
--- a/target/linux/ramips/mt7621/target.mk
+++ b/target/linux/ramips/mt7621/target.mk
@@ -5,7 +5,7 @@ 
 SUBTARGET:=mt7621
 BOARDNAME:=MT7621 based boards
 ARCH_PACKAGES:=ramips_1004kc
-FEATURES+=usb
+FEATURES+=usb ubifs nand
 CPU_TYPE:=1004kc
 CPU_SUBTYPE:=dsp
 CFLAGS:=-Os -pipe -mmt -mips32r2 -mtune=1004kc