User Tools

Site Tools


realtime:documentation:howto:howto_rt_preemptrt_setup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
realtime:documentation:howto:howto_rt_preemptrt_setup [2017/02/08 13:39]
anna-maria delete - move into an own namespace
— (current)
Line 1: Line 1:
-====== HOWTO setup Linux with PREEMPT_RT properly ====== 
- 
-Linux in itself is not real time capable. ​ With the additional 
-PREEMPT_RT patch it gains real-time capabilities. ​ The sources have to 
-be downloaded first. ​ After unpacking and patching, the kernel 
-configuration has to be adapted. ​ Then, the kernel can be built and 
-started. 
- 
-===== Getting the sources ===== 
- 
-First, the kernel version should be chosen. ​ After this, take a look 
-if the PREEMPT_RT patch is [[https://​www.kernel.org/​pub/​linux/​kernel/​projects/​rt|available]] 
-for this particular version. 
- 
-The source of the desired version has to be downloaded (for the Linux 
-kernel as well as for the PREEMPT_RT patch). ​ This example is based on 
-the Linux kernel version 4.4.12. 
- 
-  $ wget https://​www.kernel.org/​pub/​linux/​kernel/​v4.x/​linux-4.4.12.tar.xz 
-  $ wget https://​www.kernel.org/​pub/​linux/​kernel/​projects/​rt/​4.4/​patch-4.4.12-rt19.patch.xz 
- 
-After downloading,​ unpack the archives and patch the Linux kernel: 
- 
-  $ xz -cd linux-4.4.12.tar.xz | tar xvf - 
-  $ cd linux-4.4.12 
-  $ xzcat ../​patch-4.4.12-rt19.patch.xz | patch -p1 
- 
-===== Configuring the kernel ===== 
- 
-The only necessary configuration for real-time Linux kernel is the 
-choice of the "Fully Preemptible Kernel"​ preemption model 
-(CONFIG_PREEMPT_RT_FULL). ​ All other kernel configuration parameters 
-depend on system requirements. ​ For detailed information about how to 
-configure a kernel have a look at //​Documentation/​kbuild/​kconfig.txt//​ 
-in the unpacked Linux kernel sources. 
- 
-When measuring system latency all kernel debug options should be 
-turned off.  They require much overhead and distort the measurement 
-result. ​ Examples for those debug mechanism are: 
- 
-  * DEBUG_PREEMPT 
-  * Lock Debugging (spinlocks, mutexes, etc. . . ) 
-  * DEBUG_OBJECTS 
-  * ... 
- 
-Some of those debugging mechanisms (like lock debugging) produce a 
-randomized overhead in a range of some micro seconds to several 
-milliseconds depending on the kernel configuration as well as on the 
-compile options (DEBUG_PREEMPT has a low overhead compared to Lock 
-Debugging or DEBUG_OBJECTS). 
- 
-However, in the first run of a real-time capable Linux kernel it might 
-be advisable to use those debugging mechanisms. ​ This helps to locate 
-fundamental problems. 
- 
-===== Building the kernel ===== 
- 
-Building the kernel and starting the kernel works similarly to a 
-kernel without PREEMPT_RT patch. 
  
realtime/documentation/howto/howto_rt_preemptrt_setup.1486561194.txt.gz ยท Last modified: 2017/02/08 13:39 by anna-maria