はじめに
OctoPrintは3DプリンタとUSB接続されたRaspPi等にインストールしておくことで,同一ネットワークにあるブラウザからプリンタを操作したりスライサから直接gcodeを転送できたりする便利ソフトです.
OctoPrintの導入は多くの場合,RaspPi用にOctoPrint設定済みOSイメージであるOcotoPiをSDに焼き込むだけで完了できます.しかし,Nano Pi Neo 2のようにOctoPiイメージが提供されていないボードを利用する場合には自前でインストールする必要があります.本稿はそのログを残すものです.
インストール
基本的に参考ページの手順でOKです.
まずはPython3がインストールされていることを確認します.
python3 --version
Python3がインストール済みであることを確認したら,ホームに移動してからインストールを始めます.まずは関連パッケージをインストールします.
cd ~
sudo apt update
sudo apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential
OctoPrint
ディレクトリを作成して,Python仮想環境を作成します.
mkdir OctoPrint && cd OctoPrint
python3 -m venv venv
source venv/bin/activate
仮想環境内に入れたら,pipでOctoPrintをインストールします.
pip install pip --upgrade
pip install octoprint
シリアルポート設定
USB接続でつなぐプリンタにアクセスするため,下記コマンドシリアルポートの設定を行います.
sudo usermod -a -G tty [YOUR_USER_NAME]
sudo usermod -a -G dialout [YOUR_USER_NAME]
[YOUR_USER_NAME]にはお使いのユーザ名を指定します.例えば,ユーザ名が pi
であれば,次のようになります.
sudo usermod -a -G tty [YOUR_USER_NAME]
sudo usermod -a -G dialout [YOUR_USER_NAME]
この設定を有効にするには,一度ログアウトしてからログインする必要があります.僕はとりあえずで再起動しています.
手動起動
インストールとシリアルポートの設定が完了したら,まずは手動でOctoPrintを起動してみましょう.起動は下記コマンドで行えます.
~/OctoPrint/venv/bin/octoprint serve
しばらく待って,次のように Starting ...
のログが出たらOKです.
2020-11-03 17:39:17,979 - octoprint.startup - INFO - ***************************
2020-11-03 17:39:17,980 - octoprint.startup - INFO - Starting OctoPrint 1.4.2
2020-11-03 17:39:17,980 - octoprint.startup - INFO - ***************************
起動できたら,同じネットワークにあるマシンのブラウザからOctoPrintにアクセスしてみましょう.ブラウザのURL欄に http://[YOUR_IP_ADDR]:5000
と入力します.[YOUR_IP_ADDR]にはお使いのNano Piに割り当てられたIPアドレスを指定してください.例えば,Nano Piのアドレスが 192.168.1.33
だったとすれば,http://192.168.1.33:5000
と入力します.OctoPrintのUIが表示されればOKです.
自動起動設定
先程は手動で起動しましたが,Nano Piの電源を入れ直す度にこの手順を踏むのは面倒なので,自動起動を設定しましょう.まずはinitスクリプトをDLします.
cd ~
wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service
上記の手順でPython仮想環境にOctoPrintをインストールした場合は,スクリプト内の実行ファイル指定は ExecStart=/home/pi/OctoPrint/venv/bin/octoprint
になっている必要があります.念のため,スクリプトの中身を確認してみます.
cat octoprint.service
次のようなログが出ていればOKです.もし違っていたらお好みのエディタでoctoprint.serviceを編集してください.
pi@nanopineo2:~$ cat octoprint.service
[Unit]
Description=The snappy web interface for your 3D printer
After=network-online.target
Wants=network-online.target
[Service]
Environment="LC_ALL=C.UTF-8"
Environment="LANG=C.UTF-8"
Type=exec
User=pi
ExecStart=/home/pi/OctoPrint/venv/bin/octoprint
[Install]
続いて,DLしたスクリプトを自動起動で読み込まれるように移動します.
sudo mv octoprint.service /etc/systemd/system/octoprint.service
最後に下記コマンドで自動起動をオンにすれば完成です.
sudo systemctl enable octoprint.service
念のためNano Piを再起動して,OctoPrintが自動起動するか確認すると良いでしょう.