跳到主要内容

USB 固件编译

固件编译注意事项与操作指南

注意事项

📌 重要前提
  1. 网络连接:确保上位机(树莓派等)已连接网络
  2. 访问方式:必须使用SSH通过网络登录上位机,禁止使用串口工具
  3. 用户权限:根据上位机系统类型,使用正确的用户账户操作
  4. 输入法:确保键盘输入法为半角模式(英文模式)

SSH登录与用户切换

SSH登录上位机

使用SSH工具(如MobaXterm、PuTTY等)通过网络登录上位机: 查看SSH连接详细教程

根据系统类型切换用户

适用系统:

  • 树莓派官方系统
  • 其他安装好Klipper的系统

用户权限要求:

  • 禁止使用root用户进行任何操作
  • 必须切换到普通用户进行操作

切换命令:

  • 其他系统(替换<username>为您的用户名)

    su <username>
💡 提示

普通用户通常具有必要的编译权限,使用root用户可能导致权限问题


固件编译说明

1. 键盘操作指南

  • 在Klipper固件配置页面中,只能使用以下快捷键操作:
  • 无法使用鼠标直接操作!
按键功能说明
↑ ↓ 方向键上下移动光标选择菜单项
EnterSpace确认选择/勾选菜单项 或 进入子菜单
ESC返回上一级菜单
Q退出Klipper固件配置页面
Y退出时如有提示,按Y键保存配置

显示隐藏选项

⚠️ 显示隐藏选项

如果配置页面选项较少,请先勾选:

[ ] Enable extra low-level configuration options

此选项用于显示部分隐藏的配置选项。

开始固件编译

下面介绍如何编译固件:

  • 连接到SSH后输入下面的命令并回车:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • 其中 rm -rf ~/klipper/.config && rm -rf ~/klipper/out是删除之前编译数据与固件

  • make menuconfig是编译固件,执行后应该出现下方界面

    Loading...
  • 选择Enable extra low-level configuration options并且回车

    Loading...
  • 进入菜单Micro-controller Architecture然后选择STMicroelectronics STM32回车

    Loading...
  • 进入菜单Processor model,选择STM32F405回车

    Loading...
  • 选择Bootloader offset,选择:32KiB bootloader

    Loading...
  • Communication interface,选择:USB (on PA11/PA12)

    Loading...
  • Q 键,出现 Save configuration,这时再按 Y
    Loading...
  • 现在应该保存了配置并且退出到了命令行界面
  • 输入下方指令开始编译,时间有点长
make -j4
Loading...
  • 最后输出下面的内容则编译成功
  • 因Klipper版本问题只需要出现out/klipper.bin则代表成功
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

固件烧录

提示

执行下面的命令来烧录固件

fly-flash -d auto -h -f /data/klipper/out/klipper.bin
Loading...
Loading...

搜索USB ID

  1. 打开浏览器,在网址栏中输入上位机的IP地址,比如我上位机IP是192.168.101.179直接输入然后回车即可
Loading...
  1. 打开上位机的WEB界面,在左侧边栏的配置选项里找到:
  • fluidd为: {…} ,点击进去,即可找到 printer.cfg
Loading...
  • mainsail为:机器,点击进去,即可找到 printer.cfg
Loading...

3.点击printer.cfg 进去后,在点击右上方的DEVICES

Loading...
Loading...

4.点击SERIAL ,然后刷新

  • fluidd的刷新
Loading...
  • mainsail的刷新
Loading...

5.复制ID,点击箭头所指即可复制

  • fluidd需要是否存在ttyAMC,并且确保Path by ID存在,这个是USBID
Loading...
  • mainsail需要是否存在ttyAMC,并且确保Path by ID存在,这个是USBID
Loading...

填写USB ID

危险

请注意下方ID不可以使用!!!!

serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
  1. 关闭DEVICES填写ID
须知
  • 请将配置文件中的:
[mcu] 
serial: /tmp/klipper_host_mcu

修改为

[mcu host] 
serial: /tmp/klipper_host_mcu
  • 添加:
[mcu]
serial: <这里替换为你刚刚查询到的ID>
  • fluidd中找到[MCU]
Loading...
  • mainsail中找到[MCU]
Loading...
  1. 将ID填写到配置中
提示
  • 填写好ID后点击右上方的SAVE & RESTART
Loading...
Loading...
  1. 若Klipper提示 ADC out of range 此为正常现象,将热床和热敏连接到主板,并配置好喷头、热床的热敏引脚,再保存重启即可。
危险

注意:文档中所出现的所有ID均为示例,实际每个主板的ID均不相同,请填写实际获取到的ID。


Loading...