Instalando Octoprint en Linux

Con un viejo portatil por viejo que sea al que hayamos instalado una distribución Linux , lo podemos convertir en un servidor de impresión 3d con unos pocos pasos gracias a OctoPrint


OctoPrint es un sofware creado por Gina Häußge y es 100% opensource  con un  interfaz amigable que hace de servidor  de impresion 3D  permitiendo controlar en la practica cualquier impresora 3D a distancia.

Gracias a este sw  podríamos dejar nuestra impresora imprimiendo durante horas mientras la controlamos desde cualquier parte del mundo ( se puede empezar, parar y pausar impresiones en tiempo real) o la monitorizamos gracias a que podemos conectarle una webcam y hacer streaming de las impresiones e incluso timelapses.

Otras utilidad  sin duda  interesante es subir o visualizar nuestros GCODES e incluso generarlos !las posibildades son  casi infinitas!.

Este sw esta  en constante desarrollo y mantiene una gran comunidad en Github que comparte e innova en sus nuevas implementaciones de acorde a las necesidade de cada usuario,

Sin duda la forma más sencilla de instalar OctoPrint es usando una  Raspberry   o a orangePi como vimos en este port,  R  pero también es  posible instalarlo en cualquier ordenador  con windows   y   como vamos a ver con Linux

Las instrucciones de configuración genéricas se reducen a Instalación de Python incluyendo pip y virtualenv,  pero tenga en cuenta:

      • Si bien OctoPrint es compatible con Python 3.7+ a partir de la versión 1.4.0, muchos de los complementos disponibles siguen siendo solo validos para Python 2.
      • Si desea hacer uso de complementos del repositorio de complementos, por ahora aún debe instalar OctoPrint en Python 2.7. Tenga en cuenta que la migración a Python 3 en una fecha posterior se realiza fácilmente.

En resumen estos son los pasos :

      • Crear un entorno virtual en algún lugar:
virtualenv OctoPrint
      • Instalación de OctoPrint en ese entorno virtual:
OctoPrint / bin / pip install OctoPrint
      • Luego, OctoPrint se puede iniciar a través de ./OctoPrint/bin/octoprint serve o con una ruta absoluta / ruta / a / OctoPrint / bin / octoprint serve
      • Las instrucciones de configuración más específicas para los entornos de tiempo de ejecución más comunes se pueden encontrar a continuación.

 

Configuración básica

Para el paquete básico, necesitará Python 2.7 (debe instalarse de manera predeterminada) y pip.

Las dependencias de OctoPrint serán instaladas por pip:

cd ~
sudo apt update
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
mkdir OctoPrint && cd OctoPrint
virtualenv venv
source venv/bin/activate
pip install pip --upgrade
pip install octoprint

Si esto instala una versión anterior de OctoPrint, pip probablemente todavía tenga algo en caché. En ese caso, agregue –no-cache-dir al comando de instalación, p.

pip install --no-cache-dir octoprint

Para hacer esto permanente, limpie el caché de pip:

rm -r ~ / .cache / pip

Es posible que deba agregar el usuario pi al grupo de marcado y tty para que el usuario pueda acceder a los puertos seriales:

sudo usermod -a -G tty usuario
sudo usermod -a -G dialout usuario

Entonces debería poder iniciar el servidor OctoPrint:

~ / OctoPrint / venv / bin / octoprint serve

Lo cual  responderá  algo como esto:

octoprint serve
2020-04-21 16:30:41,253 - octoprint.startup - INFO - ******************************************************************************
2020-04-21 16:30:41,254 - octoprint.startup - INFO - Starting OctoPrint 1.4.0
2020-04-21 16:30:41,254 - octoprint.startup - INFO - ******************************************************************************
2020-04-21 16:30:41,275 - octoprint.plugin.core - INFO - Loading plugins from /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins, /home/soloelectronicos/.octoprint/plugins and installed plugin packages...
2020-04-21 16:30:41,799 - octoprint.plugin.core - INFO - Plugin Pi Support Plugin did not pass check, not loading.
2020-04-21 16:30:41,869 - octoprint.plugins.octoprint.plugins.discovery - INFO - pybonjour is not installed, Zeroconf Discovery won't be available
2020-04-21 16:30:41,877 - octoprint.plugin.core - INFO - Found 14 plugin(s) providing 14 mixin implementations, 25 hook handlers
2020-04-21 16:30:41,911 - octoprint.server.heartbeat - INFO - Starting server heartbeat, 900.0s interval
2020-04-21 16:30:41,941 - octoprint.server - INFO - Intermediary server started
2020-04-21 16:30:41,941 - octoprint.plugin.core - INFO - Loading plugins from /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins, /home/soloelectronicos/.octoprint/plugins and installed plugin packages...
2020-04-21 16:30:41,950 - octoprint.plugin.core - INFO - Plugin Pi Support Plugin did not pass check, not loading.
2020-04-21 16:30:41,988 - octoprint.plugin.core - INFO - Found 14 plugin(s) providing 14 mixin implementations, 25 hook handlers
2020-04-21 16:30:41,991 - octoprint.printer.profile - ERROR - Profile _default does not exist, creating _default again and setting it as default
2020-04-21 16:30:42,019 - octoprint.filemanager.storage - INFO - Initializing the file metadata for /home/soloelectronicos/.octoprint/uploads...
2020-04-21 16:30:42,019 - octoprint.filemanager.storage - INFO - ... file metadata for /home/soloelectronicos/.octoprint/uploads initialized successfully.
2020-04-21 16:30:42,022 - octoprint.server - INFO - Added new permission from plugin action_command_prompt: PLUGIN_ACTION_COMMAND_PROMPT_INTERACT (needs: u"Need(method='role', value=u'plugin_action_command_prompt_interact')")
2020-04-21 16:30:42,022 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_READ (needs: u"Need(method='role', value=u'plugin_announcements_read')")
2020-04-21 16:30:42,022 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_MANAGE (needs: u"Need(method='role', value=u'plugin_announcements_manage'), Need(method='role', value=u'plugin_announcements_read')")
2020-04-21 16:30:42,023 - octoprint.server - INFO - Added new permission from plugin appkeys: PLUGIN_APPKEYS_ADMIN (needs: u"Need(method='role', value=u'plugin_appkeys_admin')")
2020-04-21 16:30:42,023 - octoprint.server - INFO - Added new permission from plugin backup: PLUGIN_BACKUP_ACCESS (needs: u"Need(method='role', value=u'plugin_backup_access')")
2020-04-21 16:30:42,024 - octoprint.server - INFO - Added new permission from plugin logging: PLUGIN_LOGGING_MANAGE (needs: u"Need(method='role', value=u'plugin_logging_manage')")
2020-04-21 16:30:42,024 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_MANAGE (needs: u"Need(method='role', value=u'plugin_pluginmanager_manage')")
2020-04-21 16:30:42,025 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_INSTALL (needs: u"Need(method='role', value=u'plugin_pluginmanager_install'), Need(method='role', value=u'plugin_pluginmanager_manage')")
2020-04-21 16:30:42,025 - octoprint.server - INFO - Added new permission from plugin printer_safety_check: PLUGIN_PRINTER_SAFETY_CHECK_DISPLAY (needs: u"Need(method='role', value=u'plugin_printer_safety_check_display')")
2020-04-21 16:30:42,026 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CHECK (needs: u"Need(method='role', value=u'plugin_softwareupdate_check')")
2020-04-21 16:30:42,027 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_UPDATE (needs: u"Need(method='role', value=u'plugin_softwareupdate_update')")
2020-04-21 16:30:42,351 - octoprint.util.pip - INFO - Using "/home/soloelectronicos/OctoPrint/venv/bin/python2 -m pip" as command to invoke pip
2020-04-21 16:30:42,618 - octoprint.util.pip - INFO - Version of pip is 20.0.2
2020-04-21 16:30:42,618 - octoprint.util.pip - INFO - pip installs to /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages (writable -> yes), --user flag needed -> no, virtual env -> yes
2020-04-21 16:30:42,619 - octoprint.util.pip - INFO - ==> pip ok -> yes
2020-04-21 16:30:42,621 - octoprint.plugin.core - INFO - Initialized 14 plugin implementation(s)
2020-04-21 16:30:42,643 - octoprint.plugin.core - INFO - 14 plugin(s) registered with the system:
|  Action Command Prompt Support (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/action_command_prompt
|  Announcement Plugin (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/announcements
|  Anonymous Usage Tracking (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/tracking
|  Application Keys Plugin (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/appkeys
|  Backup & Restore (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/backup
|  Core Wizard (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/corewizard
|  Discovery (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/discovery
|  Error Tracking (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/errortracking
|  Logging (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/logging
|  Login UI (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/loginui
|  Plugin Manager (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/pluginmanager
|  Printer Safety Check (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/printer_safety_check
|  Software Update (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/softwareupdate
|  Virtual Printer (bundled) = /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/octoprint/plugins/virtual_printer
Prefix legend: ! = disabled, # = blacklisted, * = incompatible
2020-04-21 16:30:42,687 - octoprint.environment - INFO - Detected environment is Python 2.7.17 under Linux (linux2). Details:
|  hardware:
|      cores: 2
|      freq: 2201.0
|      ram: 2081136640
|  os:
|      id: linux
|      platform: linux2
|  python:
|      pip: 20.0.2
|      version: 2.7.17
|      virtualenv: /home/soloelectronicos/OctoPrint/venv
2020-04-21 16:30:42,694 - octoprint.server - INFO - Reset webasset folder /home/soloelectronicos/.octoprint/generated/webassets...
2020-04-21 16:30:42,695 - octoprint.server - INFO - Reset webasset folder /home/soloelectronicos/.octoprint/generated/.webassets-cache...
2020-04-21 16:30:42,956 - octoprint.server - INFO - Shutting down intermediary server...
2020-04-21 16:30:43,444 - octoprint.server - INFO - Intermediary server shut down
2020-04-21 16:30:43,448 - octoprint.events - INFO - Processing startup event, this is our first event
2020-04-21 16:30:43,450 - octoprint.events - INFO - Adding 0 events to queue that were held back before startup event
2020-04-21 16:30:43,452 - octoprint.filemanager - INFO - Adding backlog items from all storage types to analysis queue...
2020-04-21 16:30:43,456 - octoprint.server.util.watchdog - INFO - Running initial scan on watched folder...
2020-04-21 16:30:43,456 - octoprint.filemanager - INFO - Added 0 items from storage type "local" to analysis queue
2020-04-21 16:30:43,459 - octoprint.server.util.watchdog - INFO - ... initial scan done.
2020-04-21 16:30:43,465 - octoprint.server - INFO - Listening on http://0.0.0.0:5000 and http://[::]:5000
2020-04-21 16:30:43,465 - octoprint.plugins.discovery - INFO - Registered OctoPrint instance on ubuntusoloelectronicos for SSDP
2020-04-21 16:30:43,762 - octoprint.util.pip - INFO - Using "/home/soloelectronicos/OctoPrint/venv/bin/python2 -m pip" as command to invoke pip
2020-04-21 16:30:43,763 - octoprint.util.pip - INFO - pip installs to /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages (writable -> yes), --user flag needed -> no, virtual env -> yes
2020-04-21 16:30:43,763 - octoprint.util.pip - INFO - ==> pip ok -> yes
2020-04-21 16:30:43,800 - octoprint.plugins.announcements - INFO - Loaded channel _important from https://octoprint.org/feeds/important.xml in 0.31s
2020-04-21 16:30:43,866 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from https://plugins.octoprint.org/plugins.json
2020-04-21 16:30:44,163 - octoprint.plugins.announcements - INFO - Loaded channel _releases from https://octoprint.org/feeds/releases.xml in 0.3s
2020-04-21 16:30:44,583 - octoprint.util.pip - INFO - Using "/home/soloelectronicos/OctoPrint/venv/bin/python2 -m pip" as command to invoke pip
2020-04-21 16:30:44,627 - octoprint.plugins.pluginmanager - INFO - Loaded plugin notices data from https://plugins.octoprint.org/notices.json
2020-04-21 16:30:44,846 - octoprint.plugins.announcements - INFO - Loaded channel _blog from https://octoprint.org/feeds/octoblog.xml in 0.28s
2020-04-21 16:30:45,653 - octoprint.util.pip - INFO - pip installs to /home/soloelectronicos/OctoPrint/venv/lib/python2.7/site-packages/ (writable -> yes), --user flag needed -> no, virtual env -> yes
2020-04-21 16:30:45,653 - octoprint.util.pip - INFO - ==> pip ok -> yes
2020-04-21 16:30:45,660 - octoprint.plugins.softwareupdate - INFO - Saved version cache to disk
2020-04-21 16:30:46,286 - octoprint.plugins.announcements - INFO - Loaded channel _plugins from https://plugins.octoprint.org/feed.xml in 1.4s
2020-04-21 16:30:46,624 - octoprint.plugins.announcements - INFO - Loaded channel _octopi from https://octoprint.org/feeds/octopi.xml in 0.29s
2020-04-21 16:45:41,912 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2020-04-21 17:00:41,913 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2020-04-21 17:15:41,915 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2020-04-21 17:30:41,916 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2020-04-21 17:45:41,918 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2020-04-21 17:46:03,908 - octoprint.server.util.flask.PreemptiveCache - INFO - Adding entry for / and {'query_string': u'l10n=en', 'path': u'/', u'_count': 1, u'_timestamp': 1587483963.908261, 'base_url': u'http://127.0.0.1:5000/'}
2020-04-21 17:46:07,147 - octoprint.server.util.sockjs - INFO - New connection from client: 127.0.0.1
2020-04-21 17:46:08,325 - tornado.access - WARNING - 403 GET /api/printerprofiles/_default (127.0.0.1) 5.30ms

 

 

Log de ejecucion :

[email protected]:~$ sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
[sudo] contraseña para soloelectronicos:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
El paquete indicado a continuación se instaló de forma automática y ya no es necesario.
libllvm6.0
Utilice «sudo apt autoremove» para eliminarlo.
Se instalarán los siguientes paquetes adicionales:
dpkg-dev fakeroot git-man libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl liberror-perl libfakeroot libpython-all-dev
libpython-dev libpython2.7-dev make python-all python-all-dev python-crypto
python-keyring python-keyrings.alt python-pip-whl python-secretstorage
python-wheel python-xdg python2.7-dev python3-virtualenv virtualenv
Paquetes sugeridos:
debian-keyring git-daemon-run | git-daemon-sysvinit git-doc git-el git-email
git-gui gitk gitweb git-cvs git-mediawiki git-svn libyaml-doc make-doc
python-crypto-doc libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-fs
python-gdata python-keyczar python-secretstorage-doc python-setuptools-doc
Se instalarán los siguientes paquetes NUEVOS:
build-essential dpkg-dev fakeroot git git-man libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl liberror-perl libfakeroot
libpython-all-dev libpython-dev libpython2.7-dev libyaml-dev make python-all
python-all-dev python-crypto python-dev python-keyring python-keyrings.alt
python-pip python-pip-whl python-secretstorage python-setuptools
python-virtualenv python-wheel python-xdg python2.7-dev python3-virtualenv
virtualenv
0 actualizados, 31 nuevos se instalarán, 0 para eliminar y 8 no actualizados.
Se necesita descargar 36,9 MB de archivos.
Se utilizarán 85,4 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n] S
Des:1 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 make amd64 4.1-9.1ubuntu1 [154 kB]
Des:2 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 dpkg-dev all 1.19.0.5ubuntu2.3 [607 kB]
Des:3 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4.758 B]
Des:4 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libfakeroot amd64 1.22-2ubuntu1 [25,9 kB]
Des:5 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 fakeroot amd64 1.22-2ubuntu1 [62,3 kB]
Des:6 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 liberror-perl all 0.17025-1 [22,8 kB]
Des:7 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 git-man all 1:2.17.1-1ubuntu0.7 [804 kB]
Des:8 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 git amd64 1:2.17.1-1ubuntu0.7 [3.915 kB]
Des:9 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47,6 kB]
Des:10 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-xs-perl amd64 0.04-5 [11,1 kB]
Des:11 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-merge-perl all 0.08-3 [12,0 kB]
Des:12 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython2.7-dev amd64 2.7.17-1~18.04 [28,3 MB]
Des:13 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libpython-dev amd64 2.7.15~rc1-1 [7.684 B]
Des:14 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libpython-all-dev amd64 2.7.15~rc1-1 [1.092 B]
Des:15 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-all amd64 2.7.15~rc1-1 [1.076 B]
Des:16 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 python2.7-dev amd64 2.7.17-1~18.04 [277 kB]
Des:17 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-dev amd64 2.7.15~rc1-1 [1.256 B]
Des:18 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-all-dev amd64 2.7.15~rc1-1 [1.100 B]
Des:19 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-crypto amd64 2.6.1-8ubuntu2 [244 kB]
Des:20 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-secretstorage all 2.3.1-2 [11,8 kB]
Des:21 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-keyring all 10.6.0-1 [30,6 kB]
Des:22 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-keyrings.alt all 3.0-1 [16,7 kB]
Des:23 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip-whl all 9.0.1-2.3~ubuntu1.18.04.1 [1.653 kB]
Des:24 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip all 9.0.1-2.3~ubuntu1.18.04.1 [151 kB]
Des:25 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 python-setuptools all 39.0.1-2 [329 kB]
Des:26 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 python-virtualenv all 15.1.0+ds-1.1 [46,8 kB]
Des:27 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 python-wheel all 0.30.0-0.2 [36,4 kB]
Des:28 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 python-xdg all 0.25-4ubuntu1 [31,3 kB]
Des:29 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 python3-virtualenv all 15.1.0+ds-1.1 [43,4 kB]
Des:30 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 virtualenv all 15.1.0+ds-1.1 [4.476 B]
Des:31 http://es.archive.ubuntu.com/ubuntu bionic/main amd64 libyaml-dev amd64 0.1.7-2ubuntu3 [55,7 kB]
Descargados 36,9 MB en 6s (5.898 kB/s)
Extrayendo plantillas para los paquetes: 100%
Seleccionando el paquete make previamente no seleccionado.
(Leyendo la base de datos ... 163591 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../00-make_4.1-9.1ubuntu1_amd64.deb ...
Desempaquetando make (4.1-9.1ubuntu1) ...
Seleccionando el paquete dpkg-dev previamente no seleccionado.
Preparando para desempaquetar .../01-dpkg-dev_1.19.0.5ubuntu2.3_all.deb ...
Desempaquetando dpkg-dev (1.19.0.5ubuntu2.3) ...
Seleccionando el paquete build-essential previamente no seleccionado.
Preparando para desempaquetar .../02-build-essential_12.4ubuntu1_amd64.deb ...
Desempaquetando build-essential (12.4ubuntu1) ...
Seleccionando el paquete libfakeroot:amd64 previamente no seleccionado.
Preparando para desempaquetar .../03-libfakeroot_1.22-2ubuntu1_amd64.deb ...
Desempaquetando libfakeroot:amd64 (1.22-2ubuntu1) ...
Seleccionando el paquete fakeroot previamente no seleccionado.
Preparando para desempaquetar .../04-fakeroot_1.22-2ubuntu1_amd64.deb ...
Desempaquetando fakeroot (1.22-2ubuntu1) ...
Seleccionando el paquete liberror-perl previamente no seleccionado.
Preparando para desempaquetar .../05-liberror-perl_0.17025-1_all.deb ...
Desempaquetando liberror-perl (0.17025-1) ...
Seleccionando el paquete git-man previamente no seleccionado.
Preparando para desempaquetar .../06-git-man_1%3a2.17.1-1ubuntu0.7_all.deb ...
Desempaquetando git-man (1:2.17.1-1ubuntu0.7) ...
Seleccionando el paquete git previamente no seleccionado.
Preparando para desempaquetar .../07-git_1%3a2.17.1-1ubuntu0.7_amd64.deb ...
Desempaquetando git (1:2.17.1-1ubuntu0.7) ...
Seleccionando el paquete libalgorithm-diff-perl previamente no seleccionado.
Preparando para desempaquetar .../08-libalgorithm-diff-perl_1.19.03-1_all.deb ...
Desempaquetando libalgorithm-diff-perl (1.19.03-1) ...
Seleccionando el paquete libalgorithm-diff-xs-perl previamente no seleccionado.
Preparando para desempaquetar .../09-libalgorithm-diff-xs-perl_0.04-5_amd64.deb ...
Desempaquetando libalgorithm-diff-xs-perl (0.04-5) ...
Seleccionando el paquete libalgorithm-merge-perl previamente no seleccionado.
Preparando para desempaquetar .../10-libalgorithm-merge-perl_0.08-3_all.deb ...
Desempaquetando libalgorithm-merge-perl (0.08-3) ...
Seleccionando el paquete libpython2.7-dev:amd64 previamente no seleccionado.
Preparando para desempaquetar .../11-libpython2.7-dev_2.7.17-1~18.04_amd64.deb ...
Desempaquetando libpython2.7-dev:amd64 (2.7.17-1~18.04) ...
Seleccionando el paquete libpython-dev:amd64 previamente no seleccionado.
Preparando para desempaquetar .../12-libpython-dev_2.7.15~rc1-1_amd64.deb ...
Desempaquetando libpython-dev:amd64 (2.7.15~rc1-1) ...
Seleccionando el paquete libpython-all-dev:amd64 previamente no seleccionado.
Preparando para desempaquetar .../13-libpython-all-dev_2.7.15~rc1-1_amd64.deb ...
Desempaquetando libpython-all-dev:amd64 (2.7.15~rc1-1) ...
Seleccionando el paquete python-all previamente no seleccionado.
Preparando para desempaquetar .../14-python-all_2.7.15~rc1-1_amd64.deb ...
Desempaquetando python-all (2.7.15~rc1-1) ...
Seleccionando el paquete python2.7-dev previamente no seleccionado.
Preparando para desempaquetar .../15-python2.7-dev_2.7.17-1~18.04_amd64.deb ...
Desempaquetando python2.7-dev (2.7.17-1~18.04) ...
Seleccionando el paquete python-dev previamente no seleccionado.
Preparando para desempaquetar .../16-python-dev_2.7.15~rc1-1_amd64.deb ...
Desempaquetando python-dev (2.7.15~rc1-1) ...
Seleccionando el paquete python-all-dev previamente no seleccionado.
Preparando para desempaquetar .../17-python-all-dev_2.7.15~rc1-1_amd64.deb ...
Desempaquetando python-all-dev (2.7.15~rc1-1) ...
Seleccionando el paquete python-crypto previamente no seleccionado.
Preparando para desempaquetar .../18-python-crypto_2.6.1-8ubuntu2_amd64.deb ...
Desempaquetando python-crypto (2.6.1-8ubuntu2) ...
Seleccionando el paquete python-secretstorage previamente no seleccionado.
Preparando para desempaquetar .../19-python-secretstorage_2.3.1-2_all.deb ...
Desempaquetando python-secretstorage (2.3.1-2) ...
Seleccionando el paquete python-keyring previamente no seleccionado.
Preparando para desempaquetar .../20-python-keyring_10.6.0-1_all.deb ...
Desempaquetando python-keyring (10.6.0-1) ...
Seleccionando el paquete python-keyrings.alt previamente no seleccionado.
Preparando para desempaquetar .../21-python-keyrings.alt_3.0-1_all.deb ...
Desempaquetando python-keyrings.alt (3.0-1) ...
Seleccionando el paquete python-pip-whl previamente no seleccionado.
Preparando para desempaquetar .../22-python-pip-whl_9.0.1-2.3~ubuntu1.18.04.1_all.deb ...
Desempaquetando python-pip-whl (9.0.1-2.3~ubuntu1.18.04.1) ...
Seleccionando el paquete python-pip previamente no seleccionado.
Preparando para desempaquetar .../23-python-pip_9.0.1-2.3~ubuntu1.18.04.1_all.deb ...
Desempaquetando python-pip (9.0.1-2.3~ubuntu1.18.04.1) ...
Seleccionando el paquete python-setuptools previamente no seleccionado.
Preparando para desempaquetar .../24-python-setuptools_39.0.1-2_all.deb ...
Desempaquetando python-setuptools (39.0.1-2) ...
Seleccionando el paquete python-virtualenv previamente no seleccionado.
Preparando para desempaquetar .../25-python-virtualenv_15.1.0+ds-1.1_all.deb ...
Desempaquetando python-virtualenv (15.1.0+ds-1.1) ...
Seleccionando el paquete python-wheel previamente no seleccionado.
Preparando para desempaquetar .../26-python-wheel_0.30.0-0.2_all.deb ...
Desempaquetando python-wheel (0.30.0-0.2) ...
Seleccionando el paquete python-xdg previamente no seleccionado.
Preparando para desempaquetar .../27-python-xdg_0.25-4ubuntu1_all.deb ...
Desempaquetando python-xdg (0.25-4ubuntu1) ...
Seleccionando el paquete python3-virtualenv previamente no seleccionado.
Preparando para desempaquetar .../28-python3-virtualenv_15.1.0+ds-1.1_all.deb ...
Desempaquetando python3-virtualenv (15.1.0+ds-1.1) ...
Seleccionando el paquete virtualenv previamente no seleccionado.
Preparando para desempaquetar .../29-virtualenv_15.1.0+ds-1.1_all.deb ...
Desempaquetando virtualenv (15.1.0+ds-1.1) ...
Seleccionando el paquete libyaml-dev:amd64 previamente no seleccionado.
Preparando para desempaquetar .../30-libyaml-dev_0.1.7-2ubuntu3_amd64.deb ...
Desempaquetando libyaml-dev:amd64 (0.1.7-2ubuntu3) ...
Configurando python-secretstorage (2.3.1-2) ...
Configurando python-pip-whl (9.0.1-2.3~ubuntu1.18.04.1) ...
Configurando python-setuptools (39.0.1-2) ...
Configurando git-man (1:2.17.1-1ubuntu0.7) ...
Configurando make (4.1-9.1ubuntu1) ...
Configurando python-crypto (2.6.1-8ubuntu2) ...
Configurando python-keyring (10.6.0-1) ...
Configurando liberror-perl (0.17025-1) ...
Configurando python-wheel (0.30.0-0.2) ...
Configurando libyaml-dev:amd64 (0.1.7-2ubuntu3) ...
Configurando python-keyrings.alt (3.0-1) ...
Configurando dpkg-dev (1.19.0.5ubuntu2.3) ...
Configurando python3-virtualenv (15.1.0+ds-1.1) ...
Configurando libfakeroot:amd64 (1.22-2ubuntu1) ...
Configurando python-virtualenv (15.1.0+ds-1.1) ...
Configurando libalgorithm-diff-perl (1.19.03-1) ...
Configurando libpython2.7-dev:amd64 (2.7.17-1~18.04) ...
Configurando python-pip (9.0.1-2.3~ubuntu1.18.04.1) ...
Configurando virtualenv (15.1.0+ds-1.1) ...
Configurando python2.7-dev (2.7.17-1~18.04) ...
Configurando python-all (2.7.15~rc1-1) ...
Configurando git (1:2.17.1-1ubuntu0.7) ...
Configurando python-xdg (0.25-4ubuntu1) ...
Configurando libpython-dev:amd64 (2.7.15~rc1-1) ...
Configurando build-essential (12.4ubuntu1) ...
Configurando python-dev (2.7.15~rc1-1) ...
Configurando libpython-all-dev:amd64 (2.7.15~rc1-1) ...
Configurando fakeroot (1.22-2ubuntu1) ...
update-alternatives: utilizando /usr/bin/fakeroot-sysv para proveer /usr/bin/fakeroot (fakeroot) en modo automático
Configurando libalgorithm-merge-perl (0.08-3) ...
Configurando libalgorithm-diff-xs-perl (0.04-5) ...
Configurando python-all-dev (2.7.15~rc1-1) ...
Procesando disparadores para libc-bin (2.27-3ubuntu1) ...
Procesando disparadores para man-db (2.8.3-2ubuntu0.1) ...
[email protected]:~$ mkdir OctoPrint && cd OctoPrint
[email protected]:~/OctoPrint$ virtualenv venv
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/soloelectronicos/OctoPrint/venv/bin/python2
Also creating executable in /home/soloelectronicos/OctoPrint/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
[email protected]:~/OctoPrint$ source venv/bin/activate
(venv) [email protected]:~/OctoPrint$ pip install pip --upgrade
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
(venv) [email protected]:~/OctoPrint$ pip install octoprint
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting octoprint
Downloading OctoPrint-1.4.0-py2.py3-none-any.whl (3.3 MB)
|████████████████████████████████| 3.3 MB 1.6 MB/s
Collecting websocket-client<0.57,>=0.56
Downloading websocket_client-0.56.0-py2.py3-none-any.whl (200 kB)
|████████████████████████████████| 200 kB 5.8 MB/s
Collecting pylru<1.3,>=1.2
Downloading pylru-1.2.0.tar.gz (18 kB)
Collecting psutil<5.7,>=5.6.5
Downloading psutil-5.6.7.tar.gz (448 kB)
|████████████████████████████████| 448 kB 3.8 MB/s
Collecting sarge==0.1.5post0
Downloading sarge-0.1.5.post0.tar.gz (17 kB)
Collecting flask<0.13,>=0.12
Downloading Flask-0.12.5-py2.py3-none-any.whl (81 kB)
|████████████████████████████████| 81 kB 1.6 MB/s
Collecting Flask-Babel<0.13,>=0.12
Downloading Flask-Babel-0.12.2.tar.gz (44 kB)
|████████████████████████████████| 44 kB 511 kB/s
Collecting werkzeug<0.17,>=0.16
Downloading Werkzeug-0.16.1-py2.py3-none-any.whl (327 kB)
|████████████████████████████████| 327 kB 5.2 MB/s
Collecting tornado==4.5.3
Downloading tornado-4.5.3.tar.gz (484 kB)
|████████████████████████████████| 484 kB 5.3 MB/s
Collecting frozendict<1.3,>=1.2
Downloading frozendict-1.2.tar.gz (2.6 kB)
Collecting wrapt<1.12,>=1.11.2
Downloading wrapt-1.11.2.tar.gz (27 kB)
Collecting monotonic<1.6,>=1.5; python_version < "3"
Downloading monotonic-1.5-py2.py3-none-any.whl (5.3 kB)
Collecting PyYAML<6,>=5.1
Downloading PyYAML-5.3.1.tar.gz (269 kB)
|████████████████████████████████| 269 kB 5.2 MB/s
Collecting netifaces<0.11,>=0.10.9
Downloading netifaces-0.10.9-cp27-cp27mu-manylinux1_x86_64.whl (31 kB)
Collecting semantic-version<2.9,>=2.8
Downloading semantic_version-2.8.4-py2.py3-none-any.whl (15 kB)
Collecting scandir<1.11,>=1.10; python_version < "3"
Downloading scandir-1.10.0.tar.gz (33 kB)
Collecting chainmap<1.1,>=1.0.3; python_version < "3"
Downloading chainmap-1.0.3.tar.gz (6.3 kB)
Collecting Click<8,>=7
Downloading click-7.1.1-py2.py3-none-any.whl (82 kB)
|████████████████████████████████| 82 kB 275 kB/s
Collecting awesome-slugify<1.7,>=1.6.5
Downloading awesome-slugify-1.6.5.tar.gz (8.4 kB)
Collecting pkginfo<1.6,>=1.5.0.1
Downloading pkginfo-1.5.0.1-py2.py3-none-any.whl (25 kB)
Collecting Flask-Login<0.5,>=0.4.1
Downloading Flask-Login-0.4.1.tar.gz (14 kB)
Collecting Jinja2<2.9,>=2.8.1
Downloading Jinja2-2.8.1-py2.py3-none-any.whl (264 kB)
|████████████████████████████████| 264 kB 9.1 MB/s
Collecting markdown<3.2,>=3.1
Downloading Markdown-3.1.1-py2.py3-none-any.whl (87 kB)
|████████████████████████████████| 87 kB 1.3 MB/s
Collecting cachelib<0.2,>=0.1
Downloading cachelib-0.1.tar.gz (9.8 kB)
Collecting requests<3,>=2.22.0
Downloading requests-2.23.0-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 1.4 MB/s
Collecting Flask-Assets<0.13,>=0.12
Downloading Flask-Assets-0.12.tar.gz (22 kB)
Collecting watchdog<0.10,>=0.9.0
Downloading watchdog-0.9.0.tar.gz (85 kB)
|████████████████████████████████| 85 kB 909 kB/s
Collecting netaddr<0.8,>=0.7.19
Downloading netaddr-0.7.19-py2.py3-none-any.whl (1.6 MB)
|████████████████████████████████| 1.6 MB 5.9 MB/s
Collecting feedparser<5.3,>=5.2.1
Downloading feedparser-5.2.1.tar.bz2 (192 kB)
|████████████████████████████████| 192 kB 6.7 MB/s
Collecting futures<3.4,>=3.3; python_version < "3"
Downloading futures-3.3.0-py2-none-any.whl (16 kB)
Collecting future<0.19,>=0.18.2
Downloading future-0.18.2.tar.gz (829 kB)
|████████████████████████████████| 829 kB 4.9 MB/s
Collecting typing<4,>=3.7.4.1; python_version < "3"
Downloading typing-3.7.4.1-py2-none-any.whl (26 kB)
Collecting rsa<5,>=4.0
Downloading rsa-4.0-py2.py3-none-any.whl (38 kB)
Collecting sentry-sdk==0.13.2
Downloading sentry_sdk-0.13.2-py2.py3-none-any.whl (91 kB)
|████████████████████████████████| 91 kB 2.0 MB/s
Collecting regex!=2018.11.6
Downloading regex-2020.4.4.tar.gz (695 kB)
|████████████████████████████████| 695 kB 4.4 MB/s
Collecting filetype<2,>=1.0.5
Downloading filetype-1.0.6-py2.py3-none-any.whl (15 kB)
Collecting pyserial<3.5,>=3.4
Downloading pyserial-3.4-py2.py3-none-any.whl (193 kB)
|████████████████████████████████| 193 kB 4.3 MB/s
Collecting emoji<0.6,>=0.5.4
Downloading emoji-0.5.4.tar.gz (43 kB)
|████████████████████████████████| 43 kB 96 kB/s
Collecting blinker<1.5,>=1.4
Downloading blinker-1.4.tar.gz (111 kB)
|████████████████████████████████| 111 kB 6.2 MB/s
Collecting six
Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
Collecting itsdangerous>=0.21
Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting Babel>=2.3
Downloading Babel-2.8.0-py2.py3-none-any.whl (8.6 MB)
|████████████████████████████████| 8.6 MB 45 kB/s
Collecting singledispatch
Downloading singledispatch-3.4.0.3-py2.py3-none-any.whl (12 kB)
Collecting certifi
Downloading certifi-2020.4.5.1-py2.py3-none-any.whl (157 kB)
|████████████████████████████████| 157 kB 4.6 MB/s
Collecting backports_abc>=0.4
Downloading backports_abc-0.5-py2.py3-none-any.whl (5.2 kB)
Collecting Unidecode<0.05,>=0.04.14
Downloading Unidecode-0.04.21-py2.py3-none-any.whl (228 kB)
|████████████████████████████████| 228 kB 6.4 MB/s
Collecting MarkupSafe
Downloading MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl (24 kB)
Requirement already satisfied: setuptools>=36 in ./venv/lib/python2.7/site-packages (from markdown<3.2,>=3.1->octoprint) (44.1.0)
Collecting idna<3,>=2.5
Downloading idna-2.9-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 1.5 MB/s
Collecting chardet<4,>=3.0.2
Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
|████████████████████████████████| 133 kB 5.0 MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
Downloading urllib3-1.25.9-py2.py3-none-any.whl (126 kB)
|████████████████████████████████| 126 kB 28 kB/s
Collecting webassets>=0.11.1
Downloading webassets-2.0.tar.gz (288 kB)
|████████████████████████████████| 288 kB 4.9 MB/s
Collecting argh>=0.24.1
Downloading argh-0.26.2-py2.py3-none-any.whl (30 kB)
Collecting pathtools>=0.1.1
Downloading pathtools-0.1.2.tar.gz (11 kB)
Collecting pyasn1>=0.1.3
Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
|████████████████████████████████| 77 kB 361 kB/s
Collecting pytz>=2015.7
Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)
|████████████████████████████████| 509 kB 7.8 MB/s
Building wheels for collected packages: pylru, psutil, sarge, Flask-Babel, tornado, frozendict, wrapt, PyYAML, scandir, chainmap, awesome-slugify, Flask-Login, cachelib, Flask-Assets, watchdog, feedparser, future, regex, emoji, blinker, webassets, pathtools
Building wheel for pylru (setup.py) ... done
Created wheel for pylru: filename=pylru-1.2.0-py2-none-any.whl size=15691 sha256=675dd90404356bf5ed34ec3e564e0123e4bbc29ddcf0631c09a82a9957be7844
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/ad/dc/4f/254e963083f1120664b393883428784ed55be2d494f3e3f720
Building wheel for psutil (setup.py) ... done
Created wheel for psutil: filename=psutil-5.6.7-cp27-cp27mu-linux_x86_64.whl size=258804 sha256=3af6bf302df94d32bcfb8a925cccce28875b6d63d2640eed8f9abe20b5f2a271
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/b6/8c/7a/f28c6f4fa509c6a274590af7eef26e5a206ace8753c59a4257
Building wheel for sarge (setup.py) ... done
Created wheel for sarge: filename=sarge-0.1.5.post0-py2-none-any.whl size=18869 sha256=f23c027afdd626f12a5d7d0529ccd01f3ca9a226e274aafe7c4c03554311b6a2
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/aa/ac/c4/dcefe7565f76a83c484e85a2ba49e3a294eebaddc39d4ce35e
Building wheel for Flask-Babel (setup.py) ... done
Created wheel for Flask-Babel: filename=Flask_Babel-0.12.2-py2-none-any.whl size=9263 sha256=83b1bcfb83dd4b9b318f42f30ee00714874ce2048194a34baff1485003446932
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/ac/10/c9/c58c29cda855cf63d2e4d47c01b619515b36f73b8199ef009e
Building wheel for tornado (setup.py) ... done
Created wheel for tornado: filename=tornado-4.5.3-cp27-cp27mu-linux_x86_64.whl size=431491 sha256=650c2f68942b6bb1cf7094a05077432c656f6c0a8db5390fc7e91192db185ebd
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/6b/95/34/e25e3530e2ed9ed153aec63e467140ac4aa392fcac03691276
Building wheel for frozendict (setup.py) ... done
Created wheel for frozendict: filename=frozendict-1.2-py2-none-any.whl size=3147 sha256=7c9b482a62531cbdee122a5a8a994b0030b8b9aafc3809441ad0c06bbf6ed3ce
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/be/5d/07/a6bd784a07cfa099fa10004afb695654e5a92027092d234b71
Building wheel for wrapt (setup.py) ... done
Created wheel for wrapt: filename=wrapt-1.11.2-cp27-cp27mu-linux_x86_64.whl size=49269 sha256=666d153987e49f9fcadf505f66f5dca3bb0873c44b73baf9bd4ed3d507189ba9
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/aa/0a/cb/e31e525e074359f542ff2240747f3d4cc1dad9c895bb6df70c
Building wheel for PyYAML (setup.py) ... done
Created wheel for PyYAML: filename=PyYAML-5.3.1-cp27-cp27mu-linux_x86_64.whl size=194714 sha256=9e3b68b67abb78274f7a2ad7a8b05b021911e1e93977612e30f9a98c3f764297
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/d1/d5/a0/3c27cdc8b0209c5fc1385afeee936cf8a71e13d885388b4be2
Building wheel for scandir (setup.py) ... done
Created wheel for scandir: filename=scandir-1.10.0-cp27-cp27mu-linux_x86_64.whl size=33234 sha256=4476c72af7bdef553fc3ee2e8c819d0bf2a13d1418c022e8d5049c4ef74c2452
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/58/2c/26/52406f7d1f19bcc47a6fbd1037a5f293492f5cf1d58c539edb
Building wheel for chainmap (setup.py) ... done
Created wheel for chainmap: filename=chainmap-1.0.3-py2-none-any.whl size=4962 sha256=8bcf080b081b2cf2dc20ea7a5954701ce484968654700ed90a98fbf341c6904e
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/b1/0b/42/1e93b86bd3487fd8a4c6455aea79e7f4b7bbc229b24802d336
Building wheel for awesome-slugify (setup.py) ... done
Created wheel for awesome-slugify: filename=awesome_slugify-1.6.5-py2-none-any.whl size=8351 sha256=b4cff01fec24ff6d29ce6eb4bcd3aa30085842740e1a4b88cbc51042755feda9
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/97/b6/b0/9a83c3d0bf0fb904a13fc4cff6aa539cf3bcf21f2965a1c241
Building wheel for Flask-Login (setup.py) ... done
Created wheel for Flask-Login: filename=Flask_Login-0.4.1-py2.py3-none-any.whl size=15933 sha256=56b0fbb535255b68ae789a98f82aa569745fc68adbf3e00574c182994da751c4
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/72/fb/8c/14220bd0fa946a657173c0775d81c23b371ed3ba7dc7b0964e
Building wheel for cachelib (setup.py) ... done
Created wheel for cachelib: filename=cachelib-0.1-py2-none-any.whl size=13017 sha256=324b56ec74d28af9a78f7526b5f8c45b453a15d16cb97cbd77bca8ad19357e46
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/33/a6/f6/c9b0f8cdc86d0ef35777789797afc893cce477a39500ee28d2
Building wheel for Flask-Assets (setup.py) ... done
Created wheel for Flask-Assets: filename=Flask_Assets-0.12-py2-none-any.whl size=8472 sha256=f5f9af6a76d59df6560584f4b271609ae3fd6eafdcf3d0e6d7fdd4d764e43764
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/e2/bd/05/5d056fac0a9041b7d18a79f86fb93f20caf7334dd51eba2af6
Building wheel for watchdog (setup.py) ... done
Created wheel for watchdog: filename=watchdog-0.9.0-py2-none-any.whl size=73651 sha256=47edff5f90cf70785cff3a2d1689285dafee245b5dd613193c2511b4f9e8e56e
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/29/d7/fb/9194ada05f6dfcaea7da16150cd523f783ad918b35da6ee066
Building wheel for feedparser (setup.py) ... done
Created wheel for feedparser: filename=feedparser-5.2.1-py2-none-any.whl size=44995 sha256=63b177c5781d1eaa5ffe9be07e6b61162b747bc15fce48d6ec0392a0d15daec6
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/d4/3c/a1/fd7bcf389a776ce0be95e1e3176421b92dd24d0b78a58908a1
Building wheel for future (setup.py) ... done
Created wheel for future: filename=future-0.18.2-py2-none-any.whl size=502566 sha256=e24550dc4db23f5d47175e58e24a01be299d9981359804646ec70da01f12f6b4
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/5f/11/0c/aad680baf5ef4fbcbab992c9f03e1130357e0c173a4fdabfff
Building wheel for regex (setup.py) ... done
Created wheel for regex: filename=regex-2020.4.4-cp27-cp27mu-linux_x86_64.whl size=344932 sha256=53171cf495b86f57fcd40646a73b75c61dada76ee3d0f46df694576325e1e366
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/9d/6c/47/0e5edf34d09bdab91b48f150ca86fdb0b0f26666a8f7df8ad4
Building wheel for emoji (setup.py) ... done
Created wheel for emoji: filename=emoji-0.5.4-py2-none-any.whl size=42174 sha256=cc29db088a91d6de2e21ebce25792d471a2970f523f1e60a2ab9b6e572fe8a3f
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/01/fb/20/2f71ca373e9334ab3bc6edeac956519d94ec3dcc9fad7c3eb5
Building wheel for blinker (setup.py) ... done
Created wheel for blinker: filename=blinker-1.4-py2-none-any.whl size=13451 sha256=b4ae6cbf1d76ad6f48d8a8e13a7c7da0f948976f356a899d619a262aafeae6dc
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/7b/1f/a0/7ce496c69b9be7cef75645749e256d5ef2dc9d08336f92248b
Building wheel for webassets (setup.py) ... done
Created wheel for webassets: filename=webassets-2.0-py2-none-any.whl size=142871 sha256=ea4a2248dbda0be345a6caef74971b54a65c58ae1cd05654d3ac6e509f739740
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/e2/df/2b/c142c0570f34a8e56187c83045b006e56d5918869ff94a56f6
Building wheel for pathtools (setup.py) ... done
Created wheel for pathtools: filename=pathtools-0.1.2-py2-none-any.whl size=8784 sha256=ac6a73ac9a18654cc20f286ada97c2f2910bc6b7ed85aecef000c2d0e17ebd95
Stored in directory: /home/soloelectronicos/.cache/pip/wheels/da/24/4e/5b716376944d90d1406666897dbd020764405d5242afb5b236
Successfully built pylru psutil sarge Flask-Babel tornado frozendict wrapt PyYAML scandir chainmap awesome-slugify Flask-Login cachelib Flask-Assets watchdog feedparser future regex emoji blinker webassets pathtools
Installing collected packages: six, websocket-client, pylru, psutil, sarge, werkzeug, Click, itsdangerous, MarkupSafe, Jinja2, flask, pytz, Babel, Flask-Babel, singledispatch, certifi, backports-abc, tornado, frozendict, wrapt, monotonic, PyYAML, netifaces, semantic-version, scandir, chainmap, regex, Unidecode, awesome-slugify, pkginfo, Flask-Login, markdown, cachelib, idna, chardet, urllib3, requests, webassets, Flask-Assets, argh, pathtools, watchdog, netaddr, feedparser, futures, future, typing, pyasn1, rsa, sentry-sdk, filetype, pyserial, emoji, blinker, octoprint
Successfully installed Babel-2.8.0 Click-7.1.1 Flask-Assets-0.12 Flask-Babel-0.12.2 Flask-Login-0.4.1 Jinja2-2.8.1 MarkupSafe-1.1.1 PyYAML-5.3.1 Unidecode-0.4.21 argh-0.26.2 awesome-slugify-1.6.5 backports-abc-0.5 blinker-1.4 cachelib-0.1 certifi-2020.4.5.1 chainmap-1.0.3 chardet-3.0.4 emoji-0.5.4 feedparser-5.2.1 filetype-1.0.6 flask-0.12.5 frozendict-1.2 future-0.18.2 futures-3.3.0 idna-2.9 itsdangerous-1.1.0 markdown-3.1.1 monotonic-1.5 netaddr-0.7.19 netifaces-0.10.9 octoprint-1.4.0 pathtools-0.1.2 pkginfo-1.5.0.1 psutil-5.6.7 pyasn1-0.4.8 pylru-1.2.0 pyserial-3.4 pytz-2019.3 regex-2020.4.4 requests-2.23.0 rsa-4.0 sarge-0.1.5.post0 scandir-1.10.0 semantic-version-2.8.4 sentry-sdk-0.13.2 singledispatch-3.4.0.3 six-1.14.0 tornado-4.5.3 typing-3.7.4.1 urllib3-1.25.9 watchdog-0.9.0 webassets-2.0 websocket-client-0.56.0 werkzeug-0.16.1 wrapt-1.11.2

Actualización

OctoPrint debería poder  actualizarse automáticamente y también permitirle cambiar a otros canales de lanzamiento de forma inmediata.

Sin embargo, si por alguna razón desea o necesita realizar algo de esto manualmente, ejecute los siguientes comandos para instalar <versión> de OctoPrint:

source ~/OctoPrint/venv/bin/activate

pip install octoprint==<version>

p.ej.

fuente ~ / OctoPrint / venv / bin / enable
pip install octoprint == 1.3.12rc1

Admitir reinicio / apagado a través del menú del sistema de OctoPrint

En Configuración> Comandos, configure los siguientes comandos:

Reinicio de  OctoPrint:

sudo service octoprint restart

Reinicio  del sistema:

 sudo shutdown -r now

Apagado del sistema:

sudo shutdown -h now

 

Arranque automático

Para  que Octoprint   arranque automático al iniciar el sistema ,descargue los archivos de script de inicio del repositorio de OctoPrint, muévalos a sus respectivas carpetas y haga que el script de inicio sea ejecutable:

wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init && sudo mv octoprint.init /etc/init.d/octoprint

wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default && sudo mv octoprint.default / etc / default / octoprint

sudo chmod + x /etc/init.d/octoprint

Ajuste las rutas a su binario octoprint en / etc / default / octoprint. Si lo configura en un virtualenv como se describe anteriormente, asegúrese de que su / etc / default / octoprint se modifique así:

DAEMON = / home / pi / OctoPrint / venv / bin / octoprint

¡Observe también el # eliminado al comienzo de la línea, descomentándolo y haciéndolo efectivo!

Luego, agregue el script al inicio automático utilizando los valores predeterminados de sudo update-rc.d octoprint.

Esto también le permitirá iniciar / detener / reiniciar el demonio OctoPrint a través de

sudo service octoprint {start|stop|restart}

 

Puerto 80

Si desea tener una URL más agradable o simplemente necesita que OctoPrint se ejecute en el puerto 80 (puerto predeterminado de http) debido a algunas restricciones de red, se recomienda usar HAProxy 358 como proxy inverso en lugar de configurar OctoPrint para que se ejecute en el puerto 80.

Esto tiene lo siguiente ventajas:

    • OctoPrint no necesita ejecutarse con privilegios de root, que necesitaría para poder vincularse al puerto 80 gracias a las restricciones de puertos privilegiados de Linux
    • También puede hacer que mjpg-streamer sea accesible en el puerto 80
    • Puede agregar autenticación a OctoPrint
    • Dependiendo de la versión de HAProxy, también puede usar SSL para acceder a OctoPrint

La configuración es la siguiente:

 sudo apt install haproxy

Estoy usando la siguiente configuración en /etc/haproxy/haproxy.cfg, para más ejemplos eche un vistazo aquí 864:

option httplog
option dontlognull
retries 3
option redispatch
option http-server-close
option forwardfor
maxconn 2000
timeout connect 5s
timeout client 15min
timeout server 15min

frontend public
bind :::80 v4v6
use_backend webcam if { path_beg /webcam/ }
default_backend octoprint

backend octoprint
reqrep ^([^\ :]*)\ /(.*) \1\ /\2
option forwardfor
server octoprint1 127.0.0.1:5000

backend webcam
reqrep ^([^\ :]*)\ /webcam/(.*) \1\ /\2
server webcam1 127.0.0.1:8080

 

Esto hará que OctoPrint sea accesible en http: // <IP > / y hará que mjpg-streamer sea accesible en http: // <IP > / webcam /.

También deberá modificar / etc / default / haproxy y habilitar HAProxy estableciendo ENABLED en 1. Después de eso, puede iniciar HAProxy emitiendo el siguiente comando

sudo service haproxy start

 

Señalar su navegador a http: // <la IP > debería saludarlo con la interfaz de usuario de OctoPrint. Ahora abra la configuración y cambie a la pestaña de la cámara web o, alternativamente, abra ~ / .octoprint / config.yaml.  Establezca la URL de transmisión de la cámara web desde http: // <IP >: 8080 /? Action = stream a / webcam /? Action = stream (deje la instantánea en http://127.0.0.1:8080/?action=snapshot! ) y vuelva a cargar la página.

Si todo funciona, puede agregar las siguientes líneas a ~ / .octoprint / config.yaml (solo créelo si aún no existe) para que el servidor se vincule solo a la interfaz de lopback

server:

host: 127.0.0.1


Reinicie el servidor. OctoPrint aún debería estar disponible en el puerto 80, incluida la alimentación de la cámara web (si está habilitada)

 

 

Soporte de webcam

Si también desea soporte para cámara web y timelapse, deberá descargar y compilar MJPG-Streamer:

cd ~
sudo apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=.
make

 

Los paquetes requeridos dependen de la versión subyacente de Debian! Lo anterior es lo que debería funcionar en las imágenes actuales

Con suerte, esto debería ejecutarse sin ningún error de compilación. Entonces debería poder iniciar el servidor de la cámara web usando:

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"

 

Esto debería dar el siguiente resultado:

MJPG Streamer Version: svn rev:
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
[...]
o: www-folder-path...: disabled
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled

 

Para algunas cámaras web (incluida la PS3 Eye), deberá forzar el modo YUV mediante el siguiente comando de inicio:

./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"

 

Tenga en cuenta que el modo YUV ejercerá tensión adicional en la CPU de su PC , lo que reducirá su rendimiento, posiblemente hasta el punto de causar problemas de impresión. Si su cámara requiere el parámetro -y para funcionar, considere reemplazarlo por uno que no lo haga.

 

Ahora apunte en su navegador a

http: // : 8080 /? action = stream,

, por lo debería ver una imagen en movimiento a 5 fps.  (Si recibe un mensaje de error sobre los archivos o directorios faltantes, debería ayudar al complemento de salida con -o “./output_http.so -w ./www”).

Abra el cuadro de diálogo de configuración de OctoPrint y en Webcam & Timelapse configuró lo siguiente:

Reinicie el servidor OctoPrint, borre el caché en su navegador y vuelva a cargar la página OctoPrint. Ahora debería ver la transmisión desde la cámara web en la pestaña “Control” y una pestaña “Timelapse” con opciones.

Si desea poder iniciar y detener mjpeg-streamer desde OctoPrint, coloque lo siguiente en / home /XXXX / scripts / webcam:

#!/bin/bash
# Start / stop streamer daemon

case "$1" in
start)
/home/pi/scripts/webcamDaemon >/dev/null 2>&1 &
echo "$0: started"
;;
stop)
pkill -x webcamDaemon
pkill -x mjpg_streamer
echo "$0: stopped"
;;
*)
echo "Usage: $0 {start|stop}" >&2
;;
esac

Ponga esto en /home/XXXX/scripts/webcamDaemon:

#!/bin/bash

MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"

# init configuration
camera="auto"
camera_usb_options="-r 640x480 -f 10"
camera_raspi_options="-fps 10"

if [ -e "/boot/octopi.txt" ]; then
    source "/boot/octopi.txt"
fi

# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
    input=$1
    pushd $MJPGSTREAMER_HOME
    echo Running ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
    LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
    popd
}

# starts up the RasPiCam
function startRaspi {
    logger "Starting Raspberry Pi camera"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}

# starts up the USB webcam
function startUsb {
    logger "Starting USB webcam"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options"
}

# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version

# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options

# keep mjpg streamer running if some camera is attached
while true; do
    if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then
        startUsb
    elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
        startRaspi
    fi

    sleep 120
done

Asegúrese de que ambos archivos sean ejecutables:

chmod + x / home / XXX / scripts / webcam
chmod + x / home / XXXX / scripts / webcamDaemon

Si desea diferentes opciones de cámara, colóquelas en /boot/octopi.txt o modifique el script en consecuencia.

Si desea el inicio automático de la cámara web, debe agregar la siguiente línea a /etc/rc.local (solo asegúrese de colocarla sobre la línea que dice la salida 0).

/ inicio / pi / scripts / webcam start

Si desea iniciar y detener el servidor de la cámara web a través del menú del sistema de OctoPrint, agregue lo siguiente a config.yaml:

 

system:
actions:
- action: streamon
command: /home/pi/scripts/webcam start
confirm: false
name: Start video stream
- action: streamoff
command: sudo /home/pi/scripts/webcam stop
confirm: false
name: Stop video stream

 

 

 

Mas información  aqui

 

Servidor para impresora 3d con Orange Pi PC


 

orangepi

 

 

 

En esta ocasión usaremos  la Orange Pi PC  para quitarnos el engorro de tener que colocar los modelos 3D en la tarjeta microsd cada vez que queramos imprimir o pasar a enviarlo por cable,

Asimismo el sw que vamos a instalar  trae otras utilidades como la de poder ver en tiempo real como va nuestra impresión desde cualquier lado gracias a una webcam que podemos conectarle, ver información y configuración de la impresora y de la impresión, que la impresora se apague sola cuando acabe de imprimir e incluso podemos hacer todas estas operaciones  desde nuestro teléfono móvil entre otras muchas opciones.

Antes de nada debemos  primero instalar un sistema operativo a  la Orange Pi PC , después accederemos por red a la misma,le  haremos una configuración básica, y luego le instalaremos el programa Octoprint (programa para manejar la impresora 3D de forma remota) que el sw que se encargara de toda la gestión con la impresora 3d

 

 

 

 

 

 

Shenzhen Xunlong dispone de la  placa Orange Pi PC ( y muchas variantes mas )  muy similares  em eencia  a la Raspberry Pi  pero con un coste   bastante inferior   siendo ademas abiertas y hackeables. Esta placa de desarrollo low cost compite abiertamente   con  otras tantas existentes  donde  la mas destacable es también la Banana Pi  ,  pretendiendo todas  ellas  competir  con la Raspberry Pi.

Esta placa integra una CPU basada en ARM Cortex A7 Dualcore y Quadcore (en la versión más potente), una GPU Mali compatible con OpenGL y 1GB DDR3 RAM, posibilidad de direccionar hasta 64GB de almacenamiento mediante tarjetas o por un puerto SATA, conexiones para audio, conector CSI para cámara, HDMI, VGA, USB OTG, USB 2.0, alimentación, GPIOs, IR, AV, receptor de infrarrojos, Ethernet RJ45 10/100M, tres puertos USB 2.0, uno microUSB OTG, un micrófono, un interfaz CSI para cámara y un encabezado de 40 pines compatible con Raspberry Pi,

Sobre diferencias respecto  a la original,ciertamente casi todas las placas SBC son bastante similares orientándose para ser clones  mas baratos  de  la Raspberry Pi. Es cuestión de gustos o necesidades, pues  como hemos visto no se pueden alegar diferencias sustanciales, excepto porque se basan en arquitecturas diferentes a la ARM (como las basadas en x86) de la cual se comenta tienden a calentarse mucho precisando normalmente de un radiador pasivo o si es posible mejor  activo (equipado con un miniventilador).

orange_pi

 

INSTALACION DE  UN SISTEMA OPERATIVO A LA ORANGE PI

Como la Orange Pi PC viene vacía tendremos que instalare un sistema operativo que la controle.

Nosotros usaremos el recomendado por el fabricante (armbian)  por lo que   también necesitaremos una microsd a poder ser de más de 8gb , el programa “SD Card Formatter” para formatear la microsd y el programa “Win32 Diskimager” para instalarle la imagen del armbian.

Los pasos a seguir son los siguientes:

  1.  Accedemos en un pc cualquiera con windows a la web de “armbian” y descargamos la última versión disponible:  https://www.armbian.com/orange-pi-pc/ (pincharemos en la descarga de  “Debian server”).armbian.png
  2. Si no lo tenemos instalado ,descargamos e instalamos el programa “SD Card Formatter” de:https://www.sdcard.org/downloads/formatter_4/eula_windows/
  3. Si no lo tenemos instalado ,descargamos el programa “Win32 Diskimager” de:
    https://sourceforge.net/projects/win32diskimager/files/Archive/
  4. Conectamos una microsd a nuestro pc Windows mediante un adaptador o lector de tarjetas.
  5.  Instalamos y ejecutamos “SD Card Formatter“, donde pone “Drive” deberá aparecer la letra de la unidad que representa a la microsd .Importamte :No hace falta mencionar que es muy importante asegurarse de que haber seleccionado la unidad donde esta conectada la microsd antes de continuar y no otra unidad pues obviamente se  va  borrar todo su contenido
  6. Pulsaremos en “Option” y donde pone “FORMAT SIZE ADJUSTMENT” seleccionaremos la opción “ON” para que la partición ocupe toda la microsd y  después le damos a “Format” y esperamos.
  7. Al  descargar la imagen de Debian el fichero viene comprimido en un fichero .7z, asi que debe descomprimirlo con el  programa  7zip  que  es gratuito  y open sw .Si no lo tiene instalado ,puede descargarlo desde http://www.7-zip.org/ 7zip.png
  8. Ahora instalamos y ejecutamos “Win32 Diskimager”
  9. Donde ponga “Image file” debemos cargar el archivo de armbian .img que  hemos descomprimido con el 7zip en el paso anterior  y donde pone “Device” debemos asegurarnos de nuevo que es la letra que representa nuestra microsd y luego pulsamos “Write“y esperamos.     
  10. Ya hemos acabado el proceso de instalación del sistema operativo en la Orange Pi PC . Ahora debemos quitar la microsd de nuestro ordenador e introducirla en su ranura/zócalo correspondiente de la Orange Pi PC

 

ACCEDIENDO A LA ORANGE PI PC POR RED LOCAL

Para acceder a la Orange Pi de forma remota tendremos que realizar los siguientes pasos:

1- Tenemos que conectar la Orange Pi a nuestro router con un cable de red ethernet y alimentarla con +5VDC.
2-En en nuestro ordenador tenemos que descargar un cliente SSH para
conectarnos  a la Orange Pi  como por ejemplo  el programa “Putty” que podemos descargar de:http://www.putty.org/
3-  Para usar el “Putty” lo único que hay que hacer es colocar la dirección IP que tiene la Orange Pi PC en nuestra red local donde pone “Host Name (or IP ADDRESS)” y luego pulsar en “Open” para acceder a la Orange Pi  para eso primero necesitamos saber la IP de la misma.

4-Una forma muy sencilla de obtener la IP de la Orange Pi PC es instalar el programa Fing en nuestro smartphone Android (debe estar conectado por wifi a nuestra misma red )

5 – Ya tenemos la IP de la Orange Pi que era lo que nos hacía falta para acceder a ella por SSH, ahora abrimos el “Putty” y donde pone “Host Name (or IP ADDRESS)” pegamos la IP y le damos a “Open”. Se nos abrirá una consola desde donde a partir de ahora interactuaremos con la Orange Pi

6- Lo primero que te pide es el usuario administrador para acceder al sistema, por defecto en “Armbian” es: root (lo escribimos y pulsamos enter). A continuación nos pedirá una contraseña; por defecto es:1234

7 – A continuación volverá a pedirá que cambie la contraseña del usuario root, primero introducimos la contraseña actual de nuevo:1234   y después introducimos la nueva contraseña larga de al menos 8 caracteres  y la repetimos para confirmar ( esta sera la nueva  contraseña  que tendra que usar para acceder a partir de ahora)

8- Para acabar el primer acceso nos pedirá que creemos un nuevo usuario, escribimos el
nombre que queramos y pulsamos enter. A continuación nos preguntará información que podemos dejar en blanco pulsando enter hasta que nos pregunte si queremos guardar el usuario, pulsamos la tecla Y (de yes) y luego enter y ya hemos acabado con el apartado de acceso a orange pi PC

CONFIGURACIÓN BÁSICA DE LA ORANGE PI PC

Ahora vamos a hacer una configuración básica para instalarle el Octoprint después.

  1. – Para empezar  lo mejor es reiniciar el sistema con:
    sudo reboot (cuando introduzca el omando el “Putty” se cerrará).
  2.  Esperamos a que se reinicie la Orange Pi y volvemos a abrir el “Putty” y a colocar la IP de la Orange Pi  para conectarnos de nuevo con el usuario root y con la nueva contraseña
  3.  Ahora nos movemos a la carpeta sources.list.d con el comando:
    cd /etc/apt/sources.list.d/
  4.  Aquí vamos a añadir un nuevo repositorio a la Orange Pi para que pueda descargar paquetes para sus programas cuando le haga falta, para eso tenemos que crear un archivo con el programa nano (el “block de notas” de linux xD) con el comando:sudo nano raspbian.list
  5. Se abrirá una nueva pantalla donde deberás pegar la siguiente línea:deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free
  6.  Una vez hayas pegado la línea pulsa Ctrl + X, luego pulsa la letra Y y luego e al enter y Ctrl+x para salir del editor.
  7. – Una vez añadido  solo para el caso de otras placas con WIFI(por ejemplo la Orange Pi ZERO)  ,la IP con la que accedemos a la Orange Pi  se la ha dado tu router de forma dinámica/automática lo cual  quiere decir que en alguna ocasión podría cambiar y esto no es práctico a la hora de usar el Octoprint, por lo tanto tendreiamos  que ponerle una IP fija y única que no cambie tanto para el acceso de la Orange Pi  por cable de red.Para eso  usariamos el comando llamao “nmtui”, para ello ponemos:sudo apt-get install NetworkManager-tui   sudo apt-get install nmtui .  Riniciarimos la red y luego el sistema (lo cual nos cerrará el “Putty”) con:
    sudo /etc/init.d/networking restart  sudo reboot
  8. Ahora  revisamos si necesita instalar algún paquete nuevo y reiniciamos con:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
PD: Es posible que en algún momento de alguna instalación se pare y te pregunte si quieres continuar por seguridad, pulsa la tecla Y y luego enter para continuar.

 

 

INSTALACIÓN DE OCTOPRINT EN LA ORANGE PI

Ahora y por último vamos a instalar el programa Octoprint a nuestra Orange Pi , para ello:

  1.  Primero creamos un usuario llamado octoprint y le ponemos los privilegios necesarios con:
    sudo adduser octoprint
    sudo usermod -a -G tty octoprint
    sudo usermod -a -G dialout octoprint
    sudo adduser octoprint sudo
  2. Ahora ejecutamos el siguiente comando para editar el privilegio de administración del usuario octoprint:
    sudo visudo
  3. Se nos abrirá un archivo en el que tenemos que copiar y pegar la siguiente línea al final de todo el documento:
    octoprint ALL=(ALL) NOPASSWD:ALL
    Una vez haya pegado la línea pulsa Ctrl + X, luego pulsa la letra Y y Enter. Para salir del editor usaremos Ctrl+x
  4. Ahora quitamos la contraseña del usuario Octoprint con privilegios con el siguiente
    comando e instalamos todos los paquetes y actualizaciones necesarias para el octoprint:
    sudo passwd octoprint -d
    sudo apt-get install python-pip python-dev g
  5. Vamos a la carpeta raíz de este usuario con:
    cd ~
  6. Instalamos de nuevo paquetes necesarios para el octoprint usando por orden estos
    comandos:
    wget https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz
    tar -zxf pyserial-2.7.tar.gz
    cd pyserial-2.7
    sudo python setup.py install
    sudo apt-get update
    sudo apt-get upgrade
  7.  Ahora el paso definitivo para instalar el octoprint, usaremos por orden estos comandos para su instalación:
    cd ~
    git clone https://github.com/foosel/OctoPrint.git
    cd OctoPrint
    sudo python setup.py install
  8.  Ya tenemos instalado el octoprint, lo único que tendríamos que hacer para iniciarlo es usar el comando:
    Octoprint

Lamentablemente  ocurre una cosa: cuando apaguemos la Orange Pi y la volvamos a encender el octoprint estará apagado, así que lo que podemos hacer por comodidad es crear un script para  hacer que se inicie automáticamente el octoprint cuando encendamos la Orange Pi :

  1.  Nos logeamos como superusuario con:
    sudo su
  2.  Vamos a la raíz y creamos un archivo llamado octoprint.sh con:
    cd ~
    sudo nano octoprint.sh
  3. Ahora se nos abrirá un archivo vacío en el que tenemos que pegar las siguientes líneas (tiene que quedar tal cual):
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides: octoprint
    # Required-Start: $syslog
    # Required-Stop: $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: octoprint
    # Description:
    #
    ### END INIT INFO
    su octoprint -c ‘octoprint’
  4. Después pulsamos Ctrl + X, luego pulse la letra Y , Enter y nuevamente Ctrl+x para salir del editor.
  5. Ahora le damos permisos de ejecución y lo copiamos a la carpeta de inicio de armbian:
    sudo chmod +x octoprint.sh
    sudo cp octoprint.sh /etc/init.d/
  6. Nos movemos a la carpeta y convertimos el script en un daemon (proceso de linux) para que se inicie con la Orange Pi:
    cd /etc/init.d/
    sudo update-rc.d octoprint.sh defaults
  7.  Ahora lo único que tenemos que hacer es reiniciar: (se cerrará el Putty)
    sudo reboot
  8. ¡¡Ya está terminado !! lo que tenemos que hacer ahora es alimentar  la Orange Pi   y sin hacer nada debería  conectarse a la red  e iniciar el octoprint.
  9. Esperaramos un poco a que cargue y a continuación en nuestro ordenador  abrimos un navegador  colocamos en la dirección url la ip  de la Orange Pi  (en mi caso 192.168.1.57 ) seguido del puerto :5000 y ya podremos acceder al ¡¡Octoprint!!

 

Primeros pasos con Ocoprint

  1. Una vez accedamos a la url  del octoprint , solo tenemos  que logearnos con el usuario octoprint, y configurar vuestra impresora 3D  en nuestro perfil.
  2. Empezara el asistente solicitándonos un usuario para    conectarnos desde nuestra red( y fuera )accesscontrol.png
  3. Si la verificación de conectividad está activada, OctoPrint verificará regularmente si está conectada a Internet. Esto es útil para evitar operaciones intensivas en recursos (como la búsqueda de actualizaciones) si ya está claro que no tendrán éxito de ninguna manera.

    Si está deshabilitado, OctoPrint siempre asumirá que tiene una conexión activa a Internet. Si ese no debería ser el caso, los inicios del servidor, las comprobaciones de actualización y similares podrían demorar más. Es muy interesante por tanto  comprobar la conectividad mediante el botón Test host & port   y después Enable Conectivity Chck antes de darle a continuar (Next)conectividad.png

  4. Para protegerse contra problemas graves conocidos con ciertas versiones de plugins de terceros, OctoPrint admite el uso de una lista negra de plugins centralizados para deshabilitar automáticamente dichas versiones de plugins antes de que puedan interferir con el funcionamiento normal, lo que le permite desinstalarlos o actualizarlos a una versión más nueva.De forma predeterminada, OctoPrint utilizará la lista negra alojada en plugins.octoprint.org/blacklist.json, que también puede ver en un formato legible más humano aquí.Por taantp hay que decidir si permite o no buscar y usar esta lista negra centralizada comenzando con el próximo inicio del servidor. También puede cambiar su decisión en cualquier momento a través de Configuración> Servidor desde OctoPrint.blacklist
  5. Toca configurar CuraEngine.La ruta de acceso a CuraEngine aún no se ha configurado, para poder usar CuraEngine para cortar debe especificarse.
  6. Descargue en su navegador y cópielo en una carpeta de su Pi, por ejemplo, a través de SSH o descárguelo en su Pi:                                                                                                      wget http://octoprint.org/files/octopi/cura_engine_14.12/cura_engine
  7. Hacer ejecutable: chmod + x /root / cura_engine
  8. Pruebe si se ejecuta: / root / cura_engine –help
  9. Configure / path / to / cura_engine como la ruta a CuraEngine en el complemento de Octocure Cura
  10. Ya hemos finalizado la instalación del octoprint, solo tenemos que apagarlo todo conectar nuestra impresora 3D con nuestra Orange Pi  mediante USB y encenderlo todo.

En este vídeo podemos ver este excelente programa  usando una Orange pi  comos servidor de impesión 3d y  su operativa básica para empezar a trabajar desde este entorno de red:

 

Todo el proceso de instalación del OctoPrint aquí explicado sirve igualmente para otras placas similares a la Orange Pi  con o  sin wifi  como es la Raspberry Pi  Zero o similares.  En el caso de disponer de una Raspberry Pi 3 el proceso puede sera un mas sencillo pues existe una distribución llamada Octopi  con todo preinstalado  así que no es necesario instalar nada (lo puede descargar desde https://octoprint.org/download/)
En próximos post    hablaremos  como configurar el octoprint con su impresora, como instalarle una webcam para ver a tiempo real el proceso, como vincular Octoprint con aplicaciones externas y móviles, como hacer que octoprint apague la impresora automáticamente cuando acabe de imprimir, así  como acceder desde cualquier parte del mundo a su Octoprint.