By default, Linux does not let ordinary users talk directly to USB and serial hardware. Scryglass needs that access to drive its supported devices, so a couple of one-time system settings are required. This is standard Linux behaviour, not a Scryglass bug.
Join the dialout and plugdev groups. Serial devices such as /dev/ttyACM0 and /dev/ttyUSB0 belong to the dialout group, and the udev rules in the next step grant raw USB access to the plugdev group. Add yourself to both:
sudo usermod -aG dialout,plugdev $USER
Then log out and back in for the group change to take effect.
Install the udev rules. Create /etc/udev/rules.d/99-mm-ftdi.rules — this grants user-level access to the FTDI adapters Scryglass uses:
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6011", MODE="0664", GROUP="plugdev"
Then create /etc/udev/rules.d/99-mm-nordic.rules — this stops ModemManager from probing Nordic devices such as the PPK2, which can leave them unresponsive until power-cycled:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ENV{ID_MM_DEVICE_IGNORE}="1"
Reload the rules and unplug and replug your devices:
sudo udevadm control --reload
Replugging matters: the rules are applied when a device is plugged in, so devices that were already connected keep their old permissions until they are replugged — or re-triggered with sudo udevadm trigger --action=add.
Still not working?
Check the actual permissions on the device node, for example:
ls -la /dev/ttyACM0
groups
The device should be group dialout — or plugdev for raw USB nodes under /dev/bus/usb/ — and that group should appear in your groups output.