[FE training-materials-updates] Realtime lab update
Michael Opdenacker
michael.opdenacker at free-electrons.com
Thu Dec 11 17:53:47 CET 2014
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=d4c7e09611ea52a0c3cb289051bcd3d99ab7dbb8
>---------------------------------------------------------------
commit d4c7e09611ea52a0c3cb289051bcd3d99ab7dbb8
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Thu Dec 11 17:52:27 2014 +0100
Realtime lab update
- Switching to the latest Xenomai release, supporting the Xplained
board.
- This substantially simplifies the lab!
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
d4c7e09611ea52a0c3cb289051bcd3d99ab7dbb8
labs/sysdev-real-time/sysdev-real-time.tex | 69 ++++++++++--------------------
1 file changed, 23 insertions(+), 46 deletions(-)
diff --git a/labs/sysdev-real-time/sysdev-real-time.tex b/labs/sysdev-real-time/sysdev-real-time.tex
index dc7cc34..3476d32 100644
--- a/labs/sysdev-real-time/sysdev-real-time.tex
+++ b/labs/sysdev-real-time/sysdev-real-time.tex
@@ -16,16 +16,6 @@ POSIX real-time API, and against Xenomai's POSIX skin.
Go to the \code{$HOME/embedded-linux-labs/realtime/rttest} directory.
-If you are using a 64 bit installation of Ubuntu, install support for
-executables built with a 32 bit C library, if you didn't do it
-previously:
-
-\begin{verbatim}
-sudo apt-get install ia32-libs
-\end{verbatim}
-
-This will be needed to use the toolchain from Code Sourcery.
-
Install the \code{netcat} package.
\section{Root filesystem}
@@ -38,7 +28,7 @@ supports Xenomai.
Let's build this with Buildroot.
-Reuse and extract the Buildroot 2014.05 sources. Configure Buildroot
+Reuse and extract the Buildroot 2014.11 sources. Configure Buildroot
with the following settings, using the \code{/} command in \code{make
menuconfig} to find parameters by their name:
@@ -114,7 +104,8 @@ Let's configure our \code{PATH} to use this toolchain:
\scriptsize
\begin{verbatim}
-export PATH=$HOME/embedded-linux-labs/realtime/rttest/buildroot-2014.05/output/host/usr/bin:$PATH
+export
+PATH=$HOME/embedded-linux-labs/realtime/rttest/buildroot-XXXX.YY/output/host/usr/bin:$PATH
\end{verbatim}
\normalsize
@@ -149,10 +140,11 @@ Now, do the following tests:
board, by running \code{/root/doload 300 > /dev/null 2>&1 &} on the
board, and using \code{netcat 192.168.0.100 5566} on your
workstation in order to flood the network interface of the Xplained
- board (where 192.168.0.100 is the IP address of the Xplained board).
+ board (where \code{192.168.0.100} is the IP address of the Xplained
+ board).
\item Test your program again with the workload, but by running the
- program in the \code{SCHED_FIFO} scheduling class at priority 99,
- using the \code{chrt} command.
+ program in the \code{SCHED_FIFO} scheduling class at priority
+ \code{99}, using the \code{chrt} command.
\end{itemize}
\section{Testing the preemptible kernel}
@@ -166,44 +158,29 @@ the results.
\section{Testing Xenomai scheduling latency}
-Since the Xplained is pretty recent, no Xenomai release has been made
-yet with support for it. Fortunately, it is supported in the current
-development tree.
-
-As the development tree moves quite often, we made a patch to apply on
-a 3.14 kernel. First, extract a 3.14 kernel but not the 3.14.7 as the
-patch only apply on this release. Then apply the patch
-\code{ipipe-arm-3.14.patch.xz} provided in data:
+Stay in \code{$HOME/embedded-linux-labs/realtime/rttest}.
-\begin{verbatim}
-cd $HOME/embedded-linux-labs/realtime/rttest
-tar xf $HOME/embedded-linux-labs/kernel/linux-3.13.tar.xz
-cd linux-3.13/
-xzcat $HOME/embedded-linux-labs/kernel/patch-3.14.xz | patch -p1
-xzcat ../data/ipipe-arm-3.14.patch.xz | patch -p1
-cd ..
-mv linux-3.13/ linux-3.14-ipipe
-\end{verbatim}
+Download the latest 2.6.x release of Xenomai, and extract it.
-Now, download Xenomai's master, in order to apply the extra patches
-needed for the interaction with the Xenomai user-space components.
+As you can see in the \code{ksrc/arch/arm/patches} directory,
+the most recent Linux kernel version supported by Xenomai for ARM is
+3.14.17.
-\begin{verbatim}
-cd $HOME/embedded-linux-labs/realtime/rttest
-git clone git://git.xenomai.org/xenomai-2.6.git xenomai
-cd xenomai
-git checkout 589882956280
-\end{verbatim}
+Then, download the 3.14.17 Linux sources ({\bf not the latest 3.14.x
+sources} because the Xenomai patches only apply to this exact version),
+and extract them.
Now, prepare our kernel for Xenomai compilation:
\begin{verbatim}
cd $HOME/embedded-linux-labs/realtime/rttest
-./xenomai/scripts/prepare-kernel.sh --arch=arm --linux=linux-3.14-ipipe/
+./xenomai-2.6.x/scripts/prepare-kernel.sh --arch=arm \
+--linux=linux-3.14.17 \
+--adeos=xenomai-2.6.x/ksrc/arch/arm/patches/ipipe-core-3.14.17-arm-4.patch
\end{verbatim}
-Now, run the kernel configuration interface, and make sure that
-the below options are enabled, taking your time to read their
-description:
+Now, configure your kernel for SAMA5 boards, then start the kernel
+configuration interface, and make sure that the below options are
+enabled, taking your time to read their description:
\begin{itemize}
\item \code{CONFIG_XENOMAI}
@@ -217,7 +194,7 @@ source directory, and force Buildroot to build the host variant of
{\em pkg-config}:
\begin{verbatim}
-cd $HOME/embedded-linux-labs/realtime/rttest/buildroot-2014.05/
+cd $HOME/embedded-linux-labs/realtime/rttest/buildroot-2014.11/
make host-pkgconf
\end{verbatim}
@@ -227,7 +204,7 @@ compile \code{rttest} for the Xenomai POSIX skin:
\scriptsize
\begin{verbatim}
cd $HOME/embedded-linux-labs/realtime/rttest/nfsroot/root
-export PATH=$HOME/embedded-linux-labs/realtime/rttest/buildroot-2014.05/output/host/usr/bin:$PATH
+export PATH=$HOME/embedded-linux-labs/realtime/rttest/buildroot-2014.11/output/host/usr/bin:$PATH
arm-none-linux-gnueabi-gcc -o rttest rttest.c \
$(pkg-config --libs --cflags libxenomai_posix)
\end{verbatim}
More information about the training-materials-updates
mailing list