Updating LinuxCNC to a new minor release (i.e. to a new version in the same stable series, for example from 2.9.1 to 2.9.2) is an automatic process if your PC is connected to the internet. You will see an update prompt after a minor release along with other software updates. If you don’t have an internet connection to your PC see Updating without Network.
1. Upgrade to the new version
This section describes how to upgrade LinuxCNC from version 2.8.x to a 2.9.y version. It assumes that you have an existing 2.8 install that you want to update.
To upgrade LinuxCNC from a version older than 2.8, you have to first upgrade your old install to 2.8, then follow these instructions to upgrade to the new version.
If you do not have an old version of LinuxCNC to upgrade, then you’re best off making a fresh install of the new version as described in the section Getting LinuxCNC.
Furthermore, if you are running Ubuntu Precise or Debian Wheezy it is well worth considering making a backup of the "linuxcnc" directory on removable media and performing a clean install of a newer OS and LinuxCNC version as these releases were EOL in 2017 and 2018 respectively. If you are running on Ubuntu Lucid then you will have to do this, as Lucid is no longer supported by LinuxCNC (it was EOL in 2013).
To upgrade major versions like 2.8 to 2.9 when you have a network connection at the machine you need to disable the old linuxcnc.org apt sources in the file /etc/apt/sources.list and add a new linuxcnc.org apt source for 2.9, then upgrade LinuxCNC.
The details will depend on which platform you’re running on.
Open a terminal then type lsb_release -ic to find this information out:
lsb_release -ic
Distributor ID: Debian
Codename: Buster
You should be running on Debian Buster, Bullseye or Bookworm or Ubuntu 20.04 "Focal Fossa" or newer. LinuxCNC 2.9.y will not run on older distributions than these.
You will also need to check which realtime kernel is being used:
uname -r
6.1.0-10-rt-amd64
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.
RTAI packages are available for Bookworm and Buster but not currently for Bullseye.
1.1. Apt Sources Configuration
-
Open the
Software Sourceswindow. The process for doing this differs slightly on the three supported platforms:-
Debian:
-
Click on
Applications Menu, thenSystem, thenSynaptic Package Manager. -
In Synaptic, click on the
Settingsmenu, then clickRepositoriesto open theSoftware Sourceswindow.
-
-
Ubuntu Precise:
-
Click on the
Dash Homeicon in the top left. -
In the
Searchfield, type "software", then click on theUbuntu Software Centericon. -
In the Ubuntu Software Center window, click on the
Editmenu, then click onSoftware Sources...to open theSoftware Sourceswindow.
-
-
Ubuntu Lucid:
-
Click the
Systemmenu, thenAdministration, thenSynaptic Package Manager. -
In Synaptic, click on the
Settingsmenu, then click onRepositoriesto open theSoftware Sourceswindow.
-
-
-
In the
Software Sourceswindow, select theOther Softwaretab. -
Delete or un-check all the old linuxcnc.org entries (leave all non-linuxcnc.org lines as they are).
-
Click the
Addbutton and add a new apt line. The line will be slightly different on the different platforms:
| OS / Realtime Version | Repository |
|---|---|
Debian Buster - preempt |
|
Debian Buster - RTAI |
|
Debian Bullseye - preempt |
|
Debian Bookworm - preempt |
|
Debian Bookworm - RTAI |
|
-
Click
Add Source, thenClosein the Software Sources window. If it pops up a window informing you that the information about available software is out-of-date, click theReloadbutton.
1.2. Upgrading to the new version
Now your computer knows where to get the new version of the software, next we need to install it.
The process again differs depending on your platform.
1.2.1. Debian Buster, Bullseye and Bookworm
Debian uses the Synaptic Package Manager.
-
Open Synaptic using the instructions in Setting apt sources above.
-
Click the
Reloadbutton. -
Use the Search function to search for
linuxcnc. -
The package is called "linuxcnc" for RTAI kernels and "linuxcnc-uspace" for preempt-rt.
-
Click the check box to mark the new linuxcnc and linuxcnc-doc-* packages for upgrade. The package manager may select a number of additional packages to be installed, to satisfy dependencies that the new linuxcnc package has.
-
Click the
Applybutton, and let your computer install the new package. The old linuxcnc package will be automatically upgraded to the new one.
1.3. Ubuntu
-
Click on the
Dash Homeicon in the top left. -
In the
Searchfield, type "update", then click on theUpdate Managericon. -
Click the
Checkbutton to fetch the list of packages available. -
Click the
Install Updatesbutton to install the new versions of all packages.
2. Updating without Network
To update without a network connection you need to download the .deb then install it with dpkg. The .debs can be found in https://linuxcnc.org/dists/ .
You have to drill down from the above link to find the correct deb for your installation. Open a terminal and type in lsb_release -ic to find the release name of your OS.
> lsb_release -ic
Distributor ID: Debian
Codename: bullseye
Pick the OS from the list then pick the major version you want like 2.9-rt for RTAI or 2.9-rtpreempt or 2.9-uspace for preempt-rt.
Next pick the type of computer you have: binary-amd64 for any 64-bit x86, binary-i386 for 32 bit, binary-armhf (32bit) or binary-arm64 (64bit) for Raspberry Pi.
Next pick the version you want from the bottom of the list like linuxcnc-uspace_2.9.2_amd64.deb (choose the latest by date). Download the deb and copy it to your home directory. You can rename the file to something a bit shorter with the file manager like linuxcnc_2.9.2.deb then open a terminal and install it with the package manager with this command:
sudo dpkg -i linuxcnc_2.9.2.deb
3. Updating Configuration Files for 2.9
3.1. Stricter handling of pluggable interpreters
If you just run regular G-code and you don’t know what a pluggable interpreter is, then this section does not affect you.
A seldom-used feature of LinuxCNC is support for pluggable interpreters,
controlled by the undocumented [TASK]INTERPRETER INI setting.
Versions of LinuxCNC before 2.9.0 used to handle an incorrect
[TASK]INTERPRETER setting by automatically falling back to using the
default G-code interpreter.
Since 2.9.0, an incorrect [TASK]INTERPRETER value will cause
LinuxCNC to refuse to start up. Fix this condition by deleting the
[TASK]INTERPRETER setting from your INI file, so that LinuxCNC will
use the default G-code interpreter.
3.2. Canterp
If you just run regular G-code and you don’t use the canterp pluggable
interpreter, then this section does not affect you.
In the extremely unlikely event that you are using canterp,
know that the module has moved from /usr/lib/libcanterp.so to
/usr/lib/linuxcnc/canterp.so, and the [TASK]INTERPRETER setting
correspondingly needs to change from libcanterp.so to canterp.so.
4. Updating Configuration Files (for 2.10.y)
Touchy: the Touchy MACRO entries should now be placed in a [MACROS] section of the INI rather than in the [TOUCHY] section. This is part of a process of commonising the INI setting between GUIs.