From ee855303b6e963ed8c375cabc6fc92f0b714cdcf Mon Sep 17 00:00:00 2001 From: paukstelis Date: Mon, 23 May 2022 14:55:35 -0400 Subject: [PATCH] uniquify uuidpnp --- README.md | 37 +++++++++++++++++++++---------------- octoprint_deploy.sh | 5 +++++ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8f69902..cad6fe7 100644 --- a/README.md +++ b/README.md @@ -2,41 +2,46 @@ Updated May 2022. Want to support this work? Buy Me a Coffee. https://www.buymeacoffee.com/ppaukstelis. Need help with octoprint_deploy? You can open issues here or ask on Discord: https://discord.gg/6vgSjgvR6u # octoprint_deploy -These files provide a simple bash script for quickly deploying multiple octoprint instances on a single computer. +These files provide a simple bash script for quickly deploying multiple octoprint instances on a single computer. For Linux systems (Ubuntu, Fedora, etc.) it will also install OctoPrint and a video streamer (mjpg-streamer or ustreamer). # BIG CHANGES As of 02/22 there is no longer a need to download a specific image file. YouTube video for OctoPi setup here: https://www.youtube.com/watch?v=J5VzI4AFav4&lc # How to use * OctoPi - * Put the latest OctoPi image on your SD card - * ssh into your Pi (pi@octopi.local; good idea to change your password now!) - * run the command `git clone https://github.com/paukstelis/octoprint_deploy.git` - * run the command `sudo octoprint_deploy/octoprint_deploy.sh` - * Choose `Prepare System` from the menu - * Setup admin user by connecting to http://octopi.local via browser + * Put the latest OctoPi image on your SD card. + * ssh into your Pi (pi@octopi.local; good idea to change your password now!). + * run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`. + * run the command `sudo octoprint_deploy/octoprint_deploy.sh`. + * Choose `Prepare System` from the menu. + * Setup admin user by connecting to http://octopi.local via browser. * Back in the ssh session, choose `Add Instance` and follow the instructions. - * If your printer does not have a serial number, it will time out and use the physical USB address for udev entries. - * Continue until you have added all the printers you want to use - * haproxy entries are updated so you can connect via http://octopi.local/instancename/ (trailing slash is needed) + * If your printer does not have a serial number (all Creality printers), it will time out and use the physical USB address for udev entries. + * Continue until you have added all the printers you want to use. + * haproxy entries are updated so you can connect via http://octopi.local/instancename/ (trailing slash is needed). * Please note, haproxy entries are NOT used for webcams once you use this system. Connect to them via hostname:port. * Ubuntu/Mint/RPiOS/Debian/etc. or Fedora (Fedora not completely tested) - * __You do not need to install OctoPrint using any Wiki instructions. The script will do it for you__ - * Install Ubuntu 18-22.X, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, or Fedora35+ on your system (make sure your user is admin for sudo) - * Install git if it isn't already: `sudo apt install git` or `sudo dnf install git` - * run the command `git clone https://github.com/paukstelis/octoprint_deploy.git` - * run the command `sudo octoprint_deploy/octoprint_deploy.sh` + * __You do not need to install OctoPrint using any Wiki instructions, snap, etc. The script will do it for you.__ + * Basic guide video here: https://youtu.be/1YINWQ5fNn0 + * Install Ubuntu 18-22.X, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, or Fedora35+ on your system (make sure your user is admin for sudo). + * Install git if it isn't already: `sudo apt install git` or `sudo dnf install git`. + * run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`. + * run the command `sudo octoprint_deploy/octoprint_deploy.sh`. * Choose `Prepare System` from the menu. Select your distribution type. All deb-based system use the same selection. This will install necessary packages, install OctoPrint, and start a template instance * You will be asked which streamer you would like to install (mjpg-streamer or ustreamer). * This converts your installation into an 'Linux/OctoBuntu'-style installation. Use `OctoBuntu` for all identifiers after this point. * Setup admin user by connecting to your system (either http://localhost:5000 or http://[hostname]:5000 via a browser * __This instance is just a generic template used for making all your other instances. You need to make at least one instance using the script when this is done. Do not add a camera to the generic instance.__ - * Continue with octoprint_deploy script and setup all your instances. + * Continue with octoprint_deploy script, choose `Add Instance` and follow the instructions. + * If your printer does not have a serial number (all Creality printers) allow the auto-detection to time-out and it will detect by the USB port you plugged it in to. + * Add as many instances as you have printers, following the instructions. + * Remember, camera installed with this script are experimental and always will be. The script makes some basic assumptions that you may need to change later. * What else can you do? * Remove instances * Add USB webcams AFTER you've created the instance * Test USB connections * Want to get rid of everything? `sudo octoprint_deploy/octoprint_deploy.sh remove` # Recent Changes +* Uniquify pnp uuid. * Add duplicate serial number detection. * Add architecture check to minimize errors where a system gets prepared as OctoPi when someone is using Ubuntu/Fedora/etc. * Include ustreamer as an option for camera streaming diff --git a/octoprint_deploy.sh b/octoprint_deploy.sh index 55f9022..3e06201 100755 --- a/octoprint_deploy.sh +++ b/octoprint_deploy.sh @@ -324,6 +324,11 @@ write_camera() { echo " stream: http://$(hostname).local:$CAMPORT?action=stream" >> $OCTOCONFIG/.$INSTANCE/config.yaml echo + #uniquify instances + #modify upnpUuid + UUID=$(uuidgen) + sed -i "s/upnpUuid: $PARTITION_COLUMN.*/upnpUuid: $UUID/" $OCTOCONFIG/.$INSTANCE/config.yaml + #Either Serial number or USB port #Serial Number if [ -n "$CAM" ]; then