前言
之前在小树群的时候基于 OctoPrint 官方文档整理了一份在 Linux 上安装 OctoPrint 的教程,当时为了方便修改,将教程放到了腾讯文档上(那时的我假装不知道有简书),有了自己的网站后才计划将它好好搬过来优化一下……
废话不多说,马上开始教程!
注意
本教程仅针对OctoPrint与Marlin配合使用,如果使用Klipper,建议移步至本人的另一篇教程【手把手教你安装Klipper】来安装配合Klipper使用的Fluidd界面。
准备材料
- 一台装有 Linux 的电脑(Debian、Arch、RPM系均可,但是下面的教程仅包含Debian系和Arch系的安装教程)
- Ubuntu 系统最低需要 18.04 LTS,Debian 系统最低需要 Debian 10(具体为啥看下面)
- 一根 USB 连接线(根据主板接口选择,用于连接打印机到上位机
安装依赖软件
检查 Python 版本
现在的 Linux 发行版一般在安装时包含了 Python 3,且 OctoPrint 需要最低 Python 3.6 才能使用。
Ubuntu 18.04软件源内的Python为3.6,而Debian 10内置的Python版本为3.7,
系统版本越低,内置的Python只会越老,
而且手动安装新版本Python经本人测试会出现很多问题,不如使用内置对应版本Python的版本。
输入以下命令即可查询 Python 3 的版本:
# Arch 系(Arch Linux、Manjaro等)
python -V
# Debian 系(Ubuntu、Armbian等)
python3 -V
如果 Python 版本高于 3.6 的话,就可以进行接下来的安装了~
安装剩余的依赖软件
# Debian系(Ubuntu等)
sudo apt install python3-pip python3-dev python3-setuptools python3-venv python3-wheel git libyaml-dev build-essential
# Arch系(Arch Linux, Manjaro等)
sudo pacman -S --needed python-pip python-virtualenv python-setuptools python-wheel git base-devel
安装
(以下指令在 Ubuntu、Debian、Armbian 等系统运行时,需将指令中的python
改为python3
,pip
改为pip3
)
# 新建并进入文件夹
mkdir octoprint && cd octoprint
# 创建虚拟环境
python -m venv venv
# 进入虚拟环境,进入成功后路径前会出现(venv)字样
source venv/bin/activate
# 使用pip安装时速度可能很慢,可以使用以下命令变更pip的源(任选其一)
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 豆瓣源
pip config set global.index-url https://pypi.doubanio.com/simple
# 腾讯源
pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
# 安装Octoprint本体
pip install octoprint
以上指令运行完成后,即可使用octoprint serve命令运行 OctoPrint 进行初次配置。
使用电脑浏览器访问http://机器的ip地址/5000。如果一切无误,将出现 Setup Wizard(设置向导)页面,此时可以开始初始设置。
初始配置
这里先贴出一些重要的设置项目,以后会逐渐完善(咕咕咕
连接打印机
在Serial Port
(串口设定)中选择以/dev/ttyUSB
开头的设备(如: /dev/ttyUSB0
)后,按Connect
即可自动尝试连接。
如果连接失败,State处含有文字Offline (Error: No more candidates to test, and no working port/baudrate combination detected.)
,请点击界面右边的Terminal标签查看输出,如果输出中含有Permission Denied
字样,说明USB串口权限没有开放,需要手动开放权限。
使用sudo nano /etc/udev/rules.d/70-ttyusb.rules创建自动设置权限的配置文件,输入以下内容并保存:
KERNEL=="ttyUSB[0-9]*", MODE="0666"
重新插拔USB线后点击Connect即可成功连接。
进行打印
点击界面左侧Files-Upload,上传gcode文件(不建议使用Upload to SD功能上传到打印机的SD卡)
实现开机自启动
在 /etc/systemd/system 目录下,创建新文件 octoprint.service
sudo nano /etc/systemd/system/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=simple
User=用户名
ExecStart=/home/用户名/octoprint/venv/bin/octoprint
[Install]
WantedBy=multi-user.target
替换为自己的用户名并确认无误后保存。
输入sudo systemctl enable octoprint.service命令即可设置开机自启动,且可以通过systemctl status octoprint.service检查Octoprint的启动状态。
安装摄像头
OctoPrint支持通过mjpg-streamer来访问摄像头。
通过AUR安装mjpg-streamer(仅适用于Arch Linux)
如果系统中安装了yay
、yaourt
等支持AUR的包管理器,可使用以下命令直接从AUR中安装mjpg-streamer:(以yay为例)
yay -S mjpg-streamer-git
编译安装mjpg-streamer(适用于Debian、Ubuntu等系统)
首先下载mjpg-streamer的源代码:
git clone https://github.com/jacksonliam/mjpg-streamer.git
若GitHub访问缓慢,请参考手把手教你安装Klipper文章中的代理服务,从代理服务器下载。
使用sudo apt install build-essential libjpeg8-dev cmake
安装必要工具和依赖后,即可开始编译。
# 进入源代码目录
cd mjpg-streamer-experimental
# 编译
make
# 安装
sudo make install
测试mjpg-streamer
连接摄像头,使用sudo mjpg_streamer -i input_uvc.so
测试摄像头,终端会出现以下内容(可能出现Error at xxx的消息,忽略即可):
MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
o: www-folder-path......: disabled
o: HTTP TCP port........: 8080
o: HTTP Listen Address..: (null)
o: username:password....: disabled
o: commands.............: enabled
打开浏览器输入http://设备的IP地址:8080/?action=stream
,正常情况下浏览器窗口内将会出现视频画面。
配置开机启动
在/etc/systemd/system
目录下创建服务mjpg-streamer.service
sudo nano /etc/systemd/system/mjpg-streamer.service
输入以下内容:(如果是通过sudo make install
编译安装,请将下文中的/usr/bin/mjpg_streamer
改为/usr/local/bin/mjpg_streamer
)
[Unit]
Description=Webcam streaming service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/mjpg_streamer -i input_uvc.so
[Install]
WantedBy=multi-user.target
可在服务文件中通过参数对mjpg_streamer进行配置。
如要配置摄像头画面分辨率、帧率等参数,请参考input_uvc.so的配置文档。
如要配置端口、服务器根目录、用户名密码等参数,请参考output_http.so的配置文档。
保存后设置开机自启并启动服务。
# 开机自启
sudo systemctl enable mjpg-streamer.service
# 启动服务
sudo systemctl start mjpg-streamer.service
在OctoPrint中添加摄像头
登录Octoprint的Web界面,点击右上角小扳手,进入设置界面,选择Features下的Webcam & Timelapse,在界面右边填入摄像头的信息。(填写每一项后可以点击Test按键测试摄像头是否正常工作)
如果要启用延时摄影,需要确保系统中安装FFmpeg。
对于Debian、Ubuntu系统,可使用
sudo apt install ffmpeg
来安装,对于Arch Linux、Manjaro等系统,使用
sudo pacman -S ffmpeg
即可。
Comments 1 条评论
博主 小谢同志丶
设置摄像头开机自启显示:sudo: /etc/sudoers.d/octoprint-shutdown is owned by gid 1000, should be 0
是什么情况???? :lei: