[Buildroot] [PATCH v1 2/3] aufs: new kernel extension.
Christian Stewart
christian at paral.in
Fri Jul 31 23:56:56 UTC 2015
Adding a kernel extension that patches the kernel with the correct
version of aufs-standalone. This relies on the user ensuring the
correct version is set in the configs.
Signed-off-by: Christian Stewart <christian at paral.in>
---
linux/Config.ext.in | 54 ++++++++++++++++++++++++++++++++++++++
linux/linux-ext-aufs-standalone.mk | 23 ++++++++++++++++
2 files changed, 77 insertions(+)
create mode 100644 linux/linux-ext-aufs-standalone.mk
diff --git a/linux/Config.ext.in b/linux/Config.ext.in
index ea79aa1..b6b48cf 100644
--- a/linux/Config.ext.in
+++ b/linux/Config.ext.in
@@ -62,4 +62,58 @@ config BR2_LINUX_KERNEL_EXT_FBTFT
https://github.com/notro/fbtft
+# aufs-standalone
+config BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
+ bool "Aufs Filesystem Module patch"
+ depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_PACKAGE_AUFS_STANDALONE
+ help
+ Aufs is split in two parts: a kernel part and a userspace
+ part. Enabling this option automatically selects the aufs
+ standalone (module) package and patches the Linux kernel
+ built by Buildroot with the aufs kernel part (ie fs/aufs).
+
+ It is important to use the correct branch of aufs-standalone.
+
+comment "aufs needs a toolchain w/ threads"
+ depends on BR2_USE_MMU
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+choice
+ prompt "aufs major version"
+ depends on BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
+ default BR2_PACKAGE_AUFS_4X if BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4.1
+ default BR2_PACKAGE_AUFS_3X if !(BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4.1)
+
+config BR2_PACKAGE_AUFS_STANDALONE_4X
+ bool "4.x"
+
+config BR2_PACKAGE_AUFS_STANDALONE_3X
+ bool "3.x"
+
+endchoice
+
+# While we don't build from the kernel headers
+# we can get a default value here
+config BR2_PACKAGE_AUFS_STANDALONE_VERSION
+ string "aufs-standalone branch"
+ depends on BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
+ help
+ Aufs-standalone repository branch to use. Must match kernel version.
+ default "3.0" if BR2_KERNEL_HEADERS_3_0
+ default "3.1" if BR2_KERNEL_HEADERS_3_2 || BR2_KERNEL_HEADERS_3_4
+ default "3.10" if BR2_KERNEL_HEADERS_3_10
+ default "3.11" if BR2_KERNEL_HEADERS_3_11
+ default "3.12" if BR2_KERNEL_HEADERS_3_12
+ default "3.13" if BR2_KERNEL_HEADERS_3_13
+ default "3.14" if BR2_KERNEL_HEADERS_3_14
+ default "3.15" if BR2_KERNEL_HEADERS_3_15
+ default "3.16" if BR2_KERNEL_HEADERS_3_16
+ default "3.17" if BR2_KERNEL_HEADERS_3_17
+ default "3.18" if BR2_KERNEL_HEADERS_3_18
+ default "3.19" if BR2_KERNEL_HEADERS_3_19
+ default "4.0" if BR2_KERNEL_HEADERS_4_0
+ default "4.1" if BR2_KERNEL_HEADERS_4_1
+
endmenu
diff --git a/linux/linux-ext-aufs-standalone.mk b/linux/linux-ext-aufs-standalone.mk
new file mode 100644
index 0000000..4ef6d60
--- /dev/null
+++ b/linux/linux-ext-aufs-standalone.mk
@@ -0,0 +1,23 @@
+################################################################################
+# Linux Aufs extensions
+#
+# Patch the linux kernel with aufs extension
+################################################################################
+
+LINUX_EXTENSIONS += aufs-standalone
+
+define AUFS_STANDALONE_PREPARE_KERNEL
+ if test -d $(LINUX_DIR)/fs/aufs/; then \
+ echo "Your kernel already supports AUFS. Not patching."; \
+ else \
+ $(APPLY_PATCHES) $(LINUX_DIR) $(AUFS_STANDALONE_SRCDIR) \
+ $(AUFS_STANDALONE_MAJOR_VERSION)-kbuild.patch \
+ $(AUFS_STANDALONE_MAJOR_VERSION)-base.patch \
+ $(AUFS_STANDALONE_MAJOR_VERSION)-mmap.patch \
+ $(AUFS_STANDALONE_MAJOR_VERSION)-standalone.patch ; \
+ fi
+ cp $(AUFS_STANDALONE_SRCDIR)/Documentation/ABI/testing/* $(LINUX_DIR)/Documentation/ABI/testing/
+ cp -r $(AUFS_STANDALONE_SRCDIR)/Documentation/filesystems/aufs/ $(LINUX_DIR)/Documentation/filesystems/aufs/
+ cp -r $(AUFS_STANDALONE_SRCDIR)/fs/aufs/ $(LINUX_DIR)/fs/
+ cp $(AUFS_STANDALONE_SRCDIR)/include/uapi/linux/aufs_type.h $(LINUX_DIR)/include/uapi/linux/
+endef
--
2.1.4
More information about the buildroot
mailing list