Апельсиновый осьминог: пошаговое руководство
Когда малинку постиг огромный успех, начали появляться 'убийцы' Raspberry Pi. Например, китайские поделия - их объединяет потенциально мощное железо, низкая цена, никакая поддержка, уйма кастомных прошивок-'паршивок' и необходимость наличия в хозяйстве бубна приличного диаметра для инициализации адекватной работы. Вот о граблях, которыми оснащена популярная 'альтернатива' малинки, Orange Pi, я расскажу. В разрезе установки работающего минимального Debian и разворачивании на его базе Octoprint или Repetier-Server.
1. Выбор и покупка 'апельсинки'.
Я покупал самую простую и дешевую версию под названием Orange Pi PC в официальном магазине производителя на Али. 15 долларов, плюс 3.5 - доставка. Рекомендую приобретать сразу с блоком питания - по microUSB плата не питается, а разъем не самый распространенный, у меня в хозяйстве подходящего не нашлось, и я привандалил провода прямо к плате. Orange Pi PC не балует большим количеством интерфейсов, но все реально нужное для наших целей есть - USB и Ethernet.
2. Прошивка.
Это самая веселая процедура. Дело в том, что работа платы всецело зависит от того, как сконфигурирована загрузочная часть прошивки. Именно там указывается, например, какие порты будут доступны ОС, а какие отключены 'за ненадобностью'. Загрузчик можно собирать самостоятельно или воспользоваться результатом творчества добрых людей. Отличные прошивки собирает энтузиаст под ником loboris, на его решении я и остановился. В конце статьи будет ссылка на сложенные мною в одну кучу нужные файлики, а сейчас - общая последовательность действий.
2.1. Выбор нужных файлов. Графический интерфейс и всякие лишние примочки не нужны, поэтому Debian_mini_jessie.img.xz. Помимо основного образа, нам понадобятся самые свежие версии загрузчика и модулей, scriptbin_kernel.tar.gz.
2.2. Запись образа. Образ имеет довольно скромный объем, чуть более 800 Мб, поэтому хватит гигабайтной microSD (я использовал 2 Гб). Если вы работаете под Windows, то надо распаковать из xz-архива img, и записать его на карточку. Я рекомендую для этого использовать Rufus. Линуксоиды могут воспользоваться штатными средствами своей ОС, вплоть до великого и ужасного dd. После записи образа на карточке образуется два раздела, нас сейчас интересует BOOT (файловая система FAT).
2.3. Выбор загрузчика. Удаляем все нафиг с раздела BOOT, распаковываем scriptbin_kernel.tar.gz. Кидаем в BOOT uImage_OPI-2, переименовываем в uImage. И туда же script.bin.OPI-PC_1080p60 (последние знаки - это режим выхода HDMI, если вдруг будете подключать апельсинку к монитору), переименовать в script.bin.
2.4. Пробная загрузка. Вставляем карточку в Orange Pi, подключаем сеть и питание, ждем. Через некоторое время должен загореться красный светодиод, это знак того, что начальная стадия загрузки прошла успешно. 'Железного' светодиода питания у Orange Pi нет, поэтому плата не подает никаких признаков жизни при простом включении (без карточки)!
Теперь надо выяснить, какой IP адрес получила апельсинка. Теоретически у вас может работать в сети служба Bonjour, но я предполагаю, что имеется просто роутер с DHCP сервером. Вот на него надо залезть, и посмотреть, какой IP выдан устройству с именем OrangePi. Далее (для Windows) используем Putty для SSH-подключения. Линуксоиды просто пишут в терминале ssh -l orangepi
3. Настройка пингвина.
Для нормальной работы USB UART нам понадобятся модули ядра, которые лежали в scriptbin_kernel.tar.gz (папка lib). Проще всего закинуть их через флешку (альтернатива - выключить апельсинку, подключить карточку к нормальному компьютеру, примонтировать linux-раздел, но это просто и очевидно только не для Windows). Берем флешку (файловая система FAT), закидываем туда папку lib, подключаем флешку к апельсинке. Никакой роскоши, вроде автомонтирования, в минимальном образе Debian не предусмотрено, поэтому только mount, только хардкор. Хинт: можно копировать команды отсюда (Ctrl+C), а потом кидать их в окно Putty просто правым кликом.
dmesg, видим там что-то типа [sda] Attached SCSI removable disk. Значит, нам нужен раздел sda1
sudo mkdir /mnt/flash && sudo mount /dev/sda1 /mnt/flash
Создаем папку для монтирования и подключаем туда раздел флешки.
sudo cp -r /mnt/flash/lib /lib && sudo depmod -a
Копируем и обновляем модули (может занять некоторое время).
sudo umount /dev/sda1 && sudo rm -rf /mnt/flash
Отмонтируем флешку и подчищаем за собой. После этого накопитель можно отключить.
С настройкой пингвина закончили. Можно попробовать подключить принтер. В моему случае китайская ардуина оснащена USB UART CH341, поэтому в выводе dmesg я вижу следующее: usb 7-1: ch341-uart converter now attached to ttyUSB0.
Теперь можно устанавливать либо OctoPrint, либо Repetier-Server.
OctoPrintУстанавливается по инструкции для малинки.
cd ~
sudo apt-get install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
git clone https://github.com/foosel/OctoPrint.git
cd OctoPrint
virtualenv --system-site-packages venv
./venv/bin/python setup.py install
mkdir ~/.octoprint
Этой пачкой команд мы переходим в домашний каталог, устанавливаем Python с нужными запчастями, Git и другое барахло. Затем скачиваем исходники OctoPrint, собираем их и устанавливаем. Если при выполнении setup.py install вылезает ошибка по таймауту, запускаем эту команду еще раз.
sudo usermod -a -G tty orangepi
sudo usermod -a -G dialout orangepi
Добавляем пользователя orangepi в нужные группы, чтобы он имел доступ к последовательным портам.
~/OctoPrint/venv/bin/octoprint
Запускаем OctoPrint. В итоге в консоли должны получить сообщение octoprint.server - INFO - Listening on http://0.0.0.0:5000. Можно подключаться браузером к http://(ip апельсинки):5000 и настраивать OctoPrint под ваш принтер.
Если все работает, можно закрыть OctoPrint (Ctrl+C в консоли) и настроить автозапуск.
sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint
sudo chmod +x /etc/init.d/octoprint
sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint
Это создание скрипта запуска
sudo nano /etc/default/octoprint
Открываем редактор, там нужно изменить следующее (не забываем убрать # перед DAEMON):
OCTOPRINT_USER=orangepi
DAEMON=/home/orangepi/OctoPrint/venv/bin/octoprint
Ctrl+0, Enter, Ctrl+X (сохранение, закрытие редактора).
sudo update-rc.d octoprint defaults
Обновление списка автозагрузки. Теперь OctoPrint стартует после запуска апельсинки.
Repetier-Server
Устанавливается даже проще. Идем на страницу загрузки и копируем ссылку на актуальную версию пакета для архитектуры armel.
В консоли
cd ~
wget (ссылка на пакет.deb)
sudo dpkg -i (пакет.deb)
Раз уж я разжевываю азы Linux: набираете sudo dpkg -i R, нажимаете Tab, умный пингвин дополняет имя файла. Этими командами выполняется скачивание и установка Repetier-Server. Больше ничего делать не надо, он автоматически прописывается в автозагрузку и доступен по адресу http://(ip апельсинки):3344.
На этом на сегодня все. На вопросы, насколько смогу, отвечу. Кстати, принтер можно подключать минуя всякие ненужные USB UART, через аппаратный последовательный порт апельсинки, уже проверено и работает, но об этом в другой раз. 'Родную' камеру апельсинки пока не победил, но в процессе.
Образ системы, загрузочные файлы и lib для Orange Pi PC.
Еще больше интересных статей
GCODE: Плюшки от Павлушки
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сегодня хотелось бы рассказать о GCODE....
Экструдер 1
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Купленный на «Али» МК8 я...
FuseBox Core XY для домохозяйки
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.




Комментарии и вопросы
Здравствуйте, а можно и мне эт...
пока не особо, овалы это часть...
надо для этого файлы подготавл...
Купил начал печатать. Пошёл фи...
Купил начал печатать. Пошёл фи...
Собственно вопрос один, станда...
Задумал перевести принтер (kl...