本文使用的环境
电脑:Windows10
服务器 :刷 快乐的我 531 的 Debian的随身WiFi

使用的棒子建议是512+8,512+4也可以,但可能无法安装使用摄像头功能

本文使用的是快乐的我 531的Debian包,主板刷入固件分为线刷和卡刷方式,本文主要使用的是线刷方式

klipper官方文档(中文)https://www.klipper3d.org/zh/

1、准备工作

  1. 本文使用到的刷机包:https://www.123pan.com/s/DGj7Vv-elai.html 提取码:tEw4
  2. SSH 工具https://www.123pan.com/s/DGj7Vv-xSai.html 提取码:6q1k(已有则可忽略)
  3. 随身WiFi助手https://www.123pan.com/s/DGj7Vv-tlai.html 提取码:pxcA
  4. 一母分两公+母对母转接器或者hub(详情请参考 挂载 TF 卡 / U 盘篇)(用于给上位机供电,与下位机连接)
  5. 连接下位机用的数据线(用于与下位机连接)
  6. TF卡(选择卡刷主板才需要,否则请忽略)(需要主板支持卡刷)

2、上位机(随身WiFi)刷入Klipper

2.1、随身WiFi前置准备

  1. 使用本文提供的刷机包刷入棒子后连接WiFi(详情请参考OpenWrt / Debian 连接 WiFi篇)本文就不再赘述了
  2. 连接wifi完成后输入以下命令
    sudo echo xxxx > /dev/mmcblk0p12
    
  3. 重启,此时重启后会自动进入Fastboot模式
    reboot
    
  4. 进入 UFI001C 解压出来的目录,将地址栏的路径删除后输入 CMD 并回车进入命令提示符窗口,输入以下内容,刷入boot分区
    fastboot flash boot 5.18.0boot-msm8916.img
    
  5. 打开【随身WiFi助手】=-=> 【Z】=-=> 【X】退出Fastboot重启棒子
  6. 重新使用SSH工具连接随身WiFi(此时就可以插在任意地方了)
  7. 安装vim(已安装则忽略)
    apt-get install -y vim
    
  8. 更换源,本文使用的是腾讯源,其他源理论上也可(原本的删除或者注释掉)
    vim /etc/apt/sources.list
    
    # 腾讯源
    deb https://mirrors.tencent.com/debian/ bullseye main non-free contrib
    deb-src https://mirrors.tencent.com/debian/ bullseye main non-free contrib
    deb https://mirrors.tencent.com/debian-security/ bullseye-security main
    deb-src https://mirrors.tencent.com/debian-security/ bullseye-security main
    deb https://mirrors.tencent.com/debian/ bullseye-updates main non-free contrib
    deb-src https://mirrors.tencent.com/debian/ bullseye-updates main non-free contrib
    deb https://mirrors.tencent.com/debian/ bullseye-backports main non-free contrib
    deb-src https://mirrors.tencent.com/debian/ bullseye-backports main non-free contrib
    
  9. 修改AdoptOpenJDK.list 内容,保存并退出
    vim /etc/apt/sources.list.d/AdoptOpenJDK.list
    
    deb http://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb buster main
    
  10. 执行以下命令,或者直接修改该文件为AdoptOpenJDK.list.bak
    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 843C48A565F8F04B
    sudo gpg --armor --export 843C48A565F8F04B | sudo apt-key add
    
  11. SSH工具自带的文件管理界面进入/etc/apt/sources.list.d/目录,修改mobian.list文件 为 mobian.list.bak
  12. 更新源
    sudo apt-get update
    
  13. 卸载 python3
    sudo apt autoremove python3
    
  14. 重新安装 python3
    sudo apt install python3
    
    进入/usr/bin/目录,确认 python3 存在
  15. 若遇此问题:下列软件包有未满足的依赖关系: libglib2.0-bin : 依赖: libglib2.0-0 (= 2.66.8-1) 但s是2.68.1-2mobian1 正要被安装 E: 无法修正错误,因安装所需要的主件。
    root用户下运行此命令
    apt-get install libglib2.0-0=2.66.8-1
    
  16. 新建 klipper 用户
```
useradd -m -s /bin/bash klipper
```
  1. 设置 klipper 密码
    sudo passwd klipper
    
  2. 给 klipper 用户 sudo 权限
    sudo usermod klipper -a -G sudo
    
  3. 切换用户到 klipper 准备安装Klipper
    su klipper
    

2.2、开始安装Klipper

以下内容皆在Klipper用户下执行

  1. 回到根目录

    cd ~
    
  2. 安装 Git

    sudo apt install git -y
    
  3. 从 Git 下载 Klipper

    无镜像无魔法,或者还是有网络问题,建议使用Gitee的

    git clone https://gitee.com/miroky/kiauh.git
    

    GitHub需要镜像或者魔法

    git clone https://github.com/dw-0/kiauh.git
    
  4. 运行Klipper助手

    ./kiauh/kiauh.sh
    
  5. 进入KIAUH界面后,进入 Installation Menu 安装界面

    1. 安装 Klipper

      1. Installation Menu 安装界面中选择1) [Klipper]
      2. 选择 Python 3.x ,Python2.x已停止维护
      3. 询问安装Klipper的实例数量,如果只连接一台打印机,只需安装一个实例
        这里以一台打印机为例,按两下回车继续
        此时KIAUH便会开始Klipper的安装,只需稍作等待即可
        安装过程中需要安装并更新软件,可能需要系统的管理员密码
      4. 安装好Klipper后,可能会询问是否将当前用户加入 ttydialout 等用户组,用于解决可能无法连接下位机的问题,y 确认即可,确认后会自动回到 Install 安装界面
    2. 安装Moonraker
      Installation Menu 界面中选择 2) [Moonraker]y 确认
      此步若出错终止,大概率是网络问题
      安装完成后会自动回到 Install 安装界面

    3. 安装Klipper的Web界面,有 Mainsail / Fluidd 两种

      本文以安装Fluidd为例,Mainsail安装过程与Fluidd大同小异,故不再赘述

      Installation Menu界面中选择3) [Mainsail]4) [Fluidd]即可开始安装
      中途可能会提示是否安装摄像头驱动,看个人选择,若没遇到此提示则忽略即可

    4. 安装完成后会询问是否添加常用的gcode脚本(宏),一般情况下直接回车安装即可

      本文提供的Klipper库疑似没有宏,安装时提示没有库忽略即可,不影响使用

  6. 安装完成后即可使用 ip 访问 Klipper 界面,在设置里可以更改显示语言为中文

3、给下位机刷入Klipper固件

3.1、使用上位机(随身WiFi)给下位机线刷Klipper(推荐使用此方法)

主板刷入固件分为线刷和卡刷方式,本文主要使用的是线刷方式,主板使用的是MKS GEN_L V2.1

  1. 将随身WiFi通过USB线连接下位机主板,给随身WiFi,供电主板无须供电,使用SSH工具通过 ip 远程连接

  2. 连接后,切换到 klipper 用户

    su klipper
    
  3. 获取下位机主板(MCU)id(需先识别获取到 id 才能正常刷入)

    1. 单上位机+单下位机时
      1. 运行Klipper助手
      ./kiauh/kiauh.sh
      
      1. 选择 4) [Advanced] 高级选项
      2. 选择 5) [Get MCU ID] 获取 MCU(主板) id
      3. 连接方式,选择 1) USB
        将获取到的 MCU id 复制保存
        q 退出,回到 Advanced 高级界面
    2. 单上位机+多下位机时
      1. 在 Klipper 用户下运行此命令
        ls /dev/serial/by-path/*
        
      2. 运行Klipper助手
        ./kiauh/kiauh.sh
        
      3. 选择 4) [Advanced] 高级选项
  4. Advanced 高级界面,选择 4) [Build + Flash] 编译和刷写固件
    默认即是Mega2560主控的主板

    若需修改可到MKS的Git里查看对应主板的设置

    Q 退出

  5. 编译完成后会询问使用哪种方式刷写固件
    Klipper用户下,out文件夹中,.hex 就是编译后的固件

    1. Regular flashing method :线刷
    2. Updat ing via SD-Card Update :卡刷
  6. 连接方式,选择 1) USB

  7. 确认要刷入的MCU,只有1个时直接输入 1 即可,y 再次确认

  8. 刷写时会提示会停止 Klipper 服务,需输入密码,密码不会显示出来,回车开始刷入

  9. 等待刷写完成后 q 退出 Klipper助手

  10. 打开Klipper的Web界面

3.2、使用上位机给下位机线刷Klipper另一种方法

  1. 将随身WiFi通过USB线连接下位机主板,给随身WiFi,供电主板无须供电,使用SSH工具通过 ip 远程连接
  2. 连接后,切换到 klipper 用户
    su klipper
    
  3. 进入 Klipper 目录
    cd ~/klipper/
    
  4. 查看是否需要修改内核配置,需要与主板一致
    make menuconfig
    
  5. 编译生成下位机固件
    make
    
  6. 查看USB连接的串口号并记录保存下来,等会用到
    ls /dev/serial/by-id/*
    
  7. 退出 Klipper 服务
    sudo service klipper stop
    
  8. 线刷编译好的固件

    make flash FLASH_DEVICE=串口号

    make flash FLASH_DEVICE=
    
    等待刷入完成
  9. 关闭随身WiFi
    sudo shutdown -h now
    
    关闭后先断电,重新接线,主板和随身WiFi都需要上电
  10. 上下位机都刷入完成后,使用 ip 访问Klipper的Web界面即可识别到下位机

3.3、卡刷下位机