树莓派安装OctoPrint,搭建3D打印服务器
【参考链接】
官方文档:https://octoprint.org/download/
一、在树莓派上搭建OctoPrint服务:
- 安装包含 pip 和 virtualenv 的 Python 2.7 .
树莓派最新版本的系统已经自带 Python2.7,如果没有,可以手动安装:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install python virtualenv
- 用以下两种方式获取源码:
- 在源码目录创建一个Python虚拟环境(所有者为当前用户):
$ cd OctoPrint
$ virtualenv venv
- 安装OctoPrint到上一步创建的虚拟环境目录:
./venv/bin/python setup.py install
- 然后就可以通过运行
./venv/bin/octoprint serve
命令启动OctoPrint,或者使用绝对路径:/path/to/OctoPrint/venv/bin/octoprint
。另外也可以使用daemon
参数在后台启动、重启、停止服务:
$ sudo /path/to/OctoPrint/venv/bin/octoprint dameon {start|restart|stop}
之后就可以通过IP加端口号访问到了:
在浏览器输入:http://树莓派的ip地址:5000
首次打开会运行设置向导,一步步按照自己的需求设置即可。其中 CuraEngine 路径部分,需要编译安装 CuraEngine 才可以填写,可以先跳过,按照后面的步骤执行完毕后再填写。
二、编译安装 CuraEngine
如果要用树莓派切片,需要安装切片引擎 CuraEngine。编译安装步骤如下:
1. 安装 Protobuf >= 3.0.0
- 安装libtool:
apt install libtool
- 从 https://github.com/google/protobuf/releases下载 protobuf (下载ZIP并解压缩,或者克隆仓库)。Protocol Buffer 用于在CuraEngine 和用户界面之间通信。
下载链接:https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.tar.gz - 进入protobuf目录并运行
$ ./autogen.sh
这一步可能报错误信息:
'+ autoreconf -f -i -Wall,no-obsolete ./autogen.sh: 50: ./autogen.sh: autoreconf: not found
解决方法:
sudo apt-get install autoconf
- 然后依次执行如下命令,配置并编译安装:
$ ./configure
$ sudo make
$ sudo make install #注意安装需要root权限
- (如果在Linux系统中不能加载共享库,可以尝试执行
sudo ldconfig
)
2. 编译安装 libArcus
要编译 libArcus,需要以下几个包:
- Protobuf 3 (3.0+)
- CMake
- python3-dev (3.4+)
- python3-sip-dev (4.16+)
按照上一步编译安装Protobuf,并检查后面三个包:
$ sudo apt install cmake python3-dev python3-sip-dev
然后开始编译:
$ git clone https://github.com/Ultimaker/libArcus.git
$ cd libArcus
$ mkdir build && cd build
$ cmake ..
$ make
$ make install
这将会将 Arcus 库安装到CMake的默认安装位置:/usr/local
。要改变默认值,请设置 CMAKE_INSTALL_PREFIX
。示例目录默认也会创建,如果需要关闭,设置 BUILD_EXAMPLES
为 off
。
注意:执行
cmake ..
命令的时候可能会报如下错误
/usr/local/bin/protoc: error while loading shared libraries: libprotobuf.so.15: cannot open shared object file:
No such file or directory
CMake Warning at /usr/share/cmake-3.7/Modules/FindProtobuf.cmake:387 (message):
Protobuf compiler version doesn't match library version 3.5.1
Call Stack (most recent call first):
CMakeLists.txt:19 (find_package)
这里需要安装一下
protobuf-compiler
再重新cmake
即可:$ sudo apt install protobuf-compiler
3. 编译安装 CuraEngine
进入 CuraEngine 目录并执行以下命令
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install
如果正常执行完毕,终端会提示
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/CuraEngine
-- Set runtime path of "/usr/local/bin/CuraEngine" to "/usr/local/lib"
最后在浏览器中打开 OctoPrint 界面,进入设置界面,导航至 CuraEngine (<= 15.04)
选项卡,在右侧的 Path to CuraEngine
填写上面的路径 /usr/local/bin/CuraEngine
,点击 Test
按钮,如果提示 The path is valid
表示 CuraEngine 安装成功。
4. 添加开机自启动
修改 rc.local
文件,在终端输入并回车:
sudo nano /etc/rc.local
在打开的文本中找到exit 0,在此之前添加的代码在启动时都会被执行,在exit 0 之前添加一行代码:
# su命令是指定在root用户下执行这条命令,-c 表示执行完这条命令之后恢复原来的用户。
# 这里直接用 sudo 以 root 用户执行
sudo /path/to/OctoPrint/venv/bin/octoprint daemon start
trl+o
保存,ctrl+x
退出,然后在终端输入:sudo reboot
,重启系统测试。
5. OctoPrint 中的其他设置项目
Serial Connection
- Serial Port:
Auto
- Baudrate:
115200
Server
- Restart OctoPrint:
sudo /path/to/OctoPrint/venv/bin/octoprint daemon restart
- Restart system:
sudo reboot
- Shutdown system:
sudo shutdown -h now