diff --git a/debian/linuxcnc.install.in b/debian/linuxcnc.install.in index a71302665a0..ef175c797bf 100644 --- a/debian/linuxcnc.install.in +++ b/debian/linuxcnc.install.in @@ -40,6 +40,7 @@ usr/bin/kinslimits usr/bin/latency-histogram usr/bin/latency-plot usr/bin/latency-test +usr/bin/latency-ping usr/bin/lineardelta usr/bin/linuxcnc usr/bin/linuxcnc_check_ini @@ -84,6 +85,8 @@ usr/bin/qtvcp usr/bin/rotarydelta usr/bin/rs274 usr/bin/rtapi_app +usr/bin/realtime-config-kernel +usr/sbin/realtime-config-ethernet usr/bin/scaragui usr/bin/schedrmt usr/bin/scorbot-er-3 diff --git a/docs/po4a.cfg b/docs/po4a.cfg index 5ca4619aa21..baa0f44e579 100644 --- a/docs/po4a.cfg +++ b/docs/po4a.cfg @@ -137,6 +137,7 @@ [type: AsciiDoc_def] src/hal/tutorial.adoc $lang:build/adoc/$lang/hal/tutorial.adoc [type: AsciiDoc_def] src/hal/twopass.adoc $lang:build/adoc/$lang/hal/twopass.adoc [type: AsciiDoc_def] src/install/latency-test.adoc $lang:build/adoc/$lang/install/latency-test.adoc +[type: AsciiDoc_def] src/install/latency-tuning.adoc $lang:build/adoc/$lang/install/latency-tuning.adoc [type: AsciiDoc_def] src/integrator/steppers.adoc $lang:build/adoc/$lang/integrator/steppers.adoc [type: AsciiDoc_def] src/integrator/stepper-timing.adoc $lang:build/adoc/$lang/integrator/stepper-timing.adoc [type: AsciiDoc_def] src/integrator/wiring.adoc $lang:build/adoc/$lang/integrator/wiring.adoc diff --git a/docs/src/Master_Documentation.adoc b/docs/src/Master_Documentation.adoc index b1c373e7d59..3355403ac73 100644 --- a/docs/src/Master_Documentation.adoc +++ b/docs/src/Master_Documentation.adoc @@ -64,6 +64,8 @@ include::config/integrator-concepts.adoc[] include::install/latency-test.adoc[] +include::install/latency-tuning.adoc[] + include::motion/tweaking-steppers.adoc[] include::config/ini-config.adoc[] diff --git a/docs/src/Submakefile b/docs/src/Submakefile index 5bd1092d01f..6252deb2d96 100644 --- a/docs/src/Submakefile +++ b/docs/src/Submakefile @@ -238,6 +238,7 @@ DOC_SRCS_EN := \ hal/tutorial.adoc \ hal/twopass.adoc \ install/latency-test.adoc \ + install/latency-tuning.adoc \ integrator/steppers.adoc \ integrator/stepper-timing.adoc \ integrator/wiring.adoc \ diff --git a/docs/src/config/images/latency-ping.png b/docs/src/config/images/latency-ping.png new file mode 100644 index 00000000000..459074b76fb Binary files /dev/null and b/docs/src/config/images/latency-ping.png differ diff --git a/docs/src/getting-started/system-requirements.adoc b/docs/src/getting-started/system-requirements.adoc index 6f5d5f941a6..712e13983b5 100644 --- a/docs/src/getting-started/system-requirements.adoc +++ b/docs/src/getting-started/system-requirements.adoc @@ -54,7 +54,11 @@ such as checking G-code, testing config files and learning the system. To work with these kernel versions there are two versions of LinuxCNC distributed. The package names are "linuxcnc" and "linuxcnc-uspace". -The realtime kernel options are preempt-rt, RTAI and Xenomai. +The realtime kernel options are PREEMPT_RT, RTAI, Xenomai3 and Xenomai4 EVL. + +For most cases, PREEMPT_RT is the simplest option. For better latency, Xenomai4 EVL can help. + +RTAI is not maintained any more but still works on some systems. You can discover the kernel version of your system with the command: @@ -63,7 +67,7 @@ uname -a ---- If you see (as above) `-rt-` in the kernel name then you are running the -preempt-rt kernel and should install the "uspace" version of LinuxCNC. +PREEMPT_RT kernel and should install the "uspace" version of LinuxCNC. You should also install uspace for "sim" configs on non-realtime kernels. If you see `-rtai-` in the kernel name then you are running RTAI @@ -71,16 +75,30 @@ realtime. See below for the LinuxCNC version to install. === Preempt-RT with 'linuxcnc-uspace' package -Preempt-RT is the newest of the realtime systems, and is also the version +Preempt-RT is the version that is closest to a mainline kernel. Preempt-RT kernels are available as precompiled packages from the main repositories. The search term "PREEMPT_RT" will find them, and one can be downloaded and installed just like any other package. -Preempt-RT will generally have the best driver support and is the only -option for systems using the Mesa ethernet-connected hardware driver -cards. In general preempt-rt has the worst latency of the available +Preempt-RT will generally have the best support. + In general Preempt-RT has the worst latency of the available systems, but there are exceptions. +=== Xenomai3 with 'linuxcnc-uspace' package + +Xenomai3 is supported, but you will have to find or build the kernel +and compile LinuxCNC from source to utilise it. + +Prebuilt experimental kernels can be found here: https://github.com/hdiethelm/xenomai3-linuxcnc + +=== Xenomai4 EVL with 'linuxcnc-uspace' package + +Xenomai4 is supported, but you will have to find or build the kernel +and compile LinuxCNC from source to utilise it. It has support for +Mesa ethernet-connected hardware driver with out of band realtime ethernet. + +Prebuilt experimental kernels can be found here: https://github.com/hdiethelm/xenomai4-linuxcnc + === RTAI with 'linuxcnc' package RTAI has been the mainstay of LinuxCNC distributions for many years. It @@ -88,16 +106,13 @@ will generally give the best realtime performance in terms of low latency, but might have poorer peripheral support and not as many screen resolutions. An RTAI kernel is available from the LinuxCNC package repository. If you installed from the Live/Install image then switching -kernel and LinuxCNC flavour is described in [Installing-RTAI]. +kernel and LinuxCNC flavour is described in <>. -=== Xenomai with 'linuxcnc-uspace' package - -Xenomai is also supported, but you will have to find or build the kernel -and compile LinuxCNC from source to utilise it. +Prebuilt experimental kernels can be found here: https://github.com/NTULINUX/RTAI === RTAI with 'linuxcnc-uspace' package -It is also possible to run LinuxCNC with RTAI in user-space mode. +It is possible to run LinuxCNC with RTAI in user-space mode. As with Xenomai you will need to compile from source to do this. == Problematic Hardware diff --git a/docs/src/index.tmpl b/docs/src/index.tmpl index 2b0d800ae21..67c668e9723 100644 --- a/docs/src/index.tmpl +++ b/docs/src/index.tmpl @@ -67,6 +67,7 @@