Обращаем Ваше внимание, что ручная установка самого Linux, как и его детальная настройка не входит в объемы данной статьи. Детальные руководства по установке Linux на Вашу аппратную составляющую поможет найти Яндекс, Google или Bing.
Данная статья влючает в себя общие этапы для большинства вариантов установки, но при этом не разбирает каждый из вариантов установки детально. В статье используются допущения: например считается что Вы в состоянии установить Linux и настроить его сетевую подсистему. Так же статья расчитана на то, что Вы готовы читать документацию и понимать прочитанное.
Помните, бездумное копирование команд или участков файлов конфигураций - приводит к ошибкам, попытайтесь понять что содержит в себе тот или иной участок копируемого текста.
Для использования программного комплекса Klipper, Вам потребуется:
Одноплатный компьютер семейства Orange Pi:
А так же установка на х86 совместимый компьютер:
Установка на другие устройства принципиально не отличается от устройств рассмотренных ниже, но если Вы устанавливаете Linux в первый раз , то настоятельно рекомендуется использование одноплатных компьютеров семейства Raspberry Pi 3b+/4b. Лучше сразу потратить чуть больше денег на беспроблемный одноплатный компьютер, чем потратить кучу времени на то, чтобы заставить его правильно работать. Но этот выбор делает каждый из Вас самостоятельно.
Среди программного обеспечения потребуется (данные программы рекомендуются, но возможно Вы сможете заменить их аналогами).
Ни в коем случае не надо пользоваться стандартным Блокнотом или WordPad! Так как спец символы разметки (пробел, табуляция, конец строки и тп.) обрабатываются по разному для операционных систем Windows и Linux.
Установка данного образа возможна ТОЛЬКО на одноплатных компьютерах семейства Raspberry Pi.
Скачать с сайта Raspberry Pi OS образ прошивки Raspberry Pi OS Lite, либо запустить Raspberry Pi Imager и выбрать в программе этот образ, который она скачает и зальет на карточку сама.
Данный образ содержит в себе минимально необходимый пакет программного обеспечения для запуска операционной системы Linux, его в последствии необходимо будет вносить дополнительные настройки, а так же устанавливать дополнительные пакеты.
Данный образ является предсконфигурированным образом, в нем УЖЕ установлен Klipper, Moonraker, Mainsail.
Таким образом данный образ позволяет начать пользоваться Klipper'ом максимально быстро. Но как и у всех решений, данное имеет свои нюансы: версия программного обеспечения на нем актуальна на дату формирования образа. Вы вполне можете получить неработоспособную сборку с используемым принтером или отдельными частями конфигурационного файла, так как поддержка Вашего принтера, платы или новых возможностей Klipper вышла позже, чем была собрана выбранная Вами сборка.
Даже в данной сборке, для обновления Klipper
рекомендуется использование инструмента KIAUH.
Mainsail OS: Образ разворачивается на карту при помощи Raspberry Pi Imager, следует выбрать из списка Other specific-purpose OS -> 3D printing -> Mainsail OS;
По окончанию процесса записи образа на MicroSD в проводнике появится новый раздел Boot.
При использовании Raspberry Pi Imager следует выбрать из списка Raspberry Pi (other) > Raspberry Pi OS Lite;
Обязательно в настройках выбрать пользователя и указать ему пароль.
При установке образа Raspbian необходимо выполнить следующие действия:
Если вы устанавливали образ без использования Raspberry Pi Imager с указанием имени и пароля пользователя ОБЯЗАТЕЛЬНО выполните этот пункт.
Необходимо создать файл userconfig.txt
в нем записываем следующее:
pi:$6$LO5u.gPSv76ARHS/$TMZRDknmB9iqFDppxqsunpEhyemRyezbBCQrKJxDu6VhYSnw7VzHZa3/VDsXAOXV2RJfVvjwSh9tuqWfNFsNq/
Это создаст пользователя pi с паролем raspberry, если у Вас свое мнение на имя и пароль пользователя, то пароль можно сгенерировать на другом Linux выполнив команду:
echo 'raspberry' | openssl passwd -6 -stdin
Вывод команды будет следующим:
где $6$LO5u.gPSv76ARHS/$TMZRDknmB9iqFDppxqsunpEhyemRyezbBCQrKJxDu6VhYSnw7VzHZa3/VDsXAOXV2RJfVvjwSh9tuqWfNFsNq/
- искомый пароль пользователя, в данном случае raspberry.
В типовом для большинства случаев, подключение будет производиться по сети WiFi c использованием пароля.
Создаем текстовый файл wpa_supplicant.conf в появившемся разделе Boot и открываем его текстовым редактором Notepad++, и вносим в него следующую информацию:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=<Country Code>
network={
ssid="<SSID>"
psk="<PASSWORD>"
scan_ssid=1
}
Для примера WiFi сеть будет называться: Klippernet, пароль: SecretPassw0rd2021 - тогда файл конфигурации будет выглядеть следующим образом:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RU
network={
ssid="Klippernet"
psk="SecretPassw0rd2021"
scan_ssid=1
}
Кроме того, так же в разделе Boot необходимо создать пустой файл с именем ssh, обращаю внимание что у него не должно быть никакого расширения. Данный файл в этом разделе сообщает системе Raspbian что при загрузке необходимо активировать и запустить SSH Server.
При установке сборки FluiddPi в данном разделе нас интересует файл fluiddpi-wpa-supplicant.txt.
В типовом для большинства случаев, подключение будет производиться по сети WiFi c использованием пароля.
Открываем файл с помощью Notepad++ (Открытие файла программами Word, Wordpad и им подобными приведет к повреждению файла настроек). В файле нас интересуют строки:
## WPA/WPA2 secured
#network={
# ssid="put SSID here"
# psk="put password here"
#}
Для примера WiFi сеть будет называться: Klippernet, пароль: SecretPassw0rd2021 - тогда файл конфигурации будет выглядеть следующим образом
## WPA/WPA2 secured
network={
ssid="Klippernet"
psk="SecretPassw0rd2021"
}
После вышеописанных действий отключаем подключенный MicroSD и вставляем его в одноплатный компьютер и включаем его. На этом установка образа системы завершена.
Установка данного образа возможна на почти все одноплатные компьютеры семейств Raspberry Pi, Orange Pi, Khadas и другие.
Для Orange Pi
Энтузиаст silveralx чата Klipper сделал сборки Orange Pi
Данные образы содержат в себе минимально необходимый пакет программного обеспечения для запуска операционной системы Linux, его в последствии необходимо будет вносить дополнительные настройки, а так же устанавливать дополнительные пакеты.
и KlipOr - образ с предустановленным клипером
Энтузиаст Alexey чата klipper сделал сборки Orange Pi
Данные образы содержат в себе минимально необходимый пакет программного обеспечения для запуска операционной системы Linux, его в последствии необходимо будет вносить дополнительные настройки, а так же устанавливать дополнительные пакеты.
Все самое свежое и с некитайскими репами.
Все сборки собраны с отдельным FAT16(32) разделом boot. После записи можно переткнуть флешку, увидеть определившийся раздел, скопировать/переименовать orangepi_first_run.txt.template в
orangepi_first_run.txt
и настроить сеть. Так же можно сразу настроитьorangepiEnv.txt
если необходимы оверлеи UART или SPI.
Разберем orangepi_first_run.txt.template
, который расположен в разделе FAT16 и включим WiFi, для этого найдем следующие строки:
#Networking:
# Change default network settings
# Set to 1 to apply any network related settings below
FR_net_change_defaults=0
и
FR_net_wifi_ssid='MySSID'
FR_net_wifi_key='MyWiFiKEY'
Как было указано выше, WiFi сеть называться: Klippernet
, пароль: SecretPassw0rd2021
, поэтому приведем указанные выше строки к следующему виду:
FR_net_change_defaults=1
FR_net_wifi_ssid='Klippernet'
FR_net_wifi_key='SecretPassw0rd2021'
после чего переименовываем этот файл в orangepi_first_run.txt
и оставляем в корне папки.
Рекомендуем брать сборки основанные на Debian Bullseye.
Ставим MicroSD в кардридер и подключаем его к компьютеру.
Запускаем программу для прошивки образов, в данном случае используется Rufus:
В графе Устройство выбираем MicroSD. Потом нажимаем на кнопку ВЫБРАТЬ и выбираем скаченный ранее образ.
Нажимаем кнопку СТАРТ и ждем пока завершится процесс.
Если одноплатник оснащен встроеной памятью то переносим систему на неё командой:
nand-sata-install
Для примера WiFi сеть будет называться: Klippernet, пароль: SecretPassw0rd2021
Проверяем включён ли wi-fi:
nmcli radio wifi
Если выключен, то включаем:
nmcli radio wifi on
Проверяем доступные сети:
nmcli dev wifi list
Подключаемся к сети:
sudo nmcli dev wifi connect 'Klippernet' password 'SecretPassw0rd2021'
Проверить состояние устройства:
nmcli dev status
Проверяем активные соединения:
nmcli con show --active
Для установки на прочие, а именно х86 совместимые устройства, рекомендуется выбрать Linux дистрибутив либо Debian, либо Ubuntu LTS.
В данном разделе будет рассмотрена установка дистрибутива Debian, в варианте Net install, как наиболее универсальный, если у Вас возникнут проблемы с установкой, Вы можете попробовать установить дистрибутив Ubuntu или вообще отказаться от дурной затеи воспользоваться Klipper.
Образ Debian Net install доступен на сайте debian.org для х64, для х86, скачиваем. Для продолжения установки Вам потребуется USB флешка, объемом не менее 4Гб.
На сайте Debian расположена достаточно подробная инструкция.
Кроме того в разделе 6.4. Загрузка отсутствующих микропрограмм описан процесс загрузки драйверов для сетевых карт.
В процессе установки нужно обратить внимание на:
При выборе пакетов, следует выбрать:
По окончанию установки, компьютер перезагрузится. В рамках данной статьи не будет разбираться установка и настройка сетевых интерфейсов, считаем что они работают сразу правильно, даже если они не работают.
На этом этап установки базовой системы Linux завершен.
Поддердиваются только свежие версии Windows с WSL второй версии! WSL первой версии не поддерживается!
Использоваться будет стандартная установка Ubuntu в WSL2
wsl.exe --install
Если ранее WSL никогда не использовался, то для продолжения нужно перезагрузить компьютер.
Для запуска WSL выберите
Ubuntu
в списке приложений, или выполните командуubuntu
в терминале Windows.
Для подключения USB внутри WSL2 используется утилита USBIPD: https://learn.microsoft.com/en-us/windows/wsl/connect-usb
Все команды
usbipd
выполняются в Термминале Windows с правами Администратора
Скачать и установить msi файл по ссылке: https://github.com/dorssel/usbipd-win/releases
usbipd list
usbipd bind --busid=1-1
Нужно заменить 1-1
на нужный номер устройства из вывода предыдущей команды
usbipd attach -a --wsl --busid=1-1
Окно терминала Windows закрывать нельзя, чтобы при переподключении устройство автоматически прокидывалось в WSL
Для дальнейшей установки переходите к пункту Автоматизированная установка через KIAUH
Команды по установке и настройке Klipper выполняются в терминале Ubuntu
Обьявление для уверенных пользователей Linux:
Все команды выполняются только от обычного пользователя, если явно не указано иное.
Заходить от рута нельзя!
Проверяем наличие прав доступа, для этого выполняем следующую команду в консоли:
id
Вывод будет выглядить так:
uid=1000(pi) gid=1000(pi) groups=1000(pi),5(tty),20(dialout),27(sudo),44(video)
Если в списке который выйдет после выполнения команды отсутствует: tty
или dialout
то добавляем пользователя в данные группы:
sudo usermod -aG tty,dialout $USER
А затем устанавливаем необходимые пакеты:
sudo apt update
sudo apt install git -y
Если же в списке который выйдет после выполнения команды отсутствуют, не только tty
или dialout
но и sudo
, при этом пакет sudo установлен в системе, следующей командой устанавливаем необходимые пакеты:
su - root -l -c "apt update && apt install sudo git -y"
Затем добавим пользователя в группы sudo
,tty
и dialout
:
su - root -l -c "usermod -aG sudo,tty,dialout $USER"
Затем дадим пользователю права группы sudo
:
newgrp sudo
sudo (Substitute User and do, дословно «подменить пользователя и выполнить») — программа для системного администрирования UNIX-систем, позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, при этом достаточных для решения поставленных задач. Программа поставляется для большинства UNIX и UNIX-подобных операционных систем.
В большинстве случаев грамотная настройка sudo делает небезопасную работу от имени суперпользователя ненужной. Все действия оказываются выполнимы из-под аккаунта пользователя, которому разрешено использовать sudo без ограничений. Имеется возможность запрещать и разрешать определённым пользователям или группам выполнение конкретного набора программ, а также разрешить выполнение определённых программ без необходимости ввода своего пароля.
По умолчанию, команда sudo запрашивает пароль на каждый свой вызов, в случае если вы четко осознаете что вам такое поведение команды sudo избыточно, можно перевести ее в режим без запроса пароля, для этого выполняем следующую команду:
sudo EDITOR=nano visudo
в появившемся редакторе находим блок:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
и приводим его к виду:
# Allow members of group sudo to execute any command
%sudo ALL=NOPASSWD: ALL
Обращаю Ваше внимание, что это изменение может нести потенциальные угрозы безопасности.
KIAUH - Klipper Installation And Update Helper - это утилита для автоматизации установки Klipper и других приложений. Ссылка на проект на GitHub
Подключаемся к компьютеру по SSH через Putty. Для этого в поле Hostname указываем IP, в моем случае это 192.168.33.82, но данный ip адрес может отличаться для каждой из систем.
В процессе подключения у Вас запросят логин: pi и пароль: raspberry.
Данные логин и пароль используются по умолчанию в сборке Raspbian и основанных на ней, для других сборок и/или систем логин и пароль будет отличаться.
После успешного входа в систему, выполняем следующий набор команд для установки и запуска KIAUH:
cd ~
git clone https://github.com/th33xitus/kiauh.git
./kiauh/kiauh.sh
Для запуска KIAUH снова нужно выполнить только одну команду:
~/kiauh/kiauh.sh
После установки и запуска вы увидите следующий экран:
Навигация по меню осуществляется цифрами (1, 2, 3 и тп), после ввода цифры необходимо подтвердить выбор клавишей Enter
Для установки работоспособной системы Вам потребуется по очереди установить Klipper, Moonraker и веб интерфейс Fluidd или Mainsail.
Если необходимо подключить несколько принтеров к одному комьютеру, то при установке
klipper
на вопросinstances
- отвечаем количеством подключаемых принтеров.
При использовании одного компьютера для нескольких экземпляров
klipper
, помните что ПЕРВЫЙ экземпляр использует базовый порт7125
, ВТОРОЙ -7126
и так далее.
Если для установки и/или обновления использовался набор утилит
kiauh
- пропустите этот блок.
Бездумное копирование команд - ведет к попадалову!
Уже установленные пакеты можно обновлять в ручном режиме, а именно через команду git pull
Для примера обновим пакет klipper:
cd ~/klipper
git pull
но не стоит забывать, что после обновления пакета необходимо так же выполнить скрипт установки этого пакета каждый раз после его обновления:
ВНИМАНИЕ: При использовании
kiauh
вызов скрипта ручной установки СЛОМАЕТ klipper! Использовать только для ручной установки БЕЗ использованияkiauh
.
./scripts/install-debian.sh
В данном случае выбран скрипт для установки на системы Debian.
Более подробно вопросы прошивки расматривается в статье Прошивка MCU, тут же указаны минимальные данные в рамках конкретного принтера.
Подключаемся к системе через SSH. Открываем папку config_examples в веб интерфейсе, либо папку klipper/config в файловой системе хоста, и ищем файл конфигурации подготовленный для вашего принтера, либо скачиваем на странице Klipper
В моем случае это Creality Ender 3v2 - printer-creality-ender3-v2-2020.cfg. Открываем данный файл и копируем его содержимое в конец printer.cfg
Открываем данный файл, нас интересует следующий блок:
# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.
В нем говорится что используется процессор STM32F103, загрузчик - 28KiB, комунникация через Serial USART1 PA10/PA9
Переходим обратно в pytty и выполняем следующие команды (команды можно копировать, в putty они вставляются Правой кнопкой мыши):
cd ~/klipper
make clean
make menuconfig
Micro-Controller architecture - выбираем STM32
Processor model - выбираем STM32F103
Bootloader offset - 28KiB bootloader
Comunication Interface - Serial (on USART1 PA10/PA9)
Нажимаем Q, сохраняя внесенные изменения и компилируем прошивку:
make
Если все прошло успешно, putty в консоли сообщит:
Version: v0.9.1-142-g02ece242-20210113_003503-fluiddpi
Preprocessing out/src/generic/armcm_link.ld
Linking out/klipper.elf
Creating hex file out/klipper.bin
Это означает что прошивка скомпилировалась и находится в папке ~/klipper/out/klipper.bin (полный путь к файлу: /home/pi/klipper/out/klipper.bin) Запускаем WinSCP, подключаемся к компьютеру, скачиваем данный файл. Копируем файл klipper.bin
на sd-карту, переименовываем в firmware.bin
, вставляем sd-карту в принтер и включаем его. Прошивка занимает около минуты.
В KIAUH можно очень просто собрать и залить новую и обновления прошивки на STM32 платы с DFU (в том числе платы для печатной головы и платы USB аккселерометра), обновления прошивки на поддерживаемые платы с прошивкой с карты памяти (первоначальную прошивку нужно копировать на флешку вручную), прошивку на платы с чипом RP2040
Для этого в разделе Advanced нужно выбрать Build + Flash и следовать дальше по смыслу.
По завершению прошивки подключаем принтер USB проводом к компьютеру и переходим в putty и выполняем команду:
find /dev/serial/by-id
Если в результате будет вывод типа
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
pi@fluiddpi:~/klipper $
То это означает, что принтер определился как /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0, запоминаем это и открываем файл printer.cfg.
Ищем все секции [mcu]
в файле, пример конфига для принтера может содержать стандартную секцию, которую лучше удалить
Редактируем секцию [mcu]
в начале файла:
[mcu]
serial: /dev/serial/by-id/<your-mcu-id>
restart_method: command
и приводим ее к виду:
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
Если ты действительно внимательно читаешь эту статью, то не копируй блок описанный ниже, а переходи к следующему:
[homing_override]
gcode:
G28
M84
Если вы выполняли установку Fluidd или Mailsail, то проверьте что из printer.cfg не пропали строки с [include] cfg файлов mainsail или fluidd, при необходимости верните. Если веб интерфейс не устанавливался, то из KIAUH установите из Client-Config Mainsail-Config или Fluidd-Config:
После вышеописанных действий Вы должны получить работоспособную систему с Klipper, готовую к начальной печати. Но перед ее началом, рекомендуется выполнить проверку осей и калибровку принтера.
Один из важнейших этапов установки klipper
это блокировка его автообновлений через moonraker
. Поверьте, если ВАМ будет надо, вы сможете обновить клиппер через kiauh
или же через git
, в том или ином случае решение об обновлении будет сопряжено с мыслительной дейятельностью, а не бездумным нажатием лапками на колокольчик.
Поэтому открываем moonraker.conf
Находим в конфиге секцию [update_manager]
, а так же подписок на обновления сторонних модулей (например):
И по заветам Омар Хайама - удаляем.
Более детальное описание подлючения MCU к Klipper
рассмотрено в статье Подключение MCU
После того как все шаги выполнены, необходимо проверить правильность настроек и конфигурации Klipper
для вашего принтера, детальное описание процесса рассмотрено в статье Проверка конфигурации