Linuxcnc 2.10 [updated]

Developing for LinuxCNC 2.10: What’s New and How to Adapt

LinuxCNC 2.10 is a major release with significant internal changes. If you are developing hal components, user interfaces, or real-time modules, this guide highlights what you need to know.

3. Improved Lathe Support (For Real This Time)

If you’re turning, 2.10 finally fixes long-standing pain points:

  • Proper CSS (Constant Surface Speed) now works reliably, even on lower-cost VFDs.
  • Threading with encoder feedback is more robust at low RPMs.
  • New "Lathe View" in Axis and QtDragon shows the tool nose radius and clearance angle.

I tested threading on an old 12x37 lathe with a 100-line encoder. Previous versions would occasionally skip a step at spindle reversal. 2.10 held perfect pitch across 20 passes.

Method 2: Install on Existing Ubuntu/Debian

If you have an existing Linux setup:

sudo apt update
sudo apt install linuxcnc-uspace

Note: You will need to manually configure your kernel for real-time. The ISO method is strongly recommended for beginners.


5. G-Code and Interpreter Fixes

The heart of any CNC controller is the G-code interpreter. Version 2.10 includes numerous bug fixes and patches submitted by the community over the last few years.

  • Canned Cycles: Improvements to drilling and tapping cycles ensure better compliance with standard G-code specifications.
  • Cutter Compensation (G41/G42): This has historically been a tricky area. 2.10 includes updates to the cutter compensation algorithms, handling tricky corner cases that previous versions might have choked on.
  • Variable Handling: Better handling of #variables and parameters makes writing macros and parametric G-code programs more reliable.

4. Real-Time Kernel Flexibility

Older versions of LinuxCNC demanded a specific, patched real-time kernel (usually RTAI or PREEMPT-RT). This made installation on modern hardware or new Linux distributions a nightmare. linuxcnc 2.10

LinuxCNC 2.10 has cleaned up the real-time abstraction layer:

  • Supports PREEMPT-RT (included in standard Debian/Ubuntu kernels).
  • Supports RTAI (for legacy systems).
  • Supports "uspace" (user-space) threading for testing or low-speed applications (e.g., DIY pen plotters).

For most users, this means you can install LinuxCNC 2.10 on a standard Ubuntu 22.04 LTS or Debian 12 without hunting for deprecated kernel patches.

Stay on 2.8 (for now) If:

  • Your machine is a production-critical system running 24/7 without issues.
  • You use a very old PCI parallel port setup with RTAI kernel.
  • You have a highly custom HAL written by a consultant who is no longer available.
  • You rely on a third-party plugin or GUI that hasn't been updated for Qt.

Note: 2.8 will continue to receive critical security patches, but no new features. Developing for LinuxCNC 2


Method 1: The New Official ISO (Easiest)

  1. Download the linuxcnc-2.10.0-amd64.iso from the official site.
  2. Flash it to a USB drive using dd or Rufus.
  3. Boot from the USB. You can run a fully functional live session without installing.
  4. If satisfied, click "Install" on the desktop.

This ISO comes pre-configured with the PREEMPT-RT kernel, QtDragon GUI, and sample configurations for common machines (Sherline, Tormach, MESA 7I92, etc.).

4. Better Real-Time (RTAI is Dead, Long Live PREEMPT_RT)

LinuxCNC 2.10 officially drops RTAI (good riddance—painful to compile). The recommended real-time kernel is now PREEMPT_RT (part of standard Linux) or EtherCAT for industrial setups.

Benefits:

  • Easier installation – Use a standard Ubuntu 22.04 or Debian 12 kernel.
  • Better multi-core performance – you can assign CPU cores.
  • USB and network don't break real-time as badly as before.

For most users: just install the pre-built linux-image-rt-amd64 and you’re done.