Апельсиновый осьминог: пошаговое руководство

Не вижу, честно говоря, причины, почему бы этот материал не перепостить сюда. Первоначально опубликован мною тут.
Сейчас многие уже управляют 3D-принтерами с помощью микро-пк – оно и автономно, и удобнее, чем карточки туда-сюда дергать. Традиционно используется Raspberry Pi, как самый распространенный “малыш” с огромным коммьюнити. Софт хороший тоже есть. Это и опенсорсный Octoprint, и коммерческий Repetier-Server (бесплатная версия немножко ограничена, но юзабельна, про это ПО я уже писал).

Когда малинку постиг огромный успех, начали появляться “убийцы” 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

Ссылка на форум, на обсуждение всего, что связано с принт-серверами.

15

Метки: , ,    2016-01-18      Раздел: Настройка, Принт-сервер  
Автор: Просмотров: 3 239   29 комментариев



29 комментариев на «Апельсиновый осьминог: пошаговое руководство»

  1. Эх, лежит и у меня этот оранжевый китаец, все никак не доберусь. Отличная статья и не надо долго инфу копать. Надо попробовать. А вебку пробовали подключать?

    0
    1. Родную апельсиновую камеру с mjpeg-streamer мне завести пока не удалось, а вебки USBшной нету. Пробовать буду обязательно.

      1
    2. На малине вебкамера, да как и Pi камера работают сразу и без бубнов. Бубен нужен для изменения разрешения картинки %)

      0
  2. Мне удаленка тоже нужна частенько. но времени пока нет ее реализовывать. Но надо пробовать. Жду отзывов за вебки. Еще не помешал бы wiFi но тут его нет, так-что только свистки.

    0
    1. На малинке какую-то копеечную затычку типа такой использовал, работало на ура.

      1
  3. Я на апельсин с дебианом и с андроидом чтот подобное подключал, то из коробки не завелось.Какая сборка была я не помню.

    0
    1. Я так понял, там от сборки вообще все зависит. Вайфайную затычку буду пробовать, если найду, куда ее закинул :D

      1
  4. Ребята, в чем проблема?
    Не видит принтер…

    0
    1. Можно вывод ls /dev/tty* ?
      Если там ttyUSB0 есть, то проблема скорее всего в правах пользователя, группы задаются на этом шаге:

      sudo usermod -a -G tty orangepi
      sudo usermod -a -G dialout orangepi

      И после этого надо перелогиниться или перезагрузиться.

      1
  5. Причем… выбор порта не доступен… только AUTO

    0
  6. Группу раздал… апельсинку перезапустил… октопринт сам поднялся…
    скрин вот

    0
    1. Ага, порта нет. Значит, что-то пошло не так на третьем шаге, с добавлением модулей ядра.
      Вообще, у меня текущая рекомендация – бросать сборку от loboris и переходить на Armbian, он лучше из коробки работает. http://3dtoday.ru/blogs/eta4ever/orange-octopus-junior-and-penguin-stuff/

      1
  7. Еще раз перезадал группы и ребутнул… вот только надпись
    sudo: unable to resolve host OrangePI
    смущает… или это норм?
    после загрузки результат тот же

    0
  8. зашел по пользователем root и еще раз дал разрешения

    0
    1. Не, если порта в tty нет, то дело не в разрешениях.

      0
  9. После ребута результат нулевой

    0
  10. Судя по всему… в ядре нет драйвера под мой принтер

    0
  11. эх… буду завтра перелазить на armbian

    0
  12. octo@orangepipc:~/OctoPrint$ virtualenv —system-site-packages venv
    -bash: virtualenv: command not found
    в чем проблема,подскажите плиз

    0
  13. нашел косяк ,надо было сделать это : pip install virtualenv

    0
  14. в итоге у меня процесс установки получился такой :
    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

    1
    1. Спасибо! Да, в Armbian virtualenv из коробки нет, само не ставится, надо ручками.

      0
  15. файловую систему тоже не надо расширять ,там это сделано по умолчанию

    0
    1. Ну так эта статья – про сборку loboris, про Armbian есть более актуальная https://3deshnik.ru/blogs/eta4ever/apelsinovyj-osminog-mladshij-i-pingvini-shtuchki

      0
  16. камеру ставил так )))
    установка камеры
    --------------------------------------

    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

    1
    1. Тут стоит отметить, что не все камеры заводятся без ключа -y во входном наборе параметров.

      0
  17. у меня Logitech Webcam C270
    под себя можно поправить в start.sh
    я просто пишу как у меня получилось,познаний в этой области почти ноль :)

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

      0

Добавить комментарий




     
Авторизация
*
*
Генерация пароля
Яндекс.Метрика