Die Aktualisierung von LinuxCNC auf eine neue Nebenversion (d.h. auf eine neue Version in der gleichen stabilen Serie, z.B. von 2.9.1 auf 2.9.2) ist ein automatischer Prozess, wenn Ihr PC mit dem Internet verbunden ist. Nach einem Minor-Release wird eine Update-Aufforderung zusammen mit anderen Software-Updates angezeigt. Wenn Ihr PC nicht mit dem Internet verbunden ist, lesen Sie bitte Updating without Network.

1. Upgrade auf die neue Version

Dieser Abschnitt beschreibt, wie Sie LinuxCNC von Version 2.8.x auf eine Version 2.9.y aktualisieren. Es wird davon ausgegangen, dass Sie eine bestehende 2.8 Installation haben, die Sie aktualisieren möchten.

Um LinuxCNC von einer Version älter als 2.8 zu aktualisieren, müssen Sie zuerst upgrade your old install to 2.8, dann folgen Sie diesen Anweisungen, um auf die neue Version zu aktualisieren.

Wenn Sie keine alte Version von LinuxCNC zu aktualisieren haben, dann sind Sie am besten aus machen eine frische Installation der neuen Version, wie im Abschnitt LinuxCNC erhalten beschrieben.

Darüber hinaus ist es unter Ubuntu Precise oder Debian Wheezy eine Überlegung wert, ein Backup des "linuxcnc"-Verzeichnisses auf einem Wechselmedium vorzunehmen und eine Neuinstallaion des neuesn Betriebsystems und der LinuxCNC version durchzuführen, da diese Versionen des OS 2017 bzw. 2018 ausliefen. Wenn Sie Ubuntu Lucid nutzen, dann werden Sie dies tun müssen, da Lucid nicht mehr von LinuxCNC unterstützt wird (es war EOL im Jahr 2013).

Um größere Versionen wie 2.8 auf 2.9 zu aktualisieren, wenn Sie eine Netzwerkverbindung an der Maschine haben, müssen Sie die alten linuxcnc.org Quellen des Paketmanagers apt in der Datei /etc/apt/sources.list deaktivieren und fügen Sie eine neue linuxcnc.org apt Quelle für 2.9 hinzu, um dann mit apt die LinuxCNC-Installation zu aktualisieren.

Die Details hängen von der Plattform ab, auf der Sie arbeiten. Öffnen Sie ein terminal und geben Sie lsb_release -ic ein, um diese Informationen herauszufinden:

lsb_release -ic
Distributor ID: Debian
Codename:       Buster

Sie sollten auf Debian Buster, Bullseye oder Bookworm oder Ubuntu 20.04 "Focal Fossa" oder neuer nutzen. LinuxCNC 2.9.x wird auf älteren Distributionen als diese nicht laufen.

Sie müssen auch prüfen, welcher Echtzeit-Kernel verwendet wird:

uname -r
6.1.0-10-rt-amd64

Wenn Sie (wie oben) -rt- im Kernel-Namen sehen, dann laufen Sie mit dem preempt-rt Kernel und sollten die "uspace" Version von LinuxCNC installieren. Sie sollten auch uspace für "sim"-Konfigurationen auf Nicht-Echtzeit-Kerneln installieren.

Wenn Sie -rtai- im Kernel-Namen sehen, dann laufen Sie mit RTAI-Echtzeit. Siehe unten für die LinuxCNC Version zu installieren. RTAI Pakete sind derzeit für Bookworm und Buster verfügbar.

1.1. Apt Sources Konfiguration

  • Öffnen Sie das Fenster Software-Quellen. Die Vorgehensweise ist auf den drei unterstützten Plattformen leicht unterschiedlich:

    • Debian:

      • Klicken Sie auf Anwendungsmenü, dann System, dann Synaptic Package Manager.

      • Klicken Sie in Synaptic auf das Menü Einstellungen und dann auf Repositories, um das Fenster Softwarequellen zu öffnen.

    • Ubuntu Precise:

      • Klicken Sie auf das Symbol "Dash Home" oben links.

      • Geben Sie in das Feld "Suche" den Begriff "Software" ein und klicken Sie dann auf das Symbol "Ubuntu Software Center".

      • Klicken Sie im Ubuntu Software Center-Fenster auf das Menü "Bearbeiten" und dann auf "Softwarequellen…", um das Fenster "Softwarequellen" zu öffnen.

    • Ubuntu Lucid:

      • Klicken Sie auf das Menü "System", dann auf "Verwaltung" und dann auf "Synaptic Package Manager".

      • Klicken Sie in Synaptic auf das Menü Einstellungen und dann auf Repositories, um das Fenster Softwarequellen zu öffnen.

  • Wählen Sie im Fenster "Software-Quellen" die Registerkarte "Andere Software".

  • Löschen oder deaktivieren Sie alle alten linuxcnc.org-Einträge (lassen Sie alle nicht-linuxcnc.org-Zeilen unverändert).

  • Klicken Sie auf die Schaltfläche "Hinzufügen" und fügen Sie eine neue apt-Zeile hinzu. Die Zeile wird auf den verschiedenen Plattformen etwas anders aussehen:

Tabelle 1. Eine tabuläre Übersicht über Varianten des Betriebssystems und die entsprechende Konfiguration des Projektarchivs. Die Konfiguration kann in der GUI des Paketmanagers oder in der Datei /etc/apt/sources.list spezifiziert werden.
Betriebssystem / Echtzeitversion Repository

Debian Buster - preempt

deb https://linuxcnc.org buster base 2.9-uspace

Debian Buster - RTAI

deb https://linuxcnc.org buster base 2.9-rt

Debian Bullseye - preempt

deb https://linuxcnc.org bullseye base 2.9-uspace

Debian Bookworm - preempt

deb https://linuxcnc.org bookworm base 2.9-uspace

Debian Bookworm - RTAI

deb https://linuxcnc.org bookworm base 2.9-rt

Festlegen von apt-Quellen
Abbildung 1. Abbildung mit einem Screenshot der Repository Einstellung für den Synaptic Paket Manager.
  • Klicken Sie im Fenster "Softwarequellen" auf "Quelle hinzufügen" und dann auf "Schließen". Wenn ein Fenster angezeigt wird, das Sie darüber informiert, dass die Informationen über die verfügbare Software veraltet sind, klicken Sie auf die Schaltfläche "Neu laden".

1.2. Upgrade auf die neue Version

Da Ihr Computer nun weiß, wo er die neue Version der Software erhält, müssen wir sie nun installieren.

Der Prozess unterscheidet sich wiederum je nach Plattform.

1.2.1. Debian Buster, Bullseye und Bookworm

Debian verwendet den Synaptic Package Manager.

  • Öffnen Sie Synaptic gemäß den Anweisungen in Festlegen der apt sources oben.

  • Klicken Sie auf die Schaltfläche "Neu laden".

  • Verwenden Sie die Suchfunktion, um nach linuxcnc zu suchen.

  • Das Paket heißt „linuxcnc“ für RTAI-Kernel und „linuxcnc-uspace“ für preempt-rt.

  • Klicken Sie auf das Kontrollkästchen, um die neuen Pakete linuxcnc und linuxcnc-doc-* für ein Upgrade zu markieren. Der Paketmanager kann eine Reihe zusätzlicher Pakete auswählen, die installiert werden sollen, um die Abhängigkeiten zu erfüllen, die das neue linuxcnc-Paket hat.

  • Klicken Sie auf die Schaltfläche "Anwenden", und lassen Sie Ihren Computer das neue Paket installieren. Das alte linuxcnc-Paket wird automatisch auf das neue Paket aktualisiert.

1.3. Ubuntu

  • Klicken Sie auf das Symbol "Dash Home" oben links.

  • Geben Sie in das Feld "Suche" den Begriff "Update" ein und klicken Sie dann auf das Symbol "Update Manager".

  • Klicken Sie auf die Schaltfläche "Prüfen", um die Liste der verfügbaren Pakete aufzurufen.

  • Klicken Sie auf die Schaltfläche "Updates installieren", um die neuen Versionen aller Pakete zu installieren.

2. Aktualisieren ohne Netzwerk

Um ohne Netzwerkverbindung zu aktualisieren, müssen Sie die .deb-Datei herunterladen und mit dpkg installieren. Die .debs können unter https://linuxcnc.org/dists/ gefunden werden.

Sie müssen im obigen Link nach unten gehen, um das richtige Debian Paket (.deb Datei) für Ihre Installation zu finden. Öffnen Sie ein Terminal und geben Sie "lsb_release -ic" ein, um den Versions-Bezeichner Ihres Betriebssystems zu finden.

> lsb_release -ic
Distributor ID: Debian
Codename:       bullseye

Wählen Sie das Betriebssystem aus der Liste und dann die gewünschte Hauptversion wie 2.9-rt für RTAI oder 2.9-rtpreempt oder 2.9-uspace für preempt-rt.

Wählen Sie als Nächstes den Computertyp aus, den Sie haben: binary-amd64 für jeden 64-Bit-x86, binary-i386 für 32-Bit, binary-armhf (32-Bit) oder binary-arm64 (64-Bit) für Raspberry Pi.

Wählen Sie dann die gewünschte Version am Ende der Liste aus, z.B. linuxcnc-uspace_2.9.2_amd64.deb (wählen Sie die neueste Version nach Datum). Laden Sie die deb-Datei herunter und kopieren Sie sie in Ihr Home-Verzeichnis. Sie können die Datei mit dem Dateimanager in etwas kürzeres umbenennen, wie z.B. linuxcnc_2.9.2.deb, dann öffnen Sie ein Terminal und installieren es mit dem Paketmanager mit diesem Befehl:

sudo dpkg -i linuxcnc_2.9.2.deb

3. Aktualisieren von Konfigurationsdateien für 2.9

3.1. Strikterer Umgang mit austauschbaren Interpretern

Wenn Sie nur normalen G-Code ausführen und nicht wissen, was ein austauschbarer Interpreter ist, wirkt sich dieser Abschnitt nicht auf Sie aus.

Ein selten genutztes Merkmal von LinuxCNC ist die Unterstützung für steckbare Interpreter, die durch die undokumentierte [TASK]INTERPRETER INI-Einstellung gesteuert werden.

Versionen von LinuxCNC vor 2.9.0 behandelten eine falsche [TASK]INTERPRETER-Einstellung, indem sie automatisch auf die Verwendung des Standard-G-Code-Interpreters zurückgriffen.

Seit 2.9.0 führt ein falscher [TASK]INTERPRETER-Wert dazu, dass LinuxCNC den Start verweigert. Beheben Sie diese Bedingung, indem Sie die Einstellung [TASK]INTERPRETER aus Ihrer INI-Datei löschen, so dass LinuxCNC den Standard-G-Code-Interpreter verwendet.

3.2. Canterp

Wenn Sie nur normalen G-Code ausführen und den austauschbaren Interpreter "canterp" nicht verwenden, hat dieser Abschnitt keine Auswirkungen auf Sie.

Für den extrem unwahrscheinlichen Fall, dass Sie canterp verwenden, sollten Sie wissen, dass das Modul von /usr/lib/libcanterp.so nach /usr/lib/linuxcnc/canterp.so verschoben wurde und die Einstellung [TASK]INTERPRETER entsprechend von libcanterp.so nach canterp.so geändert werden muss.

4. Aktualisieren von Konfigurationsdateien (für 2.9.y)

Bei einem Wechsel von 2.8.x auf 2.9.y sollten keine Änderungen an Dateien zur Konfiguration erforderlich sein.

4.1. Spindel-Einschränkungen in der INI

Es ist nun möglich, in den [SPINDLE]-Abschnitt der INI-Datei zu konfigurieren

MAX_VELOCITY = 20000 Die maximale Spindeldrehzahl (in U/min)

MIN_FORWARD_VELOCITY = 20000 Die minimale Spindeldrehzahl (in U/min)

MAX_REVERSE_VELOCITY = 20000 Diese Einstellung wird standardmäßig auf MAX_FORWARD_VELOCITY gesetzt sofern nicht explizit angegeben.

MIN_REVERSE_VELOCITY = 3000 Diese Einstellung entspricht MIN_FORWARD_VELOCITY, jedoch für die umgekehrte Spindeldrehung. Ist dieser Wert nicht angegeben, wird sie standardmäßig auf MIN_FORWARD_VELOCITY gesetzt.

INCREMENT = 200 Legt die Schrittweite für Befehle zum Erhöhen und Verringern der Spindeldrehzahl fest. Dies kann für jede Spindel einen anderen Wert haben. Diese Einstellung ist bei AXIS und Touchy wirksam, aber beachten Sie, dass einige Kontrollbildschirme die Dinge anders handhaben können.

HOME_SEARCH_VELOCITY = 100 - Wird akzeptiert, aber ist derzeit ohne Funktion

HOME_SEQUENCE = 0 - Wird akzeptiert, ist aber derzeit ohne Funktion

5. Neue HAL-Komponenten

5.1. Nicht-Echtzeit

mdro mqtt-publisher pi500_vfd pmx485-test qtplasmac-materials sim-torch svd-ps_vfd

5.2. Echtzeit

anglejog div2 enum filter_kalman flipflop hal_parport homecomp limit_axis mesa_uart millturn scaled_s32_sums tof ton

6. Neue Treiber

Ein Framework wurde eingeführt zur Steuerung von ModBus-Geräten mit den seriellen Ports auf vielen Mesa-Karten. http://linuxcnc.org/docs/2.9/html/drivers/mesa_modbus.html

Ein neuer GPIO-Treiber für alle GPIO, der von der gpiod-Bibliothek unterstützt wird, ist jetzt enthalten: http://linuxcnc.org/docs/2.9/html/drivers/hal_gpio.html