diff options
author | Thomas De Schampheleire <patrickdepinguin+buildroot@gmail.com> | 2011-09-17 22:22:52 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2011-09-18 22:59:44 +0200 |
commit | 956d4ab0f501c44f977297d8faac95afa43f3082 (patch) | |
tree | 1a41318da4d95f7c4b36659ee408434b4078a332 /linux | |
parent | 3011d235185b490e619dd8b01004538c5985b0ed (diff) |
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.in | 15 | ||||
-rw-r--r-- | linux/linux-ext-xenomai.mk | 30 |
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 |