Метки: OctoPrint, OrangePi, Repetier-Server  
2016-01-18  
  
Раздел: Настройка, Принт-сервер  
Автор: eta4ever Просмотров: 8 595  
29 комментариев
Апельсиновый осьминог: пошаговое руководство
Добавлено в закладки: 1
Когда малинку постиг огромный успех, начали появляться “убийцы” 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 . Дефолтный пользователь, отличный от root, у нас orangepi. Пароль у него тоже orangepi. Если подключение прошло успешно – расширяем linux-раздел на всю карточку (sudo fs_resize), перезагружаем аппарат (sudo reboot), подключаемся еще раз и переходим к настройке.
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 <a target="_blank" href="https://github.com/foosel/OctoPrint.git" target="_blank" rel="nofollow">https://github.com/foosel/OctoPrint.git</a>
cd OctoPrint
sudo pip install virtualenv --upgrade
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
Ссылка на форум, на обсуждение всего, что связано с принт-серверами.
29 комментариев на «Апельсиновый осьминог: пошаговое руководство»
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Тест на шумность шаговых двигателей и драйверов для 3D принтера       Несколько шагов к качественной 3D печати
Честный бюджетный хардкор

Эх, лежит и у меня этот оранжевый китаец, все никак не доберусь. Отличная статья и не надо долго инфу копать. Надо попробовать. А вебку пробовали подключать?
Родную апельсиновую камеру с mjpeg-streamer мне завести пока не удалось, а вебки USBшной нету. Пробовать буду обязательно.
На малине вебкамера, да как и Pi камера работают сразу и без бубнов. Бубен нужен для изменения разрешения картинки

Мне удаленка тоже нужна частенько. но времени пока нет ее реализовывать. Но надо пробовать. Жду отзывов за вебки. Еще не помешал бы wiFi но тут его нет, так-что только свистки.
На малинке какую-то копеечную затычку типа такой использовал, работало на ура.
Я на апельсин с дебианом и с андроидом чтот подобное подключал, то из коробки не завелось.Какая сборка была я не помню.
Я так понял, там от сборки вообще все зависит. Вайфайную затычку буду пробовать, если найду, куда ее закинул

Ребята, в чем проблема?
Не видит принтер…
Можно вывод ls /dev/tty* ?
Если там ttyUSB0 есть, то проблема скорее всего в правах пользователя, группы задаются на этом шаге:
И после этого надо перелогиниться или перезагрузиться.
Причем… выбор порта не доступен… только AUTO
Группу раздал… апельсинку перезапустил… октопринт сам поднялся…
скрин вот
Ага, порта нет. Значит, что-то пошло не так на третьем шаге, с добавлением модулей ядра.
Вообще, у меня текущая рекомендация – бросать сборку от loboris и переходить на Armbian, он лучше из коробки работает. http://3dtoday.ru/blogs/eta4ever/orange-octopus-junior-and-penguin-stuff/
Еще раз перезадал группы и ребутнул… вот только надпись
sudo: unable to resolve host OrangePI
смущает… или это норм?
после загрузки результат тот же
зашел по пользователем root и еще раз дал разрешения
Не, если порта в tty нет, то дело не в разрешениях.
После ребута результат нулевой
Судя по всему… в ядре нет драйвера под мой принтер
эх… буду завтра перелазить на armbian
octo@orangepipc:~/OctoPrint$ virtualenv —system-site-packages venv
-bash: virtualenv: command not found
в чем проблема,подскажите плиз
нашел косяк ,надо было сделать это : pip install virtualenv
в итоге у меня процесс установки получился такой :
sudo apt-get install mc
sudo apt-get update
sudo apt-get upgrade
df -h
--------------------------
Установка 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
sudo pip install virtualenv --upgrade
virtualenv venv
./venv/bin/pip install pip --upgrade
./venv/bin/python setup.py install
mkdir ~/.octoprint
sudo usermod -a -G tty octo
sudo usermod -a -G dialout octo
----------запуск
~/OctoPrint/venv/bin/octoprint
---------автозапуск
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
sudo nano /etc/default/octoprint
--------пользователь octo
OCTOPRINT_USER=octo
DAEMON=/home/octo/OctoPrint/venv/bin/octoprint
------
sudo update-rc.d octoprint defaults
Спасибо! Да, в Armbian virtualenv из коробки нет, само не ставится, надо ручками.
файловую систему тоже не надо расширять ,там это сделано по умолчанию
Ну так эта статья – про сборку loboris, про Armbian есть более актуальная https://3deshnik.ru/blogs/eta4ever/apelsinovyj-osminog-mladshij-i-pingvini-shtuchki
камеру ставил так )))
установка камеры
--------------------------------------
sudo apt-get install imagemagick libav-tools libjpeg62* subversion
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer
cd mjpg-streamer
sudo make
sudo nano /home/octo/mjpg-streamer/start.sh
./mjpg_streamer -i "./input_uvc.so -f 10 -r 1280x720" -o "./output_http.so -w ./www"
sudo nano /etc/rc.local
cd /home/octo/mjpg-streamer
./start.sh
Тут стоит отметить, что не все камеры заводятся без ключа -y во входном наборе параметров.
у меня Logitech Webcam C270

под себя можно поправить в start.sh
я просто пишу как у меня получилось,познаний в этой области почти ноль
У меня две китайских копеечных, обе без -y не взлетали, поэтому я сразу и написал, это достаточно важный момент. Сначала надо пробовать без этого ключа, не взлетает тогда уже с ним.