Расскажу как поставить оболочку для удаленного управления принтером подключенным к любому ПК с установленным на нем Linux.
Установка Octoprint
В консоли (напрямую или через SSH — без разницы) добавляем пользователя octo, даем ему доступ к sudo. Далее выполняем все команды от его имени:
cd ~
sudo apt update
sudo apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential
mkdir OctoPrint && cd OctoPrint
python3 -m venv venv
source venv/bin/activate
pip install pip --upgrade
pip install octoprint
sudo usermod -a -G tty octo
sudo usermod -a -G dialout octo
Проверяем как установилось и что все запускается:
~/OctoPrint/venv/bin/octoprint serve
По адресу http://<ваш_IP>:5000 должен запуститься экран начальной настройки Octoprint. Выполните настройку, радуйтесь жизни.
Дополнительные шаги для более спокойной жизни.
Автозапуск сервиса octoprint.
Скачиваем готовый юнит-файл и перемещаем его в /etc/systemd/system/octoprint.service:
wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service && sudo mv octoprint.service /etc/systemd/system/octoprint.service
Проверяем в нем путь до нашего сервиса. ПО умолчанию там ExecStart=/home/pi/OctoPrint/venv/bin/octoprint, меняем на
User=octo
ExecStart=/home/octo/OctoPrint/venv/bin/octoprint
Обновим список юнитов
sudo systemctl daemon-reload
Включим наш юнит
sudo systemctl enable octoprint
Проверяем как обычный сервис:
sudo service octoprint {start|stop|restart}
Перезапуск Octoprint, перезагрузка и выключение компьютера из меню (обычно добавляются при начальной настройке, но можно потом в настройках изменить):
- Перезапуск OctoPrint:
sudo service octoprint restart
- Перезагрузка ПК:
sudo shutdown -r now
- Выключение ПК:
sudo shutdown -h now
Для того чтобы иметь возможность выполнять эти команды из вебинтерфейса надо дать права на их запуск без запроса пароля. Для этого создайте два файла:
Файл для перезагрузки и выключения:
/etc/sudoers.d/octoprint-shutdown
с содержанием:
octo ALL=NOPASSWD: /sbin/shutdown
и файл перезапуска сервиса
/etc/sudoers.d/octoprint-service
с содержанием:
octo ALL=NOPASSWD: /usr/sbin/service
На этом пока всё.
Поделиться ссылкой: