summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
authorThomas De Schampheleire2011-09-17 22:22:52 +0200
committerPeter Korsgaard2011-09-18 22:59:44 +0200
commit956d4ab0f501c44f977297d8faac95afa43f3082 (patch)
tree1a41318da4d95f7c4b36659ee408434b4078a332 /linux
parentlinux: Add Linux Kernel extensions menu (diff)
downloadbuildroot-956d4ab0f501c44f977297d8faac95afa43f3082.tar.gz
buildroot-956d4ab0f501c44f977297d8faac95afa43f3082.tar.xz
buildroot-956d4ab0f501c44f977297d8faac95afa43f3082.zip
Add xenomai real-time Framework to buildroot
[Fixes by Thomas, including comments from Arnout: * Use AUTOTARGETS instead of GENTARGETS * Use $(KERNEL_ARCH) instead of $(BR2_ARCH) as argument to the prepare-kernel.sh script. This allows the arch name to be fixed with the usual sed expressions and the quotes to be stripped. * Add the --verbose option to prepare-kernel.sh. This allows to get some clear error message when no Xenomai patch has been found for the current kernel version. * Improve the help texts as suggested by Arnout, and remove the now useless README file. * Add a BR2_PACKAGE_XENOMAI_SMP option, instead of poking inside the kernel configuration to find out whether SMP is enabled or not. This cannot work because: 1) the kernel might be built outside of Buildroot and 2) if the kernel is built inside Buildroot, it is built *after* Xenomai, so the kernel configuration file is typically not yet present. * Simplify the ARM subarchitecture selection as suggested by Arnout. * Remove the documentation and development files according to Buildroot standards (using BR2_HAVE_DOCUMENTATION and BR2_HAVE_DEVFILES). * Simplify the /etc/ld.so.conf modification logic. ] [Peter: whitespace fixes] Signed-off-by: Benoit Mauduit <benoit.mauduit@openwide.fr> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'linux')
-rw-r--r--linux/Config.ext.in15
-rw-r--r--linux/linux-ext-xenomai.mk30
2 files changed, 45 insertions, 0 deletions
diff --git a/linux/Config.ext.in b/linux/Config.ext.in
index 50e801d67..893edb58b 100644
--- a/linux/Config.ext.in
+++ b/linux/Config.ext.in
@@ -1,3 +1,18 @@
menu "Linux Kernel Extensions"
+# Xenomai
+config BR2_LINUX_KERNEL_EXT_XENOMAI
+ bool "Adeos/Xenomai Real-time patch"
+ select BR2_PACKAGE_XENOMAI
+ help
+ Xenomai Kernel part.
+
+config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH
+ depends on BR2_LINUX_KERNEL_EXT_XENOMAI
+ string "Path for Adeos patch file"
+ help
+ Optionally, explicitly specify the Adeos patch to use.
+ Download it at http://download.gna.org/adeos/patches/v2.6/$(ARCH)/
+ and verify that your kernel version in buildroot matches.
+
endmenu
diff --git a/linux/linux-ext-xenomai.mk b/linux/linux-ext-xenomai.mk
new file mode 100644
index 000000000..e855deddf
--- /dev/null
+++ b/linux/linux-ext-xenomai.mk
@@ -0,0 +1,30 @@
+##################################################
+# Linux Adeos/Xenomai extensions
+#
+# Patch the linux kernel with xenomai extension
+##################################################
+
+ifeq ($(BR2_LINUX_KERNEL_EXT_XENOMAI),y)
+# Add dependency to xenomai (user-space) which provide ksrc part
+LINUX_DEPENDENCIES += xenomai
+
+# Adeos patch version
+XENOMAI_ADEOS_PATCH = $(call qstrip,$(BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH))
+ifeq ($(XENOMAI_ADEOS_PATCH),)
+XENOMAI_ADEOS_OPT = --default
+else
+XENOMAI_ADEOS_OPT = --adeos=$(XENOMAI_ADEOS_PATCH)
+endif
+
+# Prepare kernel patch
+define XENOMAI_PREPARE_KERNEL
+ $(XENOMAI_DIR)/scripts/prepare-kernel.sh \
+ --linux=$(LINUX_DIR) \
+ --arch=$(KERNEL_ARCH) \
+ $(XENOMAI_ADEOS_OPT) \
+ --verbose
+endef
+
+LINUX_POST_EXTRACT_HOOKS += XENOMAI_PREPARE_KERNEL
+
+endif #BR2_LINUX_EXT_XENOMAI