Hello
On NixOS I try to develop on STM32 dev boards using probe-rs. Booting to another distro, and without changing cabling, I can confirm that the hardware and connections are working.
Listing devices:
~/.cargo/bin/probe-rs list
The following debug probes were found:
[0]: STLink V3 -- 0483:374e:004900433133511335333335 (ST-LINK) (inaccessible)
[1]: STLink V3 -- 0483:3754:002E00483433511830343835 (ST-LINK) (inaccessible)
WARN probe_rs::util::setup_hints::linux: If your probe is plugged in but not listed, or shown as inaccessible, it is most likely a permissions problem.
WARN probe_rs::util::setup_hints::linux: Your user needs read and write access to the probe's device node: a USB node under /dev/bus/usb, or a serial port such as /dev/ttyACM0.
WARN probe_rs::util::setup_hints::linux: See https://probe.rs/docs/getting-started/probe-setup/ for how to set up the required udev rules and group membership.
Initially, I added udev rules but got confused with plugdev group not existing in NixOS, as the whole concept seems obsolete, but uaccess apparently being sufficient (yet still not solving the issue). There was also talk about rules in udev file 73-β¦ needing running after, but that file I found to not exist on my installation.
I saw that the devices I identified to be the 2 devboards (/dev/ttyACM1 and dev/ttyACM2) are R/W accessible by group dialout:
ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 30 aug 08:57 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 1 30 aug 08:57 /dev/ttyACM1
Adding my user to that group,
$ groups
users wheel dialout networkmanager
I believed the problem would be resolved (simple and elegantly), but it did not.
I tried to look at dmesg for seeing whether it has hints, but found no leads, and finally tried strace (which is a tool I am not familiar with) to see if there is anything in its output that could give me a clue, but none of the paths printed seemed relevant to the problem.
Any ideas how this could be troubleshooted? I wonder what probe-rs exactly is trying to access and what exactly is preventing it from doing so.