Add support for the RTAI real-time extension

[Peter: fix rtai Config.in]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Thomas Petazzoni 2011-09-17 22:22:58 +02:00 committed by Peter Korsgaard
parent a473a616d2
commit 8797a9cd1f
5 changed files with 83 additions and 0 deletions

View File

@ -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

47
linux/linux-ext-rtai.mk Normal file
View File

@ -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

View File

@ -489,6 +489,7 @@ endmenu
menu "Real-Time"
source "package/xenomai/Config.in"
source "package/rtai/Config.in"
endmenu
menu "Shell and utilities"

7
package/rtai/Config.in Normal file
View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_RTAI
bool "rtai"
depends on BR2_LINUX_KERNEL_EXT_RTAI
help
RTAI - the RealTime Application Interface for Linux.
http://www.rtai.org

15
package/rtai/rtai.mk Normal file
View File

@ -0,0 +1,15 @@
RTAI_VERSION = 3.8.1
RTAI_SOURCE = rtai-$(RTAI_VERSION).tar.bz2
RTAI_SITE = http://www.rtai.org/RTAI/
RTAI_DEPENDENCIES = linux
RTAI_CONF_OPT = \
--with-linux-dir=$(LINUX_DIR) \
--disable-leds \
--disable-rtailab \
--with-module-dir=/lib/modules/$(LINUX_VERSION_PROBED)/kernel/rtai
RTAI_MAKE = $(MAKE1)
$(eval $(call AUTOTARGETS,package,rtai))