소스 검색

squashfs: add v4.0 support and version selection

Squashfs 4.0 is needed to create file systems for the mainline squashfs
version (mainline from 2.6.29). This is unfortunately not compatible with
the old 3.x version and the external kernel patches, so add a choice
between the 2 versions.
Peter Korsgaard 16 년 전
부모
커밋
7092bd901d
2개의 변경된 파일31개의 추가작업 그리고 1개의 파일을 삭제
  1. 26 0
      target/squashfs/Config.in
  2. 5 1
      target/squashfs/squashfsroot.mk

+ 26 - 0
target/squashfs/Config.in

@@ -4,3 +4,29 @@ config BR2_TARGET_ROOTFS_SQUASHFS
 	help
 	  Build a squashfs root filesystem
 
+choice
+	prompt "Squashfs version"
+	default BR2_TARGET_ROOTFS_SQUASHFS_4
+	depends on BR2_TARGET_ROOTFS_SQUASHFS
+	help
+	  Select squashfs version - This must match what your kernel
+	  supports. Select 3.x if you use the legacy 3.x kernel
+	  patches (pre 2.6.29), and 4.x otherwise.
+
+config BR2_TARGET_ROOTFS_SQUASHFS_3
+       depends on BR2_DEPRECATED || BR2_RECENT
+       bool "3.x"
+       help
+         Select this if you use the legacy 3.x kernel patches (pre 2.6.29)
+
+config BR2_TARGET_ROOTFS_SQUASHFS_4
+       bool "4.x"
+       help
+         Select this if you use the squashfs version in mainline (from 2.6.29)
+
+endchoice
+
+config BR2_TARGET_ROOTFS_SQUASHFS_VERSION
+	string
+	default "3.4"	if BR2_TARGET_ROOTFS_SQUASHFS_3
+	default "4.0"	if BR2_TARGET_ROOTFS_SQUASHFS_4

+ 5 - 1
target/squashfs/squashfsroot.mk

@@ -3,7 +3,8 @@
 # mksquashfs to build to target squashfs filesystems
 #
 #############################################################
-SQUASHFS_VERSION:=3.4
+SQUASHFS_VERSION:=$(strip $(subst ",,$(BR2_TARGET_ROOTFS_SQUASHFS_VERSION)))
+#"))
 SQUASHFS_DIR:=$(BUILD_DIR)/squashfs$(SQUASHFS_VERSION)
 SQUASHFS_SOURCE:=squashfs$(SQUASHFS_VERSION).tar.gz
 SQUASHFS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/squashfs
@@ -35,11 +36,14 @@ squashfs-dirclean:
 # Build the squashfs root filesystem image
 #
 #############################################################
+ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS_3),y)
+# 4.x is always little endian
 ifeq ($(BR2_ENDIAN),"BIG")
 SQUASHFS_ENDIANNESS=-be
 else
 SQUASHFS_ENDIANNESS=-le
 endif
+endif
 
 SQUASHFS_TARGET:=$(IMAGE).squashfs