Instalar Octoprint en Linux – ¡Guía completa!

Esta guía está destinada a proporcionar los comandos que cubro en mi video de YouTube que cubre la instalación de Octoprint en Linux.

Muchos de los comandos fueron proporcionados por la comunidad Octoprint, solo los presento en un formato fácil de seguir basado en mi video.

suposiciones

  • Ya tienes una distro de Linux instalada
  • Ha creado una cuenta de usuario pi que tiene derechos sudo
  • Has iniciado sesión en la cuenta pi
  • Estás usando un dispositivo como una Raspberry Pi que tiene puertos USB
  • Conoce la dirección IP del dispositivo Linux
  • Esta guía cubre la configuración de una cámara USB, pero puede omitir esa sección si no planea usar una.

Instalación básica

Ejecutar actualizaciones

sudo apt update sudo apt upgrade

Instalar paquetes

sudo apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential

Configuración de la carpeta Octoprint

cd ~ mkdir OctoPrint && cd OctoPrint

Configurar entorno virtual

python3 -m venv venv Fuente venv/bin/activate

Instalar Octoprint

pip install pip --upgrade pip install octoprint

Agregar usuario pi a los puertos serie

sudo usermod -a -G tty pi sudo usermod -a -G dialout pi

Nota: Puede probar la instalación de Octproint ahora iniciando el servicio “~/OctoPrint/venv/bin/octoprint serve” y conectándose a HTTP://:5000. Debería obtener una página de configuración.

Configure Octoprint para que se inicie automáticamente

wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service && sudo mv octoprint.service /etc/systemd/system/octoprint.service ExecStart=/home/pi/OctoPrint/venv/bin/octoprint sudo systemctl enable octoprint.service

Puede obtener el estado con

sudo service octoprint {start|stop|restart }

Instalación/configuración de HAProxy

HAProxy se usa para atender el front-end del sitio en el puerto 80 y dirigir el tráfico a los puertos de back-end según sea necesario.

Instalar HAProxy

sudo apt install haproxy

Actualizar la configuración de HAProxy

sudo nano /etc/haproxy/haproxy.cfg

Agregue esto al final de la configuración

frontend public         bind *:80         use_backend webcam if { path_beg /webcam/ }         default_backend octoprint  backend octoprint         option forwardfor         server octoprint1 127.0.0.1:5000  backend webcam         http-request replace-path /webcam/(.*)   /\1         server webcam1  127.0.0.1:8080

Instalación/configuración de soporte de cámara web

Construir 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

Establecer mjpg-streamer en inicio automático

mkdir /home/pi/scripts nano /home/pi/scripts/webcamDaemon

Copie el código a continuación en el archivo webcamDaemon recién creado

#!/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     Fuente "/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

Configurar permisos en el archivo de la cámara web

chmod +x /home/pi/scripts/webcamDaemon

Crear servicio webcamd

sudo nano /etc/systemd/system/webcamd.service

Copie el código a continuación en el archivo de servicio webcamd recién creado

[Unit] Description=Camera streamer for OctoPrint After=network-online.target OctoPrint.service Wants=network-online.target  [Service] Type=simple User=pi ExecStart=/home/pi/scripts/webcamDaemon  [Install] WantedBy=multi-user.target

Habilitar el Servicio webcamd

sudo systemctl daemon-reload sudo systemctl enable webcamd

Reiniciar

sudo reboot

URL de cámaras web

Stream URL: /webcam/?action=stream Snapshot URL: http://127.0.0.1:8080/?action=snapshot Path to FFMPEG: /usr/bin/ffmpeg

Artículos relacionados

Asegúrese de visitar nuestro canal de YouTube, y si desea más detalles o tiene alguna pregunta, deje un comentario a continuación. Si te ha gustado este artículo y quieres leer otros haz clic aquí.