Перейти к основному содержанию

Компиляция прошивки для USB

Начало компиляции

Краткое руководство по компиляции прошивки

Примечания

  • Сеть: Убедитесь, что хост-компьютер (Raspberry Pi и т.п.) подключен к сети.
  • Способ входа: Необходимо входить через SSH по сети, последовательный порт отключен.
  • Раскладка клавиатуры: Держите клавиатуру в английском полуширинном режиме

Вход по SSH и переключение пользователей

Используйте MobaXterm, PuTTY и другие инструменты для входа по SSH на хост-компьютер.

Переключение пользователя:

  • Обычная система (официальная система Raspberry Pi и т.п.)
    Запрещено использовать root, необходимо переключиться на обычного пользователя:
    su <имя_пользователя>
  • FLY хост-компьютер (система FlyOS-FAST)
    Поддерживается только вход от пользователя root (пароль: mellow)

Руководство по компиляции прошивки

В интерфейсе конфигурации прошивки Klipper поддерживается только управление с клавиатуры, мышь использовать нельзя.

КлавишаФункция
↑ / ↓Перемещение курсора вверх/вниз, выбор пункта меню
Enter / ПробелПодтверждение выбора, отметка опции или вход в подменю
ESCВозврат в предыдущее меню
QВыход из интерфейса конфигурации
YПри выходе, если есть подсказка, нажмите Y для сохранения конфигурации

Начало компиляции прошивки

Ниже описано, как компилировать прошивку:

  1. Подключитесь по 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.

  2. Настройте параметры по порядку, следуя приведенному ниже списку, переходя к следующему пункту только после завершения предыдущего.

    1启用 Enable extra low-level configuration options
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    3Processor model 选择 rp2040
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    4Bootloader offset 选择 16KiB bootloader
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    5Communication Interface 选择 USBSERIAL
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    6启用 Optimize stepper code for 'step on both edges'
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    7Q 键退出配置界面
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    8出现 Save configuration 时按 Y 保存配置
    Quit
    Save configuration?
    (Y)es(N)o(C)ancel
  3. После завершения двух последних шагов выше нажмите Q для выхода из интерфейса конфигурации, затем нажмите Y для сохранения настроек.

  4. Вернувшись в командную строку, введите следующую команду и нажмите Enter, чтобы начать компиляцию:

    make -j4
    root@flyos-11e5f8 ~/klipper # make -j4
    Compiling out/src/rp2040/bootrom.o
    Compiling out/src/rp2040/usbserial.o
    Compiling out/src/generic/usb_cdc.o
    Compiling out/src/rp2040/chipid.o
    Compiling out/src/rp2040/hard_pwm.o
    Compiling out/src/rp2040/spi.o
    Compiling out/src/rp2040/i2c.o
    Preprocessing out/src/rp2040/rpxxxx_link.ld
    Building out/compile_time_request.o
    Version: XXXX
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

    终端末尾出现 Linking out/klipper.elf Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。

Проверка перехода в режим записи

Отключение питания

Перед началом обязательно полностью выключите принтер и отсоедините источник питания. Не следует подключать или отключать кабели, упорядочивать их или касаться контактов, пока устройство подключено к сети.

  • После подключения материнской платы к вычислительному устройству с помощью кабеля Type-C, дважды нажмите кнопку reset — в этот момент на материнской плате зажгутся светодиоды.
Предупреждение
  • Если светодиоды не мигают, пожалуйста, перезапишите прошивку Katapult: Запись прошивки Katapult
  • Если светодиоды не мигают, после записи прошивки Katapult переходите к следующему шагу.

Запись прошивки

Область применения

Данная процедура предназначена для записи только что скомпилированного фирвэра Klipper с помощью USB Katapult; необходимо работать с типом фирвэра, выбранным на текущей странице.

1. Поиск USB-ID Katapult

Для неофициальных контроллеров FLY сначала необходимо установить Katapult:

Просмотр инструкций по установке Katapult

Выполните следующую команду:

ls /dev/serial/by-id/*
Результаты поиска

В результатах поиска должен появиться полный путь, содержащий usb-katapult_, например:

/dev/serial/by-id/usb-katapult_<модель_чипа>_<ID_устройства>-if00

У каждого контроллера свой уникальный ID — скопируйте полный путь, отображаемый на вашем устройстве.

2. Запись фирвэра Klipper

Замена ID устройства

Замените <Katapult USB ID> в команде на полный путь, найденный на предыдущем шаге, без сохранения квадратных скобок.

~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Katapult USB ID>

3. Проверка результата записи

Если команда выполнена без ошибок, это означает, что фирвэр был записан. После завершения записи USB-ID Katapult исчезнет; согласно инструкциям на текущей странице продукта, необходимо снова подключить питание и найти соответствующий ID Klipper.

Loading...

Перезапись фирвэра

Если понадобится обновить уже записанный фирвэр Klipper, нет необходимости заново использовать Katapult для записи. Сначала скомпилируйте нужный фирвэр на текущей странице, затем выберите один из способов в зависимости от текущего состояния устройства.

Способ 1: Автоматический вход в Katapult с помощью команды

Если можно найти ID usb-Klipper_, Klipper может автоматически запросить у контроллера вход в режим Katapult для перезаписи:

cd ~/klipper && make flash FLASH_DEVICE=<usb-Klipper ID>

Замените <usb-Klipper ID> на полный путь, найденный с помощью команды ls /dev/serial/by-id/*. По умолчанию команда использует файл ~/klipper/out/klipper.bin.

Способ 2: Ручная запись после двойного нажатия на кнопку RST

Если в настоящее время нет ID usb-Klipper_ или способ 1 не сработал, используйте следующий метод:

Операции с отключением питания

Перед началом полностью выключите принтер и отключите питание. Не подключайте и не отключайте USB-кабель и не касайтесь контактов, пока устройство подключено к питанию.

  1. После отключения питания снова подключите кабель Type-C.

  2. Быстро дважды нажмите на кнопку RST контроллера; мигание индикатора свидетельствует о входе в режим Katapult.

  3. Поищите USB-ID Katapult:

    ls /dev/serial/by-id/*
  4. Используйте найденный ID usb-katapult_ для записи:

    Обычный контроллер Linux:

    ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Katapult USB ID> -f ~/klipper/out/klipper.bin

    Контроллер FLYOS / 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.

Способ получения USB ID

Loading...