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

Компиляция прошивки для 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. Поиск Katapult USB ID

Для неофициальных хостов 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. Проверка результата прошивки

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

Loading...

Повторная прошивка

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

Способ 1: Автоматический вход в 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.

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

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

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

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

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

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

  3. Найдите Katapult USB ID:

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

    Обычный хост 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...