USB 固件编译
开始编译
固件编译简明指南
注意事项
- 网络: 确保上位机(树莓派等)已联网
- 登录方式: 必须使用 SSH 通过网络登录,禁用串口
- 输入法: 保持键盘为英文半角模式
SSH登录与用户切换
使用 MobaXterm、PuTTY 等工具 SSH 登录上位机。
切换用户:
- 普通系统(树莓派官方系统等)
禁止使用root,需切换到普通用户:su <用户名> - FLY上位机(FlyOS-FAST系统)
仅支持root用户登录(密码:mellow)
固件编译操作指南
在 Klipper 固件配置界面中仅支持键盘操作,无法使用鼠标。
| 按键 | 功能 |
|---|---|
| ↑ / ↓ | 上下移动光标,选择菜单项 |
| Enter / 空格 | 确认选择、勾选选项或进入子菜单 |
| ESC | 返回上一级菜单 |
| Q | 退出配置界面 |
| Y | 退出时,如有提示则按 Y 保存配置 |
开始固件编译
下面介绍如何编译固件:
-
连接到 SSH,输入下面的命令并按
Enter:cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig其中,
rm -rf ~/klipper/.config && rm -rf ~/klipper/out用于清除之前的编译配置与固件;make menuconfig用于打开 Klipper 固件配置界面。 -
按照下方顺序逐项设置,每完成一项再继续下一项。
1启用 Enable extra low-level configuration options(Top)Klipper Firmware Configuration2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x(Top)Klipper Firmware Configuration3Processor model 选择 rp2040(Top)Klipper Firmware Configuration4Bootloader offset 选择 16KiB bootloader(Top)Klipper Firmware Configuration5Communication Interface 选择 USBSERIAL(Top)Klipper Firmware Configuration6启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration7按 Q 键退出配置界面(Top)Klipper Firmware Configuration8出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel -
完成上方最后两个步骤,按
Q退出配置界面,再按Y保存配置。 -
返回命令行后输入下面的命令并按
Enter开始编译:make -j4root@flyos-11e5f8 ~/klipper # make -j4Compiling out/src/rp2040/bootrom.oCompiling out/src/rp2040/usbserial.oCompiling out/src/generic/usb_cdc.oCompiling out/src/rp2040/chipid.oCompiling out/src/rp2040/hard_pwm.oCompiling out/src/rp2040/spi.oCompiling out/src/rp2040/i2c.oPreprocessing out/src/rp2040/rpxxxx_link.ldBuilding out/compile_time_request.oVersion: XXXXLinking out/klipper.elfCreating bin file out/klipper.bin终端末尾出现
Linking out/klipper.elf和Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。
确认是否进入烧录模式
开始前请完全关闭打印机并断开电源供应。不要在通电状态下插拔线束、整理线序或触碰端子。
- 使用Type-C数据线将主板连接至上位机后,双击reset按钮,此时主板上会有LED灯闪烁。
- 如果没有LED灯闪烁,请重新烧录Katapult固件:烧录Katapult固件
- 如果没有LED灯闪烁,请在烧录完Katapult固件后,再执行下一步
烧录固件
本流程用于通过 USB Katapult 烧录刚刚编译好的 Klipper 固件,只需要操作当前页面所选的固件类型。
1. 搜索 Katapult USB ID
非 FLY 官方上位机需要先安装 Katapult:
执行以下命令:
ls /dev/serial/by-id/*
搜索结果中应出现包含 usb-katapult_ 的完整路径,例如:
/dev/serial/by-id/usb-katapult_<芯片型号>_<设备ID>-if00
每块下位机的 ID 都不同,请复制自己设备显示的完整路径。
2. 烧录 Klipper 固件
请将命令中的 <Katapult USB ID> 替换为上一步搜索到的完整路径,不要保留尖括号。
- 普通 Linux 上位机
- FLYOS / FLY 上位机
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Katapult USB ID>
python3 ~/katapult/scripts/flashtool.py -d <Katapult USB ID>
3. 确认烧录结果
命令执行完成且没有出现报错,即表示固件已经写入。烧录完成后,Katapult USB ID 会消失;请按照当前产品页面后续步骤重新上电并搜索对应的 Klipper ID。
重刷固件
以后需要更新已经刷入的 Klipper 固件时,不需要重复烧录 Katapult。请先在当前页面重新编译目标固件,再根据设备当前状态选择一种方法。
方法一:使用命令自动进入 Katapult
如果当前能搜索到 usb-Klipper_ ID,可以让 Klipper 自动请求下位机进入 Katapult 并完成重刷:
cd ~/klipper && make flash FLASH_DEVICE=<usb-Klipper ID>
请将 <usb-Klipper ID> 替换为 ls /dev/serial/by-id/* 搜索到的完整路径。命令默认使用 ~/klipper/out/klipper.bin。
方法二:双击 RST 后手动烧录
如果当前没有 usb-Klipper_ ID,或方法一执行失败,请使用以下方法:
开始前请完全关闭打印机并断开电源供应。不要在通电状态下插拔 USB 线或触碰端子。
-
断电后重新连接 Type-C 数据线。
-
快速双击下位机的
RST按键,等待状态灯闪烁,表示已进入 Katapult。 -
搜索 Katapult USB ID:
ls /dev/serial/by-id/* -
使用搜索到的
usb-katapult_ID 执行烧录:普通 Linux 上位机:
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Katapult USB ID> -f ~/klipper/out/klipper.binFLYOS / FLY 上位机:
python3 ~/katapult/scripts/flashtool.py -d <Katapult USB ID> -f ~/klipper/out/klipper.bin
重刷时必须使用与当前连接方式对应的固件。USB 桥接 CAN 固件虽然最终通过 CAN 工作,但 Katapult 重刷仍然使用 USB ID 和 USB 烧录命令。
烧录后搜索 USB ID
固件烧录完成并给主板重新上电后,请继续搜索 USB ID。