Klipper

Can’t see /tmp/printer and not connect

Klipper by default adds a link /tmp/printer pointing to the correct device to connect to. If that link is owned by a different user then repetierserver and the /tmp folder has the +t flag set, we can not read and open the link due to permission problems. In that case you can either reference the device directly – normally /dev/pts/1 and everything will work.

Solution 1

If you have multiple klipper instances so it is not clear which device will point to which pts device, you can tell klipper where to place that link with -I flag. Default is in /etc/defaults/klipper and can be changed there. So create a folder writeable by Klipper, e.g.

sudo mkdir /var/lib/klipper
sudo chmod 777 /var/lib/klipper

And then modify in /etc/defaults/klipper

KLIPPY_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log"

into

KLIPPY_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect"

And then also enter /var/lib/klipper/connect manually in Repetier-Server port name. After restarting Klipper Repetier-Server should now see the link and open it without problems.

Alternative solution

The alternative solution that works as well as the replaced link is to start klipper as repetierserver user. Edit /etc/defaults/klipper and set

KLIPPY_USER=repetierserver

and restart klipper. Now both have the same user and no permission problems exist.