= Installation Instructions = {{{#!wiki caution This information is outdated. Please refer to the [[http://www.litmus-rt.org/install.html|instructions on the project homepage]]. }}} The following instructions describe how to download and build the [[Releases|latest released version]] of LITMUS^RT^. If you intend to use LITMUS^RT^ for development, you should use our [[Repositories|source code repositories]] instead. == The Kernel == The extension to the Linux kernel is released as a patch against the Linux kernel. To install the LITMUS^RT^ kernel, first [[https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.3.tar.gz|download the Linux kernel 4.1.3]] and untar it in a directory of your choice (hereafter referred to as `$DIR`). Second, apply the LITMUS^RT^ patch (download the [[Releases|current version]]) and configure, compile, and install the kernel as usual. The patch is `-p1` applicable. To summarize, the LITMUS^RT^ kernel can be obtained, patched, and compiled with the following commands: {{{#!highlight bash numbers=disable cd $DIR # get Linux 4.1.3 wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.3.tar.gz tar xzf linux-4.1.3.tar.gz wget http://www.litmus-rt.org/releases/2016.1/litmus-rt-2016.1.patch mv linux-4.1.3 litmus-rt # apply the LITMUS RT patch cd litmus-rt patch -p1 < ../litmus-rt-2016.1.patch # create a working kernel configuration # - enable in-kernel preemptions # - don't use power management options like frequency scaling # - disable support for group scheduling # - disable "Write protect kernel read-only data structures" (in kernel debug) make menuconfig # compile the kernel make bzImage make modules # unless you are building static kernel (e.g., for QEMU) # proceed to install kernel, build initrd, etc. ... }}} When configuring the kernel, note that there is a menu (at the very end of the list) with LITMUS^RT^-specific configuration options. For reference, we provide a [[http://www.litmus-rt.org/releases/2016.1/x86_64-config|sample 64-bit configuration]] that is known to work under KVM. == The Userspace Library == The user-space library for real-time tasks, `liblitmus`, depends on the LITMUS^RT^ kernel kernel and provides its own build system. Run make help for instructions. Note that you will have to create a `.config` file in the library directory to point the build system to the kernel sources. For reference, we provide a sample [[http://www.litmus-rt.org/releases/2016.1/liblitmus-config|liblitmus configuration file]]. To summarize, the liblitmus can be obtained and compiled with the following commands: {{{#!highlight bash numbers=disable cd $DIR wget http://www.litmus-rt.org/releases/2016.1/liblitmus-2016.1.tgz tar xzf liblitmus-2016.1.tgz cd liblitmus wget http://www.litmus-rt.org/releases/2016.1/liblitmus-config mv liblitmus-config .config make }}} == Feather-Trace Tools == The Feather-Trace tools (also known as `ft_tools`) depend on the `liblitmus` build system. Before the Feather-Trace tools can be built, you must have successfully compiled `liblitmus` first. For reference, we provide [[http://www.litmus-rt.org/releases/2016.1/ft_tools-config|a sample ft_tools configuration file]]. To summarize, the Feather-Trace tools can be obtained and compiled with the following commands: {{{#!highlight bash numbers=disable cd $DIR wget http://www.litmus-rt.org/releases/2016.1/ft_tools-2016.1.tgz tar xzf ft_tools-2016.1.tgz cd ft_tools wget http://www.litmus-rt.org/releases/2016.1/ft_tools-config mv ft_tools-config .config make }}}