|
104168| 56
|
[教程] 跟着思兼学习Klipper(10)使能Klipper从U盘读取Gcode并打印 |

前言原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正交流。由于个人时间精力有限,系列文章仅做个人记录,不做 “保姆级” 教程。 欢迎对 Klipper 固件感兴趣,以及对改版 CNC 加工的 Voron 三叉戟、v0、v2.4 感兴趣的朋友加群交流(QQ Group:490111638) 本文介绍如何让 Klipper 读取 U 盘里的 Gcode 切片文件,实现类似 Marlin 固件的脱机打印功能。
既然决定实现此功能,那我们撸起袖子去思考如何实现,实际过程中遇到如下问题:
1、自动挂载 U 盘首先我们知道,如果使用 Octoprint,它会创建一个目录
那么简单了,我们把 U 盘挂载到此目录下,岂不是就可以也读取 U 盘文件并进行打印了?有以下问题:
1.1 创建 udev 规则自动挂载 U 盘我们参考 udev rule for Home Assistant OS (hassio) to mount USB drives into the Supervisor Media directory 为基础进行修改:
注意:
参考文章
番外:Fluidd Gcode 目录提示 "root 不可用"一般两种原因:
1.2 正确设置挂载权限由于参考 udev 规则挂载出来的为 root 权限,当前用户无法读取 U 盘内容,需要修改挂载参数。因为以前挂载都是使用 我们设置默认创建的挂载文件夹参数为:
参考文章
1.3 使能 Klipper 读取子目录(新版默认启用)默认 Klipper 不支持读取子目录,例如我们使用 M20 命令无法看到 U 盘内的文件, 思索后修改相关代码
搜索 2、安全弹出 U 盘我们在 Windows 下使用 U 盘后,都有一个安全弹出 U 盘的选项,原因是你修改 U 盘内的文件后,为了提高操作流畅性与速度,其实相关修改会先在缓存中,然后后台慢慢实际写入,如果想要强制立即将缓存写入,可以使用 如果不这样操作,可能会小概率损坏 U盘,丢失修改内容等。那么在 Linux 下我们如何卸载 U 盘挂载点呢?这里提供两种思路 游客,如果您要查看本帖隐藏内容请回复 |
|
2023-05-01 13:33:06,882 [server.py:_initialize_component()] - Component [power] failed post init Traceback (most recent call last): File "/home/pi/moonraker/moonraker/server.py", line 222, in _initialize_component await ret File "/home/pi/moonraker/moonraker/components/power.py", line 101, in component_init if not dev.initialize(): 大佬,照着您的教程写了卸载U盘的服务,但是并没有启动,在log里发现了umount服务确实无法启动 File "/home/pi/moonraker/moonraker/components/power.py", line 363, in initialize self._setup_bound_services() File "/home/pi/moonraker/moonraker/components/power.py", line 353, in _setup_bound_services raise self.server.error( moonraker.utils.ServerError: Bound Service umount is not available 2023-05-01 13:33:06,882 [server.py:add_warning()] - Component 'power' failed to load with error: Bound Service umount is not available 但是调用 `systemctl status umount`发现确实是有这个服务了的 systemctl status umount ● umount.service - umonut gcode_files udisk folder Loaded: loaded (/etc/systemd/system/umount.service; enabled; vendor preset: enabled) Active: inactive (dead) since Wed 2023-03-15 23:04:21 CST; 1 months 16 days ago Process: 481 ExecStart=/usr/bin/bash -c /usr/bin/test -e /dev/sda1 && udisksctl unmount -b /dev/> Process: 489 ExecStart=/usr/bin/bash -c /usr/bin/test -e /dev/sda2 && udisksctl unmount -b /dev/> Main PID: 489 (code=exited, status=0/SUCCESS) |
萌萌哒新人
活跃会员
宣传大使
版主限定
牛X认证
老版主限定
创作达人
小蘑菇
编辑选择奖
ARD DAY
编辑选择奖
摸鱼团员
编辑选择奖
志“童”道合
编辑选择奖
编辑选择奖
编辑选择奖
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed