Commit 956d4ab0 authored by Thomas De Schampheleire's avatar Thomas De Schampheleire Committed by Peter Korsgaard
Browse files

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: default avatarBenoit Mauduit <benoit.mauduit@openwide.fr>
Signed-off-by: default avatarThomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 3011d235
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
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
+30 −0
Original line number Diff line number Diff line
##################################################
# 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
+4 −0
Original line number Diff line number Diff line
@@ -487,6 +487,10 @@ source "package/rpm/Config.in"
endif
endmenu

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

menu "Shell and utilities"
source "package/at/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+106 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_XENOMAI
	bool "Xenomai Userspace"
	help
	  Real-Time Framework for Linux
	  http://www.xenomai.org

	  Xenomai is split in two parts: a kernel part and an
	  userspace part.

	  This package contains the userspace part, which consists
	  mainly in libraries to write userspace real-time programs
	  that interact with the in-kernel Xenomai real-time core.

	  For those libraries to work, you need a Xenomai-enabled
	  kernel. This is possible in two ways:
	   - if you compile your kernel with Buildroot, you need to go
	     to Linux Kernel -> Linux Kernel Extensions to enable the
	     Xenomai extension.
	   - if you compile your kernel outside of Buildroot, you need
	     to make sure that it is Xenomai-enabled.

	  Finally, if you are using a static /dev, make sure to
	  uncomment the Xenomai entries listed in
	  target/generic/device_table_dev.txt.

if BR2_PACKAGE_XENOMAI

config BR2_PACKAGE_XENOMAI_VERSION
	string "Custom Xenomai version"
	help
	  Manually select Xenomai version.  If left empty, the default
	  version will be used.

	  Make sure that the selected version has a patch for your
	  selected Linux kernel. If it does not, download and select
	  a patch manually with
	  BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
	  Kernel -> Linux Kernel Extensions menu.

config BR2_PACKAGE_XENOMAI_SMP
	bool "Enable SMP support"
	help
	  This option allows to enable or disable SMP support. It has
	  to match your kernel configuration.

choice
	prompt "Xenomai ARM CPU type"
	depends on BR2_arm
	default BR2_PACKAGE_XENOMAI_CPU_GENERIC_ARM
	help
	  On the ARM architecture, Xenomai needs to be configured for
	  a specific sub-architecture.  Select the appropriate
	  sub-architecture from the list.

	config BR2_PACKAGE_XENOMAI_CPU_AT91RM9200
		bool "Atmel AT91RM9200"

	config BR2_PACKAGE_XENOMAI_CPU_AT91SAM926X
		bool "Atmel AT91SAM926X"

	config BR2_PACKAGE_XENOMAI_CPU_INTEGRATOR
		bool "ARM Ltd. Integrator"

	config BR2_PACKAGE_XENOMAI_CPU_IXP4XX
		bool "Intel IXP4XX (XScale)"

	config BR2_PACKAGE_XENOMAI_CPU_IMX
		bool "Freescale i.MX (MX1/MXL)"

	config BR2_PACKAGE_XENOMAI_CPU_IMX21
		bool "Freescale i.MX21"

	config BR2_PACKAGE_XENOMAI_CPU_MX2
		bool "Freescale MXC/MX2"

	config BR2_PACKAGE_XENOMAI_CPU_MX3
		bool "Freescale MXC/MX3"

	config BR2_PACKAGE_XENOMAI_CPU_SA1100
		bool "StrongARM SA1100"

	config BR2_PACKAGE_XENOMAI_CPU_S3C2410
		bool "S3C2410"

	config BR2_PACKAGE_XENOMAI_CPU_GENERIC_ARM
		bool "Generic ARM"

endchoice

# Now set CPU type. We force manually selected type even if detected in case
# user takes the risk.
config BR2_PACKAGE_XENOMAI_CPU_TYPE
	string
	depends on BR2_PACKAGE_XENOMAI && BR2_arm
	default "at91rm9200"  if BR2_PACKAGE_XENOMAI_CPU_AT91RM9200
	default "at91sam926x" if BR2_PACKAGE_XENOMAI_CPU_AT91SAM926X
	default "integrator"  if BR2_PACKAGE_XENOMAI_CPU_INTEGRATOR
	default "ixp4xx"      if BR2_PACKAGE_XENOMAI_CPU_IXP4XX
	default "generic"     if BR2_PACKAGE_XENOMAI_CPU_GENERIC_ARM
	default "imx"         if BR2_PACKAGE_XENOMAI_CPU_IMX
	default "imx21"       if BR2_PACKAGE_XENOMAI_CPU_IMX21
	default "mx2"         if BR2_PACKAGE_XENOMAI_CPU_MX2
	default "mx3"         if BR2_PACKAGE_XENOMAI_CPU_MX3
	default "s3c2410"     if BR2_PACKAGE_XENOMAI_CPU_S3C2410

endif
+11 −0
Original line number Diff line number Diff line
--- a/Makefile.in	2011-06-24 16:11:23.591449817 +0200
+++ b/Makefile.in	2011-06-24 16:20:29.638129633 +0200
@@ -719,7 +719,7 @@
 	  $$sudo mknod -m 666 $(DESTDIR)/dev/rtheap c 10 254 ; \
 	fi
 
-install-exec-local: devices
+install-exec-local:
 
 install-user:
 	$(MAKE) SUDO=false install
Loading