[docker] Updating Panther's built-in computer panther_ros from 2.0.4 to 2.1.1

Hi Husarion team,

We are currently in the process of updating the panther_ros image version (in compose.yaml in the RPi). We have encountered some issues when upgrading from 2.0.4 to 2.1.1 (husarion/panther:humble-2.1.1-20240828).

When trying this version, I added /dev/spiled-channel1 and /dev/spiled-channel2 under “devices” as per this example. This throws the following error when running docker compose :

Error response from daemon: error gathering device information while adding custom device "/dev/spiled-channel1": no such file or directory

I tracked down the change from spidev0.0 and spidev0.1 to spiledfront and spiledrear (then other terms until the current version : spiled-channel1 and 2) to your issue 347 but I don’t see any guidance on how to establish the symlink correctly. I guess that’s done within the RPi’s OS and not in the docker container ? Can you provide the steps to fix this issue (preferably steps to reproduce manually and not just an OS reinstall, which would mean some work on our end to redeploy our codebase and would deprive us from a learning opportunity :smile: )

Best,
Arnaud

Hello @Arnaudb,

You are most likely coming from a version prior to 2.1.x.
You can fix the symlink state in two ways:

  1. By reinstalling the image on Built-in Computer.

  2. By adding the file 97-spiled.rules to /etc/udev/rules.d
    with the following content:

KERNEL=="spidev0.0", SYMLINK+="spiled-channel1", MODE="0666"
KERNEL=="spidev0.1", SYMLINK+="spiled-channel2", MODE="0666"

Let me know if this solves your problem.

1 Like

Hello @RafalGorecki ,

Thanks for the info. It was part of the answer. After adding the rules file, I did :

sudo /etc/init.d/udev restart

(not sure if it was necessary, but it was not enough because the new rules were not applied)

Then I followed the doc from udev on ubuntu doc which suggested this command to apply the new rules :

sudo udevadm trigger

After that, I found spiled-channel1 and spiled-channel2 with ls /dev | grep spi. Now the container seems to run smoothly.

Thanks for the support !

PS : I opened another topic for the other issue since there were actually 2 separate questions.

Best,
Arnaud

I forgot to ask : was this information (about the new rules file) published somewhere and I missed it ? Or is it expected from users of the Panther to flash the newest OS image to the RPi for each panther_ros upgrade ?

I’m glad the problem was solved!

Information about symlinks is probably not provided anywhere, so thank you for asking on the forum. Thanks to this, some customers with the same problem will be able to find a solution. We try to maintain API consistency, but the ROS 2 driver is quite new, and some issues may require reinstallation of the operating system.

1 Like