Commit 8797a9cd authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

Add support for the RTAI real-time extension



[Peter: fix rtai Config.in]
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent a473a616
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
##################################################
# 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
+1 −0
Original line number Diff line number Diff line
@@ -489,6 +489,7 @@ endmenu

menu "Real-Time"
source "package/xenomai/Config.in"
source "package/rtai/Config.in"
endmenu

menu "Shell and utilities"

package/rtai/Config.in

0 → 100644
+7 −0
Original line number Diff line number Diff line
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

package/rtai/rtai.mk

0 → 100644
+15 −0
Original line number Diff line number Diff line
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))