LinuxCNC on Raspberry Pi 5
05 Mar 2024 10:23 #295211
by Krister
Replied by Krister on topic LinuxCNC on Raspberry Pi 5
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.1
Machine configuration directory is '/home/cnc/linuxcnc/configs/my-svarv'
Machine configuration file is 'my-svarv.ini'
INIFILE=/home/cnc/linuxcnc/configs/my-svarv/my-svarv.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=
TASK=milltask
HALUI=
DISPLAY=axis
COORDINATES=X Z
KINEMATICS=trivkins coordinates=XZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
CANNOT FIND FILE FOR:Min_svarv.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
1653
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.1
Machine configuration directory is '/home/cnc/linuxcnc/configs/my-svarv'
Machine configuration file is 'my-svarv.ini'
INIFILE=/home/cnc/linuxcnc/configs/my-svarv/my-svarv.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=
TASK=milltask
HALUI=
DISPLAY=axis
COORDINATES=X Z
KINEMATICS=trivkins coordinates=XZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
CANNOT FIND FILE FOR:Min_svarv.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
1653
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
Please Log in or Create an account to join the conversation.
05 Mar 2024 11:50 #295215
by cornholio
Replied by cornholio on topic LinuxCNC on Raspberry Pi 5
Cannot find file for:Min_svarv.hal
This file needs to be in the same folder as your ini and main Hal files.
Could be a typo in your ini file.
If you see a line stating it can’t find a file or a pin doesn’t exist that is the error. Mostly it will be a typo somewhere.
This file needs to be in the same folder as your ini and main Hal files.
Could be a typo in your ini file.
If you see a line stating it can’t find a file or a pin doesn’t exist that is the error. Mostly it will be a typo somewhere.
Please Log in or Create an account to join the conversation.
06 Mar 2024 15:03 #295327
by Krister
Replied by Krister on topic LinuxCNC on Raspberry Pi 5
Yes its the capital letter syndrom ,I find it
Please Log in or Create an account to join the conversation.
06 Mar 2024 15:14 #295329
by Krister
Replied by Krister on topic LinuxCNC on Raspberry Pi 5
I try to convert a mill setup to a Lathe setup . And now next problem , what is this meaning
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.1
Machine configuration directory is '/home/cnc/linuxcnc/configs/my-svarv'
Machine configuration file is 'my-svarv.ini'
INIFILE=/home/cnc/linuxcnc/configs/my-svarv/my-svarv.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=
TASK=milltask
HALUI=
DISPLAY=axis
COORDINATES=X Z
KINEMATICS=trivkins coordinates=XZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Found file(REL): ./Min_svarv.hal
Found file(REL): ./custom.hal
Starting TASK program: milltask
Starting DISPLAY program: axis
Shutting down and cleaning up LinuxCNC...
task: 119 cycles, min=0.000009, max=0.015490, avg=0.008914, 0 latency excursions (> 10x expected cycle time of 0.010000s)
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
note: MAXV max: 6.000 units/sec 360.000 units/min
note: LJOG max: 6.000 units/sec 360.000 units/min
note: LJOG default: 3.000 units/sec 180.000 units/min
note: jog_order='ZX'
note: jog_invert={'X'}
pyvcp_options.hal:11: parameter or pin 'scale.0.gain' not found
3224
3258
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
Were is the pin 'scale.0.gain to be ?
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.1
Machine configuration directory is '/home/cnc/linuxcnc/configs/my-svarv'
Machine configuration file is 'my-svarv.ini'
INIFILE=/home/cnc/linuxcnc/configs/my-svarv/my-svarv.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=
TASK=milltask
HALUI=
DISPLAY=axis
COORDINATES=X Z
KINEMATICS=trivkins coordinates=XZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Found file(REL): ./Min_svarv.hal
Found file(REL): ./custom.hal
Starting TASK program: milltask
Starting DISPLAY program: axis
Shutting down and cleaning up LinuxCNC...
task: 119 cycles, min=0.000009, max=0.015490, avg=0.008914, 0 latency excursions (> 10x expected cycle time of 0.010000s)
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
note: MAXV max: 6.000 units/sec 360.000 units/min
note: LJOG max: 6.000 units/sec 360.000 units/min
note: LJOG default: 3.000 units/sec 180.000 units/min
note: jog_order='ZX'
note: jog_invert={'X'}
pyvcp_options.hal:11: parameter or pin 'scale.0.gain' not found
3224
3258
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
Were is the pin 'scale.0.gain to be ?
Please Log in or Create an account to join the conversation.
12 Mar 2024 19:47 #295779
by elovalvo
Replied by elovalvo on topic LinuxCNC on Raspberry Pi 5
I recently noticed that the Raspbian update on Pi5 installs version 6.6.20+rpt-rpi-2712.
Therefore I thought about updating the PREEMPT_RT version
So I started with a fresh installation of the Raspberry Pi OS 64 bit via Raspberry Pi Imager.
I updated to version 6.6.20 with the usual commands:
sudo apt update
sudo apt upgrade
and I rebooted.
The uname -a command now returns the following indication
Linux raspberrypi5 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/
I then compiled a new version of the Raspbian OS that included the PREEMPT_RT
For convenience I used the procedure here
forums.raspberrypi.com/viewtopic.php?t=343387
The kernel with the PREEMPT_RT is kernel-6.6.21-v8-16k-elv.zip
and can be downloaded from here
drive.google.com/file/d/1FKLQIBdXTh43kjC...48d/view?usp=sharing
To install it, just copy it to /tmp and then run these commands
cd /
sudo unzip /tmp/kernel-6.6.21-v8-16k-elv.zip
overwriting all files with the All option
So I edited the cmdline.txt with
sudo nano "/boot/firmware/cmdline.txt"
adding the following commands to the end of the line
isolcpus=2.3 rcu_nocbs=2.3 nohz_full=2.3 max.processor.cstate=1
At the next reboot the uname -a command reports the following indication
Linux raspberrypi5 6.6.21-rpi999-rpi-2712 #1 SMP PREEMPT_RT Tue Mar 12 15:59:56 CET 2024 aarch64 GNU/Linux
To install linuxcnc simply type the following commands
sudo apt update
sudo apt install linuxcnc-uspace linuxcnc-uspace-dev
However, to date the installed version is the following
LINUXCNC - 2.9.0~pre1+git20230208.f1270d6ed7
If you want version 2.9.2 you can do it this way:
cd /tmp
wget linuxcnc.org/dists/bookworm/2.9-uspace/b...pace_2.9.2_arm64.deb
wget linuxcnc.org/dists/bookworm/2.9-uspace/b...-dev_2.9.2_arm64.deb
wget linuxcnc.org/dists/bookworm/2.9-uspace/b...doc-en_2.9.2_all.deb
sudo apt install ./linuxcnc-uspace_2.9.2_arm64.deb
sudo apt install ./linuxcnc-uspace-dev_2.9.2_arm64.deb
sudo apt install ./linuxcnc-doc-en_2.9.2_all.deb
The result of the latency-histogram (latency-histogram --nobase --sbinsize 1000 --show --servo 35000) is however always very interesting
For those who do not want to retrace all the steps previously exposed, you can find the ready-made image (Lcnc292_pi5.img) here:
drive.google.com/file/d/1dd8oiYhcs_UComc...fNF/view?usp=sharing
Therefore I thought about updating the PREEMPT_RT version
So I started with a fresh installation of the Raspberry Pi OS 64 bit via Raspberry Pi Imager.
I updated to version 6.6.20 with the usual commands:
sudo apt update
sudo apt upgrade
and I rebooted.
The uname -a command now returns the following indication
Linux raspberrypi5 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/
I then compiled a new version of the Raspbian OS that included the PREEMPT_RT
For convenience I used the procedure here
forums.raspberrypi.com/viewtopic.php?t=343387
The kernel with the PREEMPT_RT is kernel-6.6.21-v8-16k-elv.zip
and can be downloaded from here
drive.google.com/file/d/1FKLQIBdXTh43kjC...48d/view?usp=sharing
To install it, just copy it to /tmp and then run these commands
cd /
sudo unzip /tmp/kernel-6.6.21-v8-16k-elv.zip
overwriting all files with the All option
So I edited the cmdline.txt with
sudo nano "/boot/firmware/cmdline.txt"
adding the following commands to the end of the line
isolcpus=2.3 rcu_nocbs=2.3 nohz_full=2.3 max.processor.cstate=1
At the next reboot the uname -a command reports the following indication
Linux raspberrypi5 6.6.21-rpi999-rpi-2712 #1 SMP PREEMPT_RT Tue Mar 12 15:59:56 CET 2024 aarch64 GNU/Linux
To install linuxcnc simply type the following commands
sudo apt update
sudo apt install linuxcnc-uspace linuxcnc-uspace-dev
However, to date the installed version is the following
LINUXCNC - 2.9.0~pre1+git20230208.f1270d6ed7
If you want version 2.9.2 you can do it this way:
cd /tmp
wget linuxcnc.org/dists/bookworm/2.9-uspace/b...pace_2.9.2_arm64.deb
wget linuxcnc.org/dists/bookworm/2.9-uspace/b...-dev_2.9.2_arm64.deb
wget linuxcnc.org/dists/bookworm/2.9-uspace/b...doc-en_2.9.2_all.deb
sudo apt install ./linuxcnc-uspace_2.9.2_arm64.deb
sudo apt install ./linuxcnc-uspace-dev_2.9.2_arm64.deb
sudo apt install ./linuxcnc-doc-en_2.9.2_all.deb
The result of the latency-histogram (latency-histogram --nobase --sbinsize 1000 --show --servo 35000) is however always very interesting
For those who do not want to retrace all the steps previously exposed, you can find the ready-made image (Lcnc292_pi5.img) here:
drive.google.com/file/d/1dd8oiYhcs_UComc...fNF/view?usp=sharing
Attachments:
Please Log in or Create an account to join the conversation.
12 Mar 2024 22:19 #295790
by rodw
Replied by rodw on topic LinuxCNC on Raspberry Pi 5
Looks good. It would be interesting to retry using the debian kernel rather than your compied one and compare latency results. I suspect what you have will be better.sudo apt-install -y linux-image-rt-arm64 linux-headers-rt-arm64
The following user(s) said Thank You: elovalvo
Please Log in or Create an account to join the conversation.
14 Mar 2024 01:50 #295866
by cornholio
Replied by cornholio on topic LinuxCNC on Raspberry Pi 5
Always wonder why you use such a low servo thread, which isn't a real world scenario, and don't show a 1ms servo thread and a base thread.
It would be interesting to see a 1ms servo thread without isolating any cpus. And the aforementioned 1ms servo thread & base thread isolating the required cpus to get a real life scenario. Some users can judge whether it would suit a real life setup without having to go through buying a RPi5, installing Linuxcnc and running the latency tests. Something that would give them confidence in a particular setup.
It would be interesting to see a 1ms servo thread without isolating any cpus. And the aforementioned 1ms servo thread & base thread isolating the required cpus to get a real life scenario. Some users can judge whether it would suit a real life setup without having to go through buying a RPi5, installing Linuxcnc and running the latency tests. Something that would give them confidence in a particular setup.
Please Log in or Create an account to join the conversation.
14 Mar 2024 14:34 #295904
by elovalvo
Replied by elovalvo on topic LinuxCNC on Raspberry Pi 5
I tried the procedure you suggested but, in addition to the fact that version 6.1.0-18-rt-arm64 is currently available (and therefore not aligned with version 6.6.20+rpt-rpi-2712), the installation reports that these versions of initramfs and kernel are unsupported.Looks good. It would be interesting to retry using the debian kernel rather than your compied one and compare latency results. I suspect what you have will be better.sudo apt-install -y linux-image-rt-arm64 linux-headers-rt-arm64
pi@raspberrypi5:~ $ uname -a
Linux raspberrypi5 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
pi@raspberrypi5:~ $ sudo apt update
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian-security bookworm-security InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Hit:4 http://archive.raspberrypi.com/debian bookworm InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
pi@raspberrypi5:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi5:~ $
pi@raspberrypi5:~ $ sudo apt install -y linux-image-rt-arm64 linux-headers-rt-arm64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
linux-headers-6.1.0-18-common-rt linux-headers-6.1.0-18-rt-arm64 linux-image-6.1.0-18-rt-arm64
linux-kbuild-6.1
Suggested packages:
linux-doc-6.1 debian-kernel-handbook
The following NEW packages will be installed:
linux-headers-6.1.0-18-common-rt linux-headers-6.1.0-18-rt-arm64 linux-headers-rt-arm64
linux-image-6.1.0-18-rt-arm64 linux-image-rt-arm64 linux-kbuild-6.1
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 67.8 MB of archives.
After this operation, 405 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main arm64 linux-headers-6.1.0-18-common-rt all 6.1.76-1 [8,308 kB]
Get:2 http://archive.raspberrypi.com/debian bookworm/main arm64 linux-kbuild-6.1 arm64 1:6.1.73-1+rpt1 [913 kB]
Get:3 http://deb.debian.org/debian bookworm/main arm64 linux-headers-6.1.0-18-rt-arm64 arm64 6.1.76-1 [1,306 kB]
Get:4 http://deb.debian.org/debian bookworm/main arm64 linux-headers-rt-arm64 arm64 6.1.76-1 [1,408 B]
Get:5 http://deb.debian.org/debian bookworm/main arm64 linux-image-6.1.0-18-rt-arm64 arm64 6.1.76-1 [57.2 MB]
Get:6 http://deb.debian.org/debian bookworm/main arm64 linux-image-rt-arm64 arm64 6.1.76-1 [1,444 B]
Fetched 67.8 MB in 4s (18.5 MB/s)
Selecting previously unselected package linux-headers-6.1.0-18-common-rt.
(Reading database ... 125884 files and directories currently installed.)
Preparing to unpack .../0-linux-headers-6.1.0-18-common-rt_6.1.76-1_all.deb ...
Unpacking linux-headers-6.1.0-18-common-rt (6.1.76-1) ...
Selecting previously unselected package linux-kbuild-6.1.
Preparing to unpack .../1-linux-kbuild-6.1_1%3a6.1.73-1+rpt1_arm64.deb ...
Unpacking linux-kbuild-6.1 (1:6.1.73-1+rpt1) ...
Selecting previously unselected package linux-headers-6.1.0-18-rt-arm64.
Preparing to unpack .../2-linux-headers-6.1.0-18-rt-arm64_6.1.76-1_arm64.deb ...
Unpacking linux-headers-6.1.0-18-rt-arm64 (6.1.76-1) ...
Selecting previously unselected package linux-headers-rt-arm64.
Preparing to unpack .../3-linux-headers-rt-arm64_6.1.76-1_arm64.deb ...
Unpacking linux-headers-rt-arm64 (6.1.76-1) ...
Selecting previously unselected package linux-image-6.1.0-18-rt-arm64.
Preparing to unpack .../4-linux-image-6.1.0-18-rt-arm64_6.1.76-1_arm64.deb ...
Unpacking linux-image-6.1.0-18-rt-arm64 (6.1.76-1) ...
Selecting previously unselected package linux-image-rt-arm64.
Preparing to unpack .../5-linux-image-rt-arm64_6.1.76-1_arm64.deb ...
Unpacking linux-image-rt-arm64 (6.1.76-1) ...
Setting up linux-image-6.1.0-18-rt-arm64 (6.1.76-1) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-6.1.0-18-rt-arm64
ERROR: Unsupported initramfs version (6.1.0-18-rt-arm64)
/etc/kernel/postinst.d/z50-raspi-firmware:
ERROR: Unsupported kernel version (6.1.0-18-rt-arm64)
Setting up linux-headers-6.1.0-18-common-rt (6.1.76-1) ...
Setting up linux-image-rt-arm64 (6.1.76-1) ...
Setting up linux-kbuild-6.1 (1:6.1.73-1+rpt1) ...
Setting up linux-headers-6.1.0-18-rt-arm64 (6.1.76-1) ...
Setting up linux-headers-rt-arm64 (6.1.76-1) ...
pi@raspberrypi5:~ $
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
14 Mar 2024 20:11 #295916
by rodw
Replied by rodw on topic LinuxCNC on Raspberry Pi 5
It was worth a try.
Often, where multiple kernel versions are in play, I have used
sudo apt install linux-image-$(uname -r)-rt-arm64 linux-headers-$(uname -r)-rt-arm64
Not sure if Debian knows about your kernel.
Often, where multiple kernel versions are in play, I have used
sudo apt install linux-image-$(uname -r)-rt-arm64 linux-headers-$(uname -r)-rt-arm64
Not sure if Debian knows about your kernel.
The following user(s) said Thank You: elovalvo
Please Log in or Create an account to join the conversation.
14 Mar 2024 23:53 #295926
by zmrdko
Replied by zmrdko on topic LinuxCNC on Raspberry Pi 5
Nice latency test elovalvo.
Just to rise awareness, isn't here anybody able and willing to modify rpi5 macb driver for EtherCAT?
forum.linuxcnc.org/ethercat/52032-ethercat-on-raspberry-pi-5
Just to rise awareness, isn't here anybody able and willing to modify rpi5 macb driver for EtherCAT?
forum.linuxcnc.org/ethercat/52032-ethercat-on-raspberry-pi-5
Please Log in or Create an account to join the conversation.
Time to create page: 0.509 seconds