From 8797a9cd1fe6723db34b0c125d0d9d04e3483e8d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 17 Sep 2011 22:22:58 +0200 Subject: Add support for the RTAI real-time extension [Peter: fix rtai Config.in] Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- linux/Config.ext.in | 13 +++++++++++++ linux/linux-ext-rtai.mk | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 linux/linux-ext-rtai.mk (limited to 'linux') diff --git a/linux/Config.ext.in b/linux/Config.ext.in index 893edb58b..8a9f87ec4 100644 --- a/linux/Config.ext.in +++ b/linux/Config.ext.in @@ -15,4 +15,17 @@ config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH Download it at http://download.gna.org/adeos/patches/v2.6/$(ARCH)/ and verify that your kernel version in buildroot matches. +# RTAI +config BR2_LINUX_KERNEL_EXT_RTAI + bool "RTAI Real-time patch" + select BR2_PACKAGE_RTAI + help + RTAI Kernel part. + +config BR2_LINUX_KERNEL_EXT_RTAI_PATCH + depends on BR2_LINUX_KERNEL_EXT_RTAI + string "Path for RTAI patch file" + help + Optionally, explicitly specify the RTAI patch to use. + endmenu diff --git a/linux/linux-ext-rtai.mk b/linux/linux-ext-rtai.mk new file mode 100644 index 000000000..a54230d32 --- /dev/null +++ b/linux/linux-ext-rtai.mk @@ -0,0 +1,47 @@ +################################################## +# Linux RTAI extensions +# +# Patch the linux kernel with RTAI extension +################################################## + +ifeq ($(BR2_LINUX_KERNEL_EXT_RTAI),y) +# Add dependency to RTAI (user-space) which provide kernel patches +LINUX_DEPENDENCIES += rtai-patch + +RTAI_PATCH = $(call qstrip,$(BR2_LINUX_KERNEL_EXT_RTAI_PATCH)) + +ifeq ($(KERNEL_ARCH),i386) +RTAI_ARCH = x86 +else ifeq ($(KERNEL_ARCH),x86_64) +RTAI_ARCH = x86 +else ifeq ($(KERNEL_ARCH),powerpc) +RTAI_ARCH = ppc +else +RTAI_ARCH = $(KERNEL_ARCH) +endif + +# Prepare kernel patch +ifeq ($(RTAI_PATCH),) +define RTAI_PREPARE_KERNEL + kver=`$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelversion` ; \ + if test -f $(RTAI_DIR)/base/arch/$(RTAI_ARCH)/patches/hal-linux-$${kver}-*patch ; then \ + support/script/apply-patches.sh $(LINUX_DIR) \ + $(RTAI_DIR)/base/arch/$(RTAI_ARCH)/patches/ \ + hal-linux-$${kver}-*patch ; \ + else \ + echo "No RTAI patch for your kernel version" ; \ + exit 1 ; \ + fi +endef +else +define RTAI_PREPARE_KERNEL + support/script/apply-patches.sh \ + $(LINUX_DIR) \ + $(dir $(RTAI_PATCH)) \ + $(notdir $(RTAI_PATCH)) +endef +endif + +LINUX_POST_PATCH_HOOKS += RTAI_PREPARE_KERNEL + +endif #BR2_LINUX_EXT_RTAI -- cgit v1.2.3