2022-4-16 01:27:11 [显示全部楼层]
73330浏览
查看: 73330|回复: 14

[教程] 安卓手机运行 Klipper 补充:the easy way

[复制链接]

前言

心情不好,简单记录一下。之前测试了 octo4a 安装 Klipper,不需要 root 权限,不需要重新编译内核添加串口模块驱动,所以手机上运行 Klipper全家桶肯定可以更简单。之前没用过 chroot,下面很多内容说的肯定不对,看了 SYZ-Channel 的一些视频,说一下几点:

  1. Anlinux 有段时间不更新了,安装的是 Debian Buster,习惯了 Bullseye 的朋友可以尝试 proot-distro 工具。

    # 安装 Debian
    proot-distro install debian
    # 以 root 用户登陆
    proot-distro login debian
    # 以 pi 用户登陆
    proot-distro login debian --user pi
  2. Termux 可以用 tsu 或者 termux-sudo 获取root权限。此外,这个 root 权限是指操作硬件设备的权限,如果不获取,虽然可以执行 apt 等操作,但是无法访问 /dev 设备

  3. proot 出来的 debian 系统不是使用 systemd 进行管理,似乎是 Android 的问题,所以视频中把运行 Klipper 全家桶的命令手动复制出来执行。

优点:

  • 无需手机 root
  • 无需编译内核驱动模块
  • 无需安装 octo4a
  • TCP 数据在内部传输,不怕传输速率和信号不稳定

另辟蹊径访问 USB 串口设备

不足

  • octo4a 似乎不支持 stm32 模拟出来的 USB 串口设备,这就很麻烦,因为目前市面上的都是 stm32 主板。
  • 视频中借助 octo4a,并且需要 root 权限来访问串口设备,有点太臃肿了,又装了个 termux + octoprint 属于是

我的方法

Image

大概就是上图那个意思:

UsbSerial ——> TCP Server  ——> Linux Device  ——> Klipper

优点是简单,不需要安装臃肿的 octo4a,唯一要注意的是创建虚拟设备,一是转发 TCP 包,二是与 Klippy 交互。

Step 1 识别串口设备并打开 TCP 数据转发

下载 TCPUART transparent Bridge

image-20220416011227041

image-20220416010958140

Step 2 创建虚拟设备,开启 TCP 数据转发

这一步方便被 Klippy 调用,总不能访问 IP 地址吧

socat -d -d pty,link=/tmp/tcpserial,raw,echo=0,waitslave tcp:localhost:8080
  • 原本按部就班创建到 /dev 目录下,需要手机 root 才能访问
  • 转念一想,Linux下皆是文件,创建到一个谁都能访问的地方得了

Step3 简单测试读写

短接 Rx-Tx

cat /tmp/tcpserial
echo HelloWorld! > /tmp/tcpserial

image-20220416012111059

验证Klipper全家桶是否需要root权限

为了严谨,安装了一遍,暂时没发现。

参考

我是zz  学徒

发表于 2022-5-23 09:50:47

华为手机    识别不到ch340G芯片,楼主能分析下原因吗
回复

使用道具 举报

pATAq  版主
 楼主|

发表于 2022-5-23 19:07:16

我是zz 发表于 2022-5-23 09:50
华为手机    识别不到ch340G芯片,楼主能分析下原因吗

首先你手机支持otg吗,其次,什么识别不到,怎么知道没识别到的
回复

使用道具 举报

技术不宅  学徒

发表于 2022-5-31 08:36:04

大佬,最近我也在研究安卓手机作为klipper上位机,目前的方案是华为P20手机安装Termux,建立proot容器,用octo4a连接,目前直接可以识别到打印机主板,目标是也免root。

可是遇到个问题,klipper都装完了,也在Ubantu和debian9.10.11都试过,目前都是卡在了下面这个问题上

###### Restarting Moonraker...
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: 主机关闭

求大佬指点
回复

使用道具 举报

pATAq  版主
 楼主|

发表于 2022-6-1 19:36:37

技术不宅 发表于 2022-5-31 08:36
大佬,最近我也在研究安卓手机作为klipper上位机,目前的方案是华为P20手机安装Termux,建立proot容器,用o ...

Ternux不支持systemd管理启动服务,手动后台执行或者创建SysInitV服务。具体不再赘述,不看好手机上位机,想说的都在文章里了
回复

使用道具 举报

技术不宅  学徒

发表于 2022-6-6 08:33:54

pATAq 发表于 2022-6-1 19:36
Ternux不支持systemd管理启动服务,手动后台执行或者创建SysInitV服务。具体不再赘述,不看好手机上位机 ...

感谢大佬,读了您之前的文章,感觉确实不太好弄,已经转向虚拟机和miniPC方向了
回复

使用道具 举报

flyskycs  学徒

发表于 2022-10-7 11:02:08

大佬 能不能提供下TCPUART transparent Bridge软件   翻不了墙  下不了
回复

使用道具 举报

淑仝爸爸  学徒

发表于 2022-10-8 06:17:50

本帖最后由 淑仝爸爸 于 2022-10-8 06:28 编辑

昨天使用octo4a-1.1.2连接Ender3 S1 Pro(STM32F401)成功
回复

使用道具 举报

pATAq  版主
 楼主|

发表于 2022-10-11 16:37:13

淑仝爸爸 发表于 2022-10-8 06:17
昨天使用octo4a-1.1.2连接Ender3 S1 Pro(STM32F401)成功

回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-1-21 11:35:44

太赞了!
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-1-21 11:36:58

棒!!!
回复

使用道具 举报

6陈tyu  学徒

发表于 2023-6-24 13:15:19

请问楼主的klipper 是直接在termux运行,还是通过安装Linux运行klipper
回复

使用道具 举报

6陈tyu  学徒

发表于 2023-6-24 13:40:40

另外,请问,数据流向是这样吗?
tcpuart 将usb串口的数据转发到localhost:8080, 然后“socat -d -d pty,link=/tmp/tcpserial,raw,echo=0,waitslave tcp:localhost:8080”这个命令,将localhost:8080的数据在/tmp/tcpserial中读写,klipper在printer.cfg中需要填写serlial:是/tmp/tcpserial,这个虚拟的设备
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-3 22:48:35

厉害!!安卓手机运行 Klipper 补充:the easy way图1
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-3 22:49:37

好棒的教程!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail