Данная инструкция посвящена установке klipper на armbian на orange pi 3 lts.
Выполнять, описанное в статье, можно и без самого принтера (что я и делал, в ожидании принтера)
Итак, что нам потребуется, железо:
* orange pi 3 lts,
* блок питания с кабелем type c,
* micro SD флешка минимум на 4 гб с USB адаптером,
* USB клавиатура,
* монитор или телевизор с HDMI.
Софт:
* [[https://www.balena.io/etcher|balenaetcher]] для записи образа,
* Putty или любой другой ssh клиент (например [[https://www.netsarang.com/en/xshell/|XShell]])
====== Этап 1. Подготовка флешки с образом системы. ======
Итак, собрав все необходимое приступаем к установке. В первую очередь нужно скачать образ будущей системы, переходим на сайт [[https://www.armbian.com/orangepi3-lts/]] и скачиваем образ.
Важно! По состоянию на 15.09.2022г последняя версия armbian 22.08 Jammy имеет проблемы с wi-fi подключением, поэтому рекомендуется скачивать предыдущую версию, внизу страницы другие закачки и там Bullseye. Инструкция актуальна для этой версии. ( файл называется Armbian_22.08.1_Orangepi3-lts_bullseye_current_5.15.63.img)
{{::dronce28pedhefthxrzdwnho3cpf2is1myj1pcuuqgwam6q2nq.png?400|}}
Скачиваем файл, распаковываем, вставляем флешку через адаптер в USB.
Запускаем balenaetcher, выбираем распакованный образ, выбираем нашу флешку и нажимаем Flash!
{{:fgnsayt0orwysqg4mccxd8yvnbq9ncxe3y4iubcepmtrgnydtx.png?400|}}
Дожидаемся окончания процесса, безопасно извлекаем накопитель.
====== Этап 2. Запуск образа, первичная настройка. ======
Берем одноплатник: вставляем флешку, подключаем клавиатуру, монитор, подаем питание - ждем!
После загрузки, следуем по шагам инсталлятора, а именно:
Задаем пароль администратора и повторяем его,
нажатием на цифру 1 выбираем bash,
создаем пользователя klipper,
задаем пароль для него и повторяем
{{:6r8upsg8lt4ry7txjn1jctwebwmlnsaonqhiw5zbkjawoilgup.png?400|}}
Далее, если orange pi подключена lan кабелем к роутеру, то следующего пункта не будет, если не подключена, то система задаст вопрос о подключении к wi-fi, нажимаем Y на клавиатуре и попадаем в меню настройки wi-fi.
Там все достаточно очевидно: выбираем сеть, вводим пароль сети, видим connected и выходим из интерфейса выбрав Quit.
{{:emgucbog06gdi6evmmlkvljwpphq9jejr2zrah4anmybvho5nj.png?400|}}
Далее система сама определит страну по ip и предложит установить региональные локали, не вижу в этом смысла, поэтому вводим с клавиатуры 153, пропуская данный пункт.
{{:tp6jgzoe7hatt4medtmpi4axfzrhhj6rxituedboptbhaw8w4o.png?400|}}
Попадаем в систему под пользователем root, в целом первичная настройка закончена, но пока есть возможность, лучше сразу посмотреть ип адрес для дальнейшего подключения по ssh.
Вводим команду:
ifconfig
В выдаче находим интерфейс wlan0, (eth0 если подключены кабелем) и смотрим в параметр inet, это будет адрес для подключения, на скрине это 10.12.20.123
{{:jxexogtpvss7nubpqtzy53l9cd6jq0ssaip7r6vsmapm6cerct.png?400|}}
Теперь можно отключать клавиатуру и монитор, так как последующие действия будут выполнены удаленно.
**Альтернатива:**
если вдруг у Вас нет юсб клавиатуры или монитора\телевизора с hdmi, то, после записи образа диска на флешке находим файл /boot/armbian_first_run.txt.template и переименовываем его в /boot/armbian_first_run.txt
В самом файле находим и исправляем
FR_net_wifi_ssid='MySSID'
FR_net_wifi_key='MyWiFiKEY'
После чего сохраняем файл, вставляем флешку, запускаем orange и тут нужно будет зайти на Ваш роутер и посмотреть какой ip адрес получила orange pi, после чего подключиться по ssh под пользователем root и без пароля, либо с паролем 1234 (не проверял, описано по документации)
Также могут быть проблемы с отображением накопителя в операционных системах семейства windows, в этом случае дополнительно нужно выполнить действия по статье [[https://losst.ru/podklyuchenie-ext4-v-windows]]
====== Этап 3. Подключение по ssh и дальнейшая настройка. ======
Скачиваем putty, добавляем туда подключение ssh по ip адресу из этапа 2, используя заданный ранее пароль.
{{:uqwgdep1hyagaihvwhitlxzpi31quxl4vdtlqevklwulqmpod6.png?400|}}
Далее рекомендуется отключить запрос sudo пароля, делать необязательно, но в некоторых местах меньше придется вводить пароль суперпользователя.
редактируем файл командой:
sudo nano /etc/sudoers
откроется файл, в котором нужно найти строки
# 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
После чего сохраняем изменения нажатием Ctrl+O и выходим Ctrl+X
{{:kfwb7kuigdhqrek6fj5ek7khwdwa9rfm99e9skxh7nrnj7qvup.png?400|}}
Обновляем пакеты командами:
sudo apt-get update
sudo apt-get upgrade
А также устанавливаем недостающие пакеты (по идее скрипт должен подтянуть их автоматически, но пусть будет)
sudo apt-get install zlib1g-dev libjpeg-dev
После чего выполняем дальнейшую установку с помощью скрипта KIAUH (огромная благодарность th33xitus - его разработчику :
скачиваем сам скрипт с гитхаба:
git clone https://github.com/th33xitus/kiauh.git
переходим в скачанную папку
cd kiauh
делаем все скрипты исполняемыми
chmod +x kiauh.sh scripts/*
и запускаем сам скрипт
./kiauh.sh
{{:webnrq6epru2dpzh6vofa9epmqugfkgkaqzatlnyjpa30sgbwu.png?400|}}
====== Этап 4. Работа со скриптом автоматической установки KIAUH. ======
В целом в работе скрипта нет ничего сложного, но как всегда есть нюансы.
Для начала выбираем, что именно мы будем делать - вводим цифру 1 и нажимаем Enter.
{{:t4c7mvvsm52dwllsbjyrwfg1vnbl0juqs4bi11uwlk3oumnfdf.png?400|}}
В следующем окне поочередно выбираем и устанавливаем
1) [Klipper] (при запроси версии питона выбираем 2) [Python 3.x] (experimental))
количество инстансов - 1
{{:mjks0gnqyyhy0s80l5omkaid0ia4tssqemhvdrbyihjmbhakoz.png?400|}}
2) [Moonraker]
{{:bbqicasuub3aqnr5abt6ks7szr9hh5k7iy2n6dlqeljgc3eyaw.png?400|}}
после установки Moonraker уже можно проверить, все ли идет хорошо, так как в консоли высветится Ваш ип адрес и порт, можно перейти по нему в браузере и посмотреть все ли хорошо. Картина, как на скринах ниже.
{{:za0cpkkvwzrtsankaa5qopwhz7bn60yhht3jwbfclkvjutpt2q.png?400|}}
{{:alfokmobaw4emfwwqwaf402kwjgt4uvieuqiwipp5ma2afy7e1.png?400|}}
3) [Mainsail]
При установке спросит про поддержку вебкамеры - у меня она будет, поэтому выбираю да.
{{:fclfu7w94yka2jodlmzbyjstru4twfmq5t4zi4gbf2t23hwclx.png?400|}}
На вопрос о рекомендуемых макросах - тоже да (больше не меньше)
После установки появятся ссылки на стрим с камеры, но так как камеры у нас пока нет, то игнорируем их, а вот что стоит попробовать - так это перейти по адресу orange pi и проверить загружается ли интерфейс.
{{:tc34ksxdexxzjkm10zndg4ns3hpzamvil5ysurhomycz5wayzl.png?400|}}
Все хорошо, двигаемся дальше.
4) [Fluidd]
На тему выбора веб интерфейса сломано много копий, я считаю, что нужно брать по максимуму, что-то удобнее в одном, что-то в другом. Поэтому предлагаю установить оба интерфейса.
Выбираем цифру 4, на что система скажет, что у нас уже есть веб интерфейс и предложит выбрать другой порт, выберем 81
{{:xmjwzk1bpbtyb9bu4yntrf2svd549ce9gzhjn5p4qhcllq1k9o.png?400|}}
После установки также проверяем открытие, добавив в адрес порт 81 через двоеточие.
{{:cbncffhqpw4ftihilwpwxf2cdrrdowhlsbdpi3koun8arwsfao.png?400|}}
Нажимаем B, чтобы вернуться на предыдущий экран и видим следующее.
{{:pifknxxev1oybhinep0tm4bxuylzmimjuxl3ryys3pdmwopias.png?400|}}
====== Этап 5. Настройка веб камеры. (опционально) ======
Я использую, наверное, самую популярную и доступную камеру - Logitech C270. Её настройка максимально проста:
с отключенной камерой проверяем доступные видеоисточники
ls /dev/video*
у меня он один:
{{:gbkzxpkeomeumiacpjl2u997wsphbjpkqt1i4pfnsguv9wbjuj.png?400|}}
затем подключаем камеру к usb порту orangepi после чего проверяем снова.
{{:ecbmqp3qxlgv2gvww89khtuv2ffniy2ohxovbzmjucaecduew1.png?400|}}
При подключении камеры добавилось еще 2 источника, с другими камерами проблема может быть в отсутствии драйвера, поэтому нужно уточнять в каждом отдельном случае. Открываем на редактирование конфигурацию камеры:
nano ~/klipper_config/webcam.txt
правим строки:
camera="usb"
camera_usb_options="-d /dev/video1 -r 1280x720"
Должно получиться, как на скрине ниже
{{:l1xrzkgpi1qaupxg9omaepav65ibrv4erro5eqr4dsp9pzgfmz.png?400|}}
Ключ -r 1280x720 добавлен потому, что я знаю, что камера может снимать в таком разрешении, если что-то не работает, лучше попробовать без него. Также у камеры добавляется 2 порта: video1 и video2, работает только на одном, но тут тоже иногда приходится экспериментировать.
После чего сохраняем Ctrl+O, выходим Ctrl+X
Рестартим вебкам сервис
sudo systemctl restart webcamd
Далее можно в браузере перейти по ссылке [[http://х.х.х.х:8080]] где х.х.х.х ip адрес orange pi и убедиться, что есть картинка.
{{:lmlz5492zsfhhpaubv9psgpxs5c0wcz1jfbsw99j9yuirx9c0m.png?400|}}
теперь добавляем камеры в веб интерфейсы:
Mainsell
{{:eyshkcqmkwgyrofuazgckesajuwzxhqabzam9ddp9okv1iunek.png?400|}}
Fluidd
{{:2xhaszojc7y3gfkfrp0c0itwpy1af1pf63nxynxayewpvszjcv.png?400|}}
//Дальнейшие настройки проблематично сделать без принтера, поэтому здесь пока ничего нет, но думаю в будущем появится информация о том как собрать прошивку под flying bear ghost 6, подключить его к orande pi и т.д.//
====== Этап 6. Перенос системы на встроенную память. ======
У orange pi 3 lts есть встроенная память, которой было бы неплохо воспользоваться. Но тут есть некая вариативность. Дело в том, что нижеследующая команда переносит систему с флешки на встроенную память. То есть по сути на флешке остается резервная копия системы, которую потом можно снова перенести с флешки.
Вариативность заключается в том, что этот этап можно сделать сразу после пункта 2, сохранив на флешке "голую систему", либо после всех настроек.
Выполняем команду
sudo nand-sata-install
{{:hjewk4dolw46rixgytgjyactkzvaorwxeltijfwbruqsqpoj4o.png?400|}}
Тут два варианта, выбираем первый, чтобы перенести на eMMC и бутлодер и систему. Скрипт предупредит о том, что со встроенной флешки будет все удалено, соглашаемся, выбираем файловую систему ext4 и начинаем процесс.
{{:xzgazseki7pjntsaetqmshiaqksqiz13ccoc8dd1vd5x7srdzj.png?400|}}
Процесс занимает какое-то время, после чего соглашаемся с предложением выключить систему.
{{:t4jgsfozstp9sgl7w06sptwmnuijcdtgs5evoygtvjge9pglnv.png?400|}}
Достаем флешку, при отсутствии флешки система грузится из встроенной памяти, ждем загрузку и проверяем, что все работает.