2.2 Экспресс настройка OrangePi PC и OctoPrint

Начну со стандартной “отмазки”. Познания мои в Linux не велики, поэтому текст может содержать ошибки или возможно не самые оптимальные пути решения поставленной задачи. Хотя по моим наблюдениям в мире Linux единственно правильного решения по установке или настройке чего-либо нет, а есть стопицот разных мануалов/подходов. Поэтому просьба строго не судить, поправлять и предлагать что-то, чем просто критиковать. В общем призываю к конструктиву.

Задача:

  1. Установить и настроить Linux на OrangePI PC.
    OragePI_PC
  2. Установить OctoPrint на Linux.

Немного вводной информации от разработчиков OctoPrint.

OctoPrint это host программное обеспечение для 3D-принтеров, которое управляет подключенным к нему 3D-принтером, фактически передавая ему команды для выполнения печати. Примеры других подобных программ это Printrun, Repetier Host, а также Cura.

OctoPrint отличается от существующих программных решений в том, что его главная цель заключается в предоставлении удобного веб-интерфейса, который позволяет контролировать принтер удаленно из любой точки вашей сети или даже из Интернета, предлагая те же опции и возможности обратной связи доступные из host приложений перечисленных выше. Для того чтобы достичь этого, OctoPrint интенсивно использует существующие веб-технологии и framework, такие как AJAX и HTML5 web sockets.

OctoPrint был разработан для запуска на небольших встраиваемых устройствах, таких как популярный Raspberry Pi. Это позволяет превратить ваш существующий 3D-принтер в принтер с доступом по сети или WiFi и отвязать его от вашего ноутбука или рабочей станции.

Существует несколько возможностей для установки OctoPrint, как то запуск ПО на Linux, Windows или MacOS. Если у вас есть одна из версий Raspberry Pi, то рекомендуется использовать максимально затюненный имидж OctoPi, подготовленный для записи на SD карту. Его можно забрать тут.
На OrangePi PC данный образ запустит мне не удалось (видимо образ заточен под Raspberry Pi), поэтому я пошел другим путем — установил его в качестве пакета ПО для работы в среде Python 2.7 на один из дистрибутивов Debian.
Для установки OctoPrint рекомендуется Raspbian, но образ, который мне удалось найти, набит разнообразным софтом, необходимым в основном в графической оболочке. Ну для чего мне, фактически на принт-сервере, Libreoffice и графические редакторы. Поэтому я решил сделать минималистичную “серверную” установку на Debian Wheezy. Думаю что никаких особых проблем не возникнет и c Debian Jessie и с Ubuntu. Тем кому необходима графическая оболочка могут использовать Ubuntu(с оболочкой Vivid_Mate) или Lubuntu. О том где их можно найти читайте ниже.

  1. Дистрибутивы Linux, рекомендованный производителем OrangePI PC, выложены тут
    Образы можно взять c Google Drive


    Update January 2017
    Рекомендую использовать образ Armbian как наиболее свежий релиз. Есть образы под разные платы, не только Orange PI PC. Брать тут.
    Кому то может понравится DietPI дистрибутив. Брать тут.


  2. Достаточно скачать два файла: Debian_wheezy_mini.img.xz и scriptbin_kernel.tar.gz.
    image
    image2
    Распаковать файлы можно архиватором 7Zip.
  3. Для загрузки и работы устройства необходима micro SD карта с объемом минимум 4Гб (встроенного флэш-диска на OrangePI PC нет). Скорость записи на карту на работу ОС влияние конечно оказывает, но в данном случае не катастрофическое. Поэтому думаю не обязательно использовать карту с максимальными скоростными характеристиками. Достаточно использовать micro SD карту с классификацией скорости от 4 и выше.
    SD Card Classes
  4. Перед записью образа ОС рекомендую SD карту отформатировать с опцией восстановления размера и сброса разметки. Для этого я использовал утилиту SDFormatter.
    SDFormater
    Внимание! Проверьте внимательно что выбран правильный носитель — буква SD карты (Drive). Иначе есть шанс снести все данные не с того диска или подключенного накопителя.
  5. Для записи образа ОС используем утилиту Win32DiskImager.
    Внимание! Точно также проверяем букву выбранного диска (Device).
    Выбираем файл Debian_wheezy_mini.img и жмем Write.
     Win32DiskImager


    Update January 2017
    Для записи образа рекомендую к использованию мультиплатформенную утилиту Etcher


  6. После того как образ запишется на SD карту, в проводнике открываем раздел с названием BOOT. На Windows это пожалуй единственный раздел на карте который можно открыть без дополнительных утилит.
    Удаляем все файлы которые там находятся.
    BOOT_Disk


    Update January 2017
    Для Armbian шаги 6-8 можно не делать


  7. Распаковываем архив scriptbin_kernel.tar.gz в отдельную директорию. Оттуда берем 2 файла и копируем в раздел BOOT карты:
    script.bin.OPI-PC_1080p60_hdmi  — где OPI-PC указывает на модель устройства, а 1080p60_hdmi на разрешение и тип подключения которое будет использоваться при загрузке (можно выбрать другое подходящее для вашего монитора разрешение).
    uImage_OPI-2 — используется в случае если у вас OrangePI PC
    scriptbin_kernel.tar.gz
  8. Переименовываем на карте файлы:
    script.bin.OPI-PC_1080p60_hdmi в script.bin
    uImage_OPI-2 в uImage
    rename files
  9. Извлекаем карту и вставляем ее в устройство, включаем. О том, что образ ОС записан на карту корректно и OrangePI PC начал с нее грузиться, можно понять по загоревшемуся красному светодиоду на плате и конечно по логу загрузки на экране, если он  подключен.
  10. Теперь необходимо узнать IP адрес который был присвоен DHCP сервером новому устройству в сети. Вот несколько способов как сделать это:
    — посмотреть в консоль управления DHCP сервера или домашнего роутера (если он выполняет роль DHCP сервера в сети). Найти там новое устройство.
    IP on DHCP
    — использовать сканер сети, например Look@LAN Network Monitor.
    — подключить клавиатуру и монитор к устройству, залогиниться и узнать адрес командой ifconfig.
  11. Настраиваем Putty или другой подобный SSH клиент и подключаемся к OrangePI PC по IP адресу устройства. По умолчанию логин/пароль — orangepi/orangepi
    Putty
  12. После первого входа, необходимо выполнить команду
    sudo fs_resize

    и перегружаем устройство.

    sudo reboot


    First login


    Update January 2017
    Для Armbian делать не нужно


  13. Рекомендую поменять пароль по умолчанию для пользователей orangepi и root . Это можно сделать командой
    passwd orangepi
    passwd root

    Update January 2017
    Для Armbian  дефолтные логин/пароль — root 1234


  14. Обновляем список пакетов командой
    sudo apt-get update

    и обновляем ОС.

    sudo apt-get dist-upgrade


  15. Настраиваем часовой пояс для системы и пользователя.
    sudo tzselect
    sudo dpkg-reconfigure tzdata

    и синхронизируем время

    ntpdate pool.ntp.org
  16. Для поиска и обнаружения сервисов в локальной сети по DNS имени .local устанавливаем и настраиваем сервис AVAHI
    sudo apt-get install avahi-daemon
    sudo apt-get install avahi-autoipd
  17. Прописываем имя хоста в соответствующих файлах.
    Сохраняем изменения Ctrl+X, выходим из редактора и можно перегрузиться.
    sudo nano /etc/hostname — пишем например orangeprint
    hostname
    sudo nano /etc/hosts — также прописываем orangeprint
    hosts
    sudo reboot
    Теперь можно будет открывать веб страницу сервиса по адресу http://orangeprint.local:5000 или http://orangeprint:5000
  18. Далее рекомендую обновить ядро и модули Linux. При выполнении скрипт задаст несколько несложных вопросов. Только после этого у меня заработал WI-FI адаптер.

    Update January 2017
    Для Armbian  обновление ядра делать не нужно.


    wget http://loboris.eu/update_kernel.sh
    sudo mv update_kernel.sh /usr/local/bin
    sudo chmod +x /usr/local/bin/update_kernel.sh
    sudo update_kernel.sh
    sudo reboot

    Kernel_updateupdate
    после перезагрузки выполняем команду

    sudo depmod -a
  19. Приступаем к установке сервиса 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
    

    Update January 2017 Для Armbian  необходимо выполнить следующую команду, чтобы не получить ошибку virtualenv.

    sudo pip install virtualenv --upgrade
    

    sudo virtualenv venv
    sudo virtualenv --system-site-packages venv
    sudo ./venv/bin/python setup.py install
    mkdir ~/.octoprint
  20. Добавляем пользователя в группы, что даст возможность сервису открывать порты для общения с подключенным принтером.
    sudo usermod -a -G tty orangepi
    sudo usermod -a -G dialout orangepi
  21. Для проверки работоспособности сервиса запускаем его следующей командой .
    ~/OctoPrint/venv/bin/octoprint

    Открываем в броузере веб страницу http://orangeprint:5000
    web
    Выбираем тип авторизации который планируется использовать. Наслаждаемся веб порталом.
    Web access

  22. Далее настраиваем автозапуск сервиса.
    Копируем скрипт и настраиваем права на запуск.

    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
    

    Редактируем файл настроек — прописываем пользователя из под которого будет запускаться сервер и добавляем строку с указанием папки где находятся бинарники сервиса. Разкоментчиваем строки с настройками. Сохраняем изменения Ctrl+X и выходим из редактора.

    sudo nano /etc/default/octoprint
    

    DAEMON=/home/orangepi/OctoPrint/venv/bin/octoprint
    Update
    Выполняем.

    sudo update-rc.d octoprint defaults

    Перегружаем устройство.

    sudo reboot
    
  23. После перезагрузки открываем в броузере веб страницу http://orangeprint:5000
    Убеждаемся что сервис стартанул автоматически.
    Остановить или рестартануть сервис можно следующей командой

    sudo service octoprint {start|stop|restart}
  24. Далее необходимо подключить принтер к USB порту устройства. В моем случае это бутерброд из RAMPS и Arduino Mega прошитый Marlin. Подключаем Arduino USB кабелем к одному из портов OrangePI PC.
  25. На главной странице http://orangeprint:5000 выбираем порт к которому подключен принтер и скорость соединения (у меня заработало на 115200). Жмем кнопку Connect.
    USB port
    Сервис OctoPrint подключиться к принтеру и сообщит краткий статус. Более подробную информацию по обмену данными и командами можно увидеть на закладке Terminal.
    Terminal
  26. Дальнейшее описание настроек и нюансов работы с сервисом OctoPrint будет представлено на отдельной странице. Читайте WIKI и FAQ  от разработчиков — там много полезного по настройке уже представлено.
  27. Настройку WI-FI адаптера так-же не выкладываю, так как модели адаптеров могут быть совершенно разными и соответственно установка необходимого модуля и настройка будут различаться. Если повезет с моделью/чипсетом, то он заработает сразу после обновления ядра и модулей и останется только прописать SSID и пароль вашей беспроводной сети. Удачи с Linux!

6 комментариев на “2.2 Экспресс настройка OrangePi PC и OctoPrint

  1. Иван

    Все отлично описано, но все-таки можно поподробней про настройку WI-FI адаптера (и что за модель ?).

    Нравится

    1. rusik5 Автор записи

      Рад бы поделится информацией, да танцы с бубном вокруг вайфай не закончились. четкой работы адаптера добится пока не удалось. Он если начинает работать то отваливается эзернет и наоборот. Мой адаптер Edup EP-N8508GS на чипе Realtek RTL8188C. Пробовал другие дистрибы — DietPI и Armbian, на них он поднимался гораздо лучше — попробуйте. настройка стандартная через редактирование /etc/network/interfaces работает в большинстве случаев сработала. в общем как я понял это не самый лучший чипсет для линукса на арм. Пишут вроде что на Ralink работает лучше и поддержка выше на дистирбах. в общем пока я упражнения по настройке приостановил-работаю над запуском притера. как появится время — оттестю, отпишу

      Нравится

  2. sirota

    Разве sudo pip instal… верное? Вот как верное:
    ./venv/bin/pip install pip —upgrade
    ./venv/bin/python setup.py install
    А то потом Plugin maanger работать не будет. И плагины вставать

    Нравится 1 человек

    1. rusik5 Автор записи

      возможно sudo там не к месту
      я брал команды с сайта разраба на момент написания статьи
      возможно поменялось все. апдейты начали регулярно выходить
      самая актуальная инструкция конечно на сайте разраба

      Нравится

      1. sirota

        К сожалению я дичайще извиняюсь. Реально надо. В вот на предложение pip’а потом еще обновить pip обращать внимания не стоит. Ибо новая версия как раз и не работает как надо. Корректно работает только версия ставящаяся автоматом.

        Нравится

      2. sirota

        Дело в том что после «sudo pip install virtualenv —upgrade» вылетает алерт о том что надо и сам pip «верхний» обновить (грубо говоря окта крутится в свое собственном окружении заимствующим часть от родителя и по факту у нас 2 pip’а). Так вот ./venv/bin/pip install pip —upgrade надо, но при sudo pip install virtualenv —upgrade предлагается pip install pip —upgrade. Это и ломает pip в окте. Обратно к сожалению не выходит нормально починить, час возился. Плюнул и накатил все с нуля )

        Нравится

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.