diff --git a/Config.in b/Config.in
index 2074245758c6b8c578df3c9fc381c932a955dd3f..a7ef477b200091b13079253b52a352f784312e9d 100644
--- a/Config.in
+++ b/Config.in
@@ -107,13 +107,47 @@ menu "Target Images"
 		help
 		  Build a squashfs-lzma root filesystem
 
-	config TARGET_ROOTFS_UBIFS
+	menuconfig TARGET_ROOTFS_UBIFS
 		bool "ubifs"
 		default y if USES_UBIFS
 		depends on USES_UBIFS
 		help
 		  Build a ubifs root filesystem
 
+		choice
+			prompt "compression"
+			default TARGET_UBIFS_COMPRESSION_NONE
+			depends on TARGET_ROOTFS_UBIFS
+			help
+			  Select compression type
+
+			config TARGET_UBIFS_COMPRESSION_NONE
+				bool "none"
+
+			config TARGET_UBIFS_COMPRESSION_LZO
+				bool "lzo"
+
+			config TARGET_UBIFS_COMPRESSION_ZLIB
+				bool "zlib"
+		endchoice
+
+		config TARGET_UBIFS_FREE_SPACE_FIXUP
+			bool "free space fixup" if TARGET_ROOTFS_UBIFS
+			default y
+			help
+			  The file-system free space has to be fixed up on first mount
+
+		config TARGET_UBIFS_JOURNAL_SIZE
+			string
+			prompt "journal size" if TARGET_ROOTFS_UBIFS
+			default "512KiB"
+
+		config TARGET_UBIFS_SQUASH_UIDS
+			bool "squash uids" if TARGET_ROOTFS_UBIFS
+			default n
+			help
+			  Squash owners making all files owned by root
+
 	comment "Image Options"
 
 	source "target/linux/*/image/Config.in"
diff --git a/include/image.mk b/include/image.mk
index 5d512df38d2630d3783c5ad68229036b214025a5..e0731f0895b1dfc551c5d0948f3c190764028b53 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -116,7 +116,15 @@ endif
 ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),)
     define Image/mkfs/ubifs
 		$(CP) ./ubinize.cfg $(KDIR)
-		$(STAGING_DIR_HOST)/bin/mkfs.ubifs $(UBIFS_OPTS) $(MKFS_DEVTABLE_OPT) -o $(KDIR)/root.ubifs -d $(TARGET_DIR)
+		$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
+			$(UBIFS_OPTS) \
+			$(if $(CONFIG_TARGET_UBIFS_FREE_SPACE_FIXUP),--space-fixup) \
+			$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_NONE),--force-compr=none) \
+			$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_LZO),--force-compr=lzo) \
+			$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--force-compr=zlib) \
+			--jrn-size=$(CONFIG_TARGET_UBIFS_JOURNAL_SIZE) \
+			-o $(KDIR)/root.ubifs \
+			-d $(TARGET_DIR)
 		$(call Image/Build,ubifs)
 		(cd $(KDIR); \
 		$(STAGING_DIR_HOST)/bin/ubinize $(UBINIZE_OPTS) -o $(KDIR)/root.ubi ubinize.cfg)