1. Minimum Requirements
The minimum system to run LinuxCNC and Debian / Ubuntu may vary depending on the exact usage. Stepper systems in general require faster threads to generate step pulses than servo systems. You can use the Live CD to test the software before committing to a permanent installation on a computer. Keep in mind that the Latency Test numbers are more important than the processor speed for software step generation. More information on the Latency Test is here. In addition LinuxCNC needs to be run on an operating system that uses a specially modified kernel, see Kernel and Version Requirements.
Additional information is on the LinuxCNC Wiki site: Hardware Requirements
LinuxCNC and Debian Linux should run reasonably well on a computer with the following minimum hardware specification. These numbers are not the absolute minimum but will give reasonable performance for most stepper systems.
-
700 MHz x86 processor (1.2 GHz x86 processor recommended) or Raspberry Pi 4 or better.
-
LinuxCNC 2.8 or later from the Live CD expects a 64-bit capable system.
-
512 MB of RAM, 4 GB with GUI to avoid surprises
-
No hard disk for Live CD, 8 GB or more for permanent installation
-
Graphics card capable of at least 1024x768 resolution, which is not using the NVidia or ATI fglrx proprietary drivers. Modern onboard graphic chipsets seem to generally be OK.
-
Internet connection (not strictly needed, but very useful for updates and for communicating with the LinuxCNC community)
Minimum hardware requirements change as Linux distributions evolve so check the Debian web site for details on the Live CD you’re using. Older hardware may benefit from selecting an older version of the Live CD when available.
If you plan not to rely on the distribution of readily executable programs ("binaries") but aim at contributing to the source tree of LinuxCNC, then there is a good chance you want a second computer to perform the compilation. Even though LinuxCNC and your developments could likely be executed at the same time with respect to disk space, RAM and even CPU speed, a machine that is busy will have worse latencies, so you are unlikely to compile your source tree and produce chips at the same time.
2. Kernel and Version requirements
LinuxCNC requires a kernel modified for realtime use to control real machine hardware. It can, however run on a standard kernel in simulation mode for purposes 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.
You can discover the kernel version of your system with the command:
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.
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
realtime. See below for the LinuxCNC version to install.
2.1. Preempt-RT with linuxcnc-uspace package
Preempt-RT is the newest of the realtime systems, and is also 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 systems, but there are exceptions.
2.2. RTAI with linuxcnc package
RTAI has been the mainstay of LinuxCNC distributions for many years. It 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].
2.3. 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.
2.4. RTAI with linuxcnc-uspace package
It is also possible to run LinuxCNC with RTAI in user-space mode. As with Xenomai you will need to compile from source to do this.
3. Problematic Hardware
3.1. Laptops
Laptops are not generally suited to real time software step generation. Again a Latency Test run for an extended time will give you the info you need to determine suitability.
3.2. Video Cards
If your installation pops up with 800 x 600 screen resolution then most likely Debian does not recognize your video card or monitor. This can sometimes be worked-around by installing drivers or creating / editing Xorg.conf files.