Установка Klipper на H96 Max Rockchip RK3318
Сегодня у нас немного техническая статья, посвященная установке прошивки Клиппер на ТВ-бокс H96 Max с процессором Rockchip RK3318.
Информация для тех, кто забрёл случайно: Клиппер, это одна из открытых прошивок для управления 3D-принтерами, реализующая архитектуру «клиент-сервер», в которой клиентская (ведомая) часть устанавливается на плату управления принтером, а серверная (ведущая) на какой-нибудь хост с Линуксом.
Обычно таким хостом выступает одноплатный компьютер, например что-нибудь из семейства Raspberry Pi, Orange Pi и д.р. Проблема в том, что одноплатники эти нифига не дешевеют со временем, что вынуждает искать альтернативы.
Одной из таких альтернатив является использования перепрошитого ТВ-бокса. Что мы сейчас и продемонстрируем.
Открываем алиэкспресс и ищем «h96 max rk3318», выбираем понравившийся вариант, заказываем.Например, вот этот - https://aliexpress.ru/item/4001309064162.html или этот https://aliexpress.ru/item/33017414051.htmlНа момент написания статьи там просят ~2300 за версию с 2 Гб оперативной памяти и 16 Гб eMMC. Для Клиппера этого более чем достаточно.
Мне же ждать было несколько лениво, так что я пошел другим путём – купил б\у-шку на авито. В объявлении не было указано сколько там памяти, так что брал вслепую.
Внезапно, полный комплект. Хотя на фото была только приставка.
И что совсем неожиданно – версия 4\32.
Готовим флэшку.
1) Скачиваем Rufus с https://rufus.ie
2) Скачиваем multitool.img.xz и Armbian_23.08.0-trunk_Rk3318-box_bookworm_edge_6.3.13_minimal.img.xz с https://users.armbian.com/jock/rk3318/
Пишем multitool образ на microSD
Теперь у вас должно появится два раздела – BOOTSTRAP и MULTITOOL.
Если появился только первый, то второму нужно назначить букву диска:
Заходим в меню управления разделами, ПКМ на MULTITOOL, «Изменить букву диска или путь к диску», добавляем букву. Сохраняем, закрываем меню.
Теперь копируем образ системы Armbian_23.08.0-trunk_Rk3318-box_bookworm_edge_6.3.13_minimal.img.xz в G:\images\
Извлекаем флэшку, вставляем в выключенную приставку, подаём питание. Если всё сделано правильно, приставка автоматически загрузится с microSD и покажет текст лицензии GNU GPL.
Отключать один из своих мониторов было влом, так что первичную настройку я проводил подключив приставку к телевизору. Пусть хоть разок поработает по своему прямому назначению =)
Выходим из лицензии и попадаем в меню Мультитула.
Если вам вдруг нужен образ установленного на приставке андроида, то его можно сохранить через опцию «Backup flash». Мне он точно не понадобится, так что сразу выбираю «Burn image to flash».
Куда? На eMMC
Что? Приготовленным нами Armbian
Готово
С мультитулом закончили - выключаем систему, вынимаем карточку.
Передёргиваем питание приставки (никаких органов управления на ней нет) и попадаём в опросник первого запуска.
Сперва нас попросят придумать пароль учетной записи root (суперпользователя).
Затем создать учетную запись обычного пользователя. Под ней и будет, в дальнейшем, работать Клиппер.
Теперь предлагает присоединиться к WiFi. Ну давай попробуем …
Выбираем сеть, вводим пароль, иии-и-и-и … фиг там.
Ну, не очень-то и хотелось.
Потом посмотрим, чего ему надо.Дальше по опроснику локаль и часовой пояс.
Локаль ставлю en_US.UTF-8 как наиболее беспроблемную, часовой пояс свой (+4).
На время не смотрите, дадим сеть – сам подтянет нормальное.
И, собственно, всё.
Втыкаю сетевой шнурок, набираю ip a и иду к компу, чтобы подключиться по SSH и продолжить настройку.
Ну привет armbian, давно не виделись.
Прежде чем переходить к установке Клиппера, обновляю систему и ставлю некоторые привычные для себя пакеты:
apt-get update
apt-get upgrade
apt-get install vim htop mc net-tools armbian-config git
Всю эту историю с перешивкой ТВ-боксов я не сам, понятное дело, придумал, так что еще раз перечитываю источники и нахожу решение проблемы с WiFi:
Чищу файлик с настройками драйвера беспроводной сетевой карточки …
echo "" > /usr/lib/firmware/brcm/brcmfmac4334-sdio.rockchip,rk3318-box.txt
… и записываю в него новое, правильное содержимое из https://pastebin.com/raw/00gLSkKS
За одно переключаю светодиоды индикации в привычный режим отображения активности системы:
echo activity > /sys/devices/platform/gpio-leds/leds/working/trigger
И перезагружаю приставку.
Теперь можно запустить armbian-config и снова попробовать подключиться к WiFi – сработало.
Смотрим ip a – ага, точно сработало.
Вот теперь можно приступать к установке Клиппера.
Как и всегда, рекомендую делать это через замечательный интерфейс KIAUH https://github.com/dw-0/kiauh
Написано про это много, проблем там не возникает, так что в рамках этой статьи касаться этого момента не буду. Кто уже делал – сам знает, кто не делал – читайте Klipper Wiki https://klipper.wiki/
В общем, поставили Клиппер.
Как вы видите, в списке установленных компонентов присутствует KlipperScreen.
Нужен принтеру дисплей или не нужен – вопрос дискуссионный, мне просто нравится его наличие.
Так что достаю из запасов семидюймовый тачевый мониторчик (точно такой же, как у меня на дельте стоит) и цепляю его к приставке.
Эммм…. Что-то не то. Может у штатного питальника приставки мощности не хватает?
Цепляю дополнительный БП во второй порт экрана.
О, есть картинка.
Ну и чтобы совсем быть уверенным – на скорую руку зашиваю BTT SKR 2 и подключаю её по USB.
Всё ОК, есть контакт.
Но въедливые читатели скажут: «Да ну этот USB… по UART подключай!»
Можно и по UART, на плате он действительно имеется.
Аккуратно выщёлкиваю дно корпуса пластиковой карточкой и осматриваю плату.
Общий вид спереди и сзади:
Вот эти три контакта вблизи линейного стабилизатора и есть UART.
Распиновка подсмотрена в источниках, но тут как в притче – «На Аллаха надейся, а верблюда привязывай». Так что беру тестер и прохожусь по контактам в режиме прозвонки.
Центральный звонится с корпусом USB-порта. Земля, однако.
Зачищаю МГТФ 0.12 кв мм и паяюсь к контактам.
Центральный, что ожидаемо, греется неохотно – под ним большой земляной полигон, так что его припаиваю в форсажном режиме паяльника.
Теперь нужно включить плату и выключить сервис, которые пишет в UART дебаг логи, иначе мы не сможем использовать его для связи с платой принтера.
Снова подключаемся по SSH и вводим
systemctl stop serial-getty@ttyS2.service
systemctl mask serial-getty@ttyS2.service
Теперь можно скомпилить и зашить новую прошивку в плату управления принтером и проверять работу.
С этим никаких проблем не возникло.
Возникло там, где не ждали – тачевый экран перестал включаться. В смысле совсем.Методом многократного перетыкания и подбора проводов удалось его пару раз зажечь, но картинки не было. Ну ёпрст…
Время было уже позднее, так что я просто снова подключил приставку к телевизору и полюбовался на три здоровенные кнопки KlipperScreen’а на стене.
Короче, связь работает и по UART.
Наступил следующий день.
Подключаю «тяжелую артиллерию» и звоню другу:
- Спасай выручай, экранчик помирает. Линейники напругу выдают, винда HID определяет, а толку нету
- Ну приезжай, посмотрим
Зацепили экран к питанию и стали тыкать в него всякими диагностическими инструментами – пальцами, да тепловизорами с осциллографами.
В конце концов на микроскопе был обнаружен непропай на ногах контроллера дисплея.
Помазали ему ноги флюсом, погрели «лампой» и усадили на место.
Экран завёлся.
И чтобы вы думали, хэппи энд? А вот хрен.
Для пропайки контроллера экранный модуль нужно было отделить от платы, за которую он держался двумя полосками какой-то самоклеющейся вспененной фигни.В общем, в процессе удаления остатков этой фигни в экранный модуль затекло немного ФлюксОфф-а, а у него в составе хлористый метилен… Так что в экране теперь пятно, т.к. ДХМ слегка оплавил светорассеиватель торцевой подсветки.
Ну и шут с ним, с пятном. На тёмном интерфейсе КлипперСкрина и не видно почти (это я так себя успокаиваю, ага).
Хуже другое – этот экран не очень стабильно запускается от ТВ-бокса. Методом научного тыка было обнаружено, что, если в приставку вставить телевизор, дать запуститься КлипперСкрину, а потом подключить к экранчику – всё хорошо.
А вот если экран будет подключен сразу – тишина. Показывает «нет сигнала» и потухает.
При этом с Orange Pi 3 LTS он прекрасно работает, а приставка нормально выдаёт картинку на телевизор или мониторы.
Складывается ощущение, что проблема где-то около драйвера видео или автоопределения доступных режимов изображения.
На попытки исправления этой проблемы я угрохал целый день и не пришел ни к чему.
Были испробованы сотни вариаций всевозможных настроек параметров загрузки, конфигов Xorg’а и жесткого задания режимов изображения. Ничего. Ну не хочет он с этой приставкой работать в положенном ему разрешении 1024х600 и всё тут.
Стабильно работает только в каких-нибудь стандартных, вроде 800х600 или 1024х768.
Делается это так:
В /boot/armbianEnv.txt добавляем
extraargs=drm_kms_helper.edid_firmware=HDMI-A-1:edid/800x600.bin video=HDMI-A-1:800x600-24@60
Создаём /usr/share/X11/xorg.conf.d/90-monitor.conf и вносим в него
Section "Monitor"
Identifier "HDMI-1"
Option "PreferredMode" "800x600"
EndSection
Для 1024х768 аналогично.
При таких настройках видно и процесс загрузки, и интерфейс KlipperScreen.
Картинку, понятно дело, слегка плющит, но жить можно.
Такие дела. Если у кого возникнут идеи – делитесь, будем пробовать. Приставка эта и покупалась скорее для тестов, чем для реального использования.
***
Эта статья - перепечатка оригинала из https://ravencosplay.ru/articles/info/2680-ustanovka-klipper-na-h96-max-rockchip-rk3318
Дополнения, когда они появятся, будут публиковаться в исходной статье.
***
Источники:
https://forum.armbian.com/topic/3749-how-to-change-resolution-hdmi-display-armbian527/
https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/Rotation/
Еще больше интересных статей
Как определить высоту слоя прерванной печати
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настройка Marlin для датчика Biqu microprobe для платы BigTreeTech_SKR_mini_E3_V2.0
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Извините, а что есть какие-то....
Вот вы всё чьим-то и роликами....
Прошивка у меня тоже стоковая,...
Сегодня получил заказанный на...
Добрый день, подскажите, пожал...
Что делать если я первый раз к...
Добрый день. Приобрёл сопло 1м...